void FGLRenderBuffers::ClearScene() { DeleteFrameBuffer(mSceneFB); DeleteRenderBuffer(mSceneMultisample); DeleteRenderBuffer(mSceneDepthStencil); DeleteRenderBuffer(mSceneDepth); DeleteRenderBuffer(mSceneStencil); }
void CWinRenderer::UnInit() { CSingleLock lock(CServiceBroker::GetWinSystem()->GetGfxContext()); if (m_IntermediateTarget.Get()) m_IntermediateTarget.Release(); m_colorShader.reset(); m_scalerShader.reset(); m_bConfigured = false; m_bFilterInitialized = false; for(int i = 0; i < NUM_BUFFERS; i++) DeleteRenderBuffer(i); m_NumYV12Buffers = 0; if (m_sw_scale_ctx) { sws_freeContext(m_sw_scale_ctx); m_sw_scale_ctx = nullptr; } if (m_processor) { m_processor.reset(); } m_pCLUTView = nullptr; m_outputShader.reset(); }
void CWinRenderer::UnInit() { CSingleLock lock(g_graphicsContext); if (m_IntermediateTarget.Get()) m_IntermediateTarget.Release(); SAFE_DELETE(m_colorShader); SAFE_DELETE(m_scalerShader); m_bConfigured = false; m_bFilterInitialized = false; for(int i = 0; i < NUM_BUFFERS; i++) DeleteRenderBuffer(i); m_NumYV12Buffers = 0; if (m_sw_scale_ctx) { sws_freeContext(m_sw_scale_ctx); m_sw_scale_ctx = nullptr; } if (m_processor) { m_processor->UnInit(); SAFE_DELETE(m_processor); } SAFE_RELEASE(m_pCLUTView); m_outputShader.reset(); }
void FGLRenderBuffers::ClearScene() { DeleteFrameBuffer(mSceneFB); DeleteFrameBuffer(mSceneDataFB); if (mSceneUsesTextures) { DeleteTexture(mSceneMultisample); DeleteTexture(mSceneFog); DeleteTexture(mSceneNormal); DeleteTexture(mSceneDepthStencil); } else { DeleteRenderBuffer(mSceneMultisample); DeleteRenderBuffer(mSceneFog); DeleteRenderBuffer(mSceneNormal); DeleteRenderBuffer(mSceneDepthStencil); } }
void CWinRenderer::Flush() { if (!m_bConfigured) return; for (int i = 0; i < NUM_BUFFERS; i++) DeleteRenderBuffer(i); m_iYV12RenderBuffer = 0; m_NumYV12Buffers = 0; m_bFilterInitialized = false; }
bool CWinRenderer::CreateRenderBuffer(int index) { CSingleLock lock(CServiceBroker::GetWinSystem()->GetGfxContext()); DeleteRenderBuffer(index); if (!m_renderBuffers[index].CreateBuffer(m_bufferFormat, m_sourceWidth, m_sourceHeight, m_renderMethod == RENDER_SW)) { CLog::Log(LOGERROR, "%s: unable to create video buffer %i", __FUNCTION__, index); m_renderBuffers[index].Release(); return false; } m_renderBuffers[index].Lock(); m_renderBuffers[index].Clear(); CLog::Log(LOGDEBUG, "%s: created video buffer %i", __FUNCTION__, index); return true; }
void CWinRenderer::ManageTextures() { if( m_NumYV12Buffers < m_neededBuffers ) { for(int i = m_NumYV12Buffers; i<m_neededBuffers;i++) CreateRenderBuffer(i); m_NumYV12Buffers = m_neededBuffers; } else if( m_NumYV12Buffers > m_neededBuffers ) { for (int i = m_NumYV12Buffers - 1; i >= m_neededBuffers; i--) DeleteRenderBuffer(i); m_NumYV12Buffers = m_neededBuffers; m_iYV12RenderBuffer = m_iYV12RenderBuffer % m_NumYV12Buffers; } }