Exemplo n.º 1
0
	void OGL4GeometryData::Release()
	{
		_release_and_reset(m_pVertexBuffer);

		_release_and_reset(m_pIndexBuffer);
		
		glDeleteVertexArrays(1, &m_vao);
		m_vao = 0;
	}
Exemplo n.º 2
0
	void TextureOverlay::OnRelease()
	{
		m_pRenderData = nullptr;
		_release_and_reset(m_pGeometry);
		_release_and_reset(m_pMaterial);
		if(m_texAutoRelease)
		{
			_release_and_reset(m_pTexture);
		}
	}
Exemplo n.º 3
0
	void RenderSystem_Deferred::Release()
	{
		_release_and_reset(m_pMergePassMaterial);

		_release_and_reset(m_pGBuffer);

		_release_and_reset(m_pABuffer);

		_release_and_reset(m_pDSBuffer);

		m_pGraphics.reset();
	}
Exemplo n.º 4
0
	void MaterialPass::Release()
	{
		_release_and_reset(m_pRenderState);


		for(auto v : m_Samplers)
		{
			v->Release();
		}
		m_Samplers.clear();

		_release_and_reset(m_pProgram);

	}
Exemplo n.º 5
0
	bool RenderSystem_Deferred::ResizeGBuffer(int w, int h)
	{
		_release_and_reset(m_pGBuffer);

		G_FORMAT formats[3] = 
		{
			G_FORMAT_R32_FLOAT,					// depth
			G_FORMAT_R16G16_FLOAT,				// normal.xy
			G_FORMAT_R8G8B8A8_UNORM,			// diffuse color : specular
		};

		m_pGBuffer = m_pGraphics->CreateRenderTexture();
		
		if(m_pGBuffer == nullptr)
		{
			return false;
		}

		for(int i = 0; i < 3; ++i)
		{
			TexturePtr pTex = m_pGraphics->CreateTexture2D(formats[i], w, h, 1, false);
			m_pGBuffer->AttachTexture(pTex);
		}
		
		m_pGBuffer->SetDepthStencilBuffer(m_pDSBuffer);
		return true;

	}
Exemplo n.º 6
0
	void PostEffect_GaussianBlur::Release()
	{
		m_pParamInputSize	= nullptr;
		m_pParamInputTex	= nullptr;

		_release_and_reset(m_pMaterial);

	}
Exemplo n.º 7
0
	void TextureOverlay::AttachTexture(TexturePtr pTex, bool auto_release)
	{
		if(m_texAutoRelease)
		{
			_release_and_reset(m_pTexture);
		}
		m_pTexture = pTex;
		m_texAutoRelease = auto_release;
	}
Exemplo n.º 8
0
	bool HtmlOverlay::ResizeTexture(uint32 w, uint32 h)
	{
		_release_and_reset(m_pTexture);

		m_pTexture = m_pRenderManager->GetSysGraphics()->CreateTexture2D(G_FORMAT_R8G8B8A8_UNORM, w, h, 1, true);
		if(m_pTexture == nullptr)
		{
			return false;
		}

		m_pTexOverlay->AttachTexture(m_pTexture, false);
		return true;
	}
Exemplo n.º 9
0
	void HtmlOverlay::OnRelease()
	{
		_release_and_reset(m_pTexture);

	}
Exemplo n.º 10
0
	void DebugPanel::Release()
	{
		_release_and_reset(m_pOverlay);
		m_pCore.reset();

	}