void CWinRenderer::UnInit() { CSingleLock lock(g_graphicsContext); if (m_SWTarget.Get()) m_SWTarget.Release(); if (m_IntermediateTarget.Get()) m_IntermediateTarget.Release(); if (m_IntermediateStencilSurface.Get()) m_IntermediateStencilSurface.Release(); SAFE_RELEASE(m_colorShader) SAFE_RELEASE(m_scalerShader) m_bConfigured = false; m_bFilterInitialized = false; for(int i = 0; i < NUM_BUFFERS; i++) DeleteYV12Texture(i); m_NumYV12Buffers = 0; if (m_sw_scale_ctx) { m_dllSwScale->sws_freeContext(m_sw_scale_ctx); m_sw_scale_ctx = NULL; } SAFE_DELETE(m_dllSwScale); SAFE_DELETE(m_dllAvCodec); SAFE_DELETE(m_dllAvUtil); }
void CWinRenderer::ManageTextures() { int neededbuffers = 0; if (m_NumOSDBuffers != 2) { m_NumOSDBuffers = 2; m_iOSDRenderBuffer = 0; m_OSDWidth = m_OSDHeight = 0; // buffers will be created on demand in DrawAlpha() } neededbuffers = 2; if( m_NumYV12Buffers < neededbuffers ) { for(int i = m_NumYV12Buffers; i<neededbuffers;i++) CreateYV12Texture(i); m_NumYV12Buffers = neededbuffers; } else if( m_NumYV12Buffers > neededbuffers ) { m_NumYV12Buffers = neededbuffers; m_iYV12RenderBuffer = m_iYV12RenderBuffer % m_NumYV12Buffers; for(int i = m_NumYV12Buffers-1; i>=neededbuffers;i--) DeleteYV12Texture(i); } }
void CWinRenderer::UnInit() { CSingleLock lock(g_graphicsContext); // YV12 textures, subtitle and osd stuff for (int i = 0; i < NUM_BUFFERS; ++i) { DeleteYV12Texture(i); DeleteOSDTextures(i); } if (m_hLowMemShader) { m_pD3DDevice->DeletePixelShader(m_hLowMemShader); m_hLowMemShader = 0; } }
void CWinRenderer::ManageTextures() { int neededbuffers = 2; if( m_NumYV12Buffers < neededbuffers ) { for(int i = m_NumYV12Buffers; i<neededbuffers;i++) CreateYV12Texture(i); m_NumYV12Buffers = neededbuffers; } else if( m_NumYV12Buffers > neededbuffers ) { m_NumYV12Buffers = neededbuffers; m_iYV12RenderBuffer = m_iYV12RenderBuffer % m_NumYV12Buffers; for(int i = m_NumYV12Buffers-1; i>=neededbuffers;i--) DeleteYV12Texture(i); } }