void CWinRenderer::Update() { if (!m_bConfigured) return; ManageRenderArea(); ManageTextures(); }
void CWinRenderer::Update(bool bPauseDrawing) { if (!m_bConfigured) return; CSingleLock lock(g_graphicsContext); ManageDisplay(); ManageTextures(); }
void CWinRenderer::RenderUpdate(int index, int index2, bool clear, unsigned int flags, unsigned int alpha) { m_iYV12RenderBuffer = index; if (clear) CServiceBroker::GetWinSystem()->GetGfxContext().Clear(DX::Windowing()->UseLimitedColor() ? 0x101010 : 0); if (!m_bConfigured) return; DX::Windowing()->SetAlphaBlendEnable(alpha < 255); ManageTextures(); ManageRenderArea(); Render(flags, DX::Windowing()->GetBackBuffer()); }
void CWinRenderer::RenderUpdate(int index, int index2, bool clear, unsigned int flags, unsigned int alpha) { m_iYV12RenderBuffer = index; if (clear) g_graphicsContext.Clear(DX::Windowing().UseLimitedColor() ? 0x101010 : 0); if (!m_bConfigured) return; DX::Windowing().SetAlphaBlendEnable(alpha < 255); ManageTextures(); ManageRenderArea(); Render(flags, DX::Windowing().GetBackBuffer()); }
void CWinRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) { if (!m_YUVTexture[m_iYV12RenderBuffer][0]) return ; CSingleLock lock(g_graphicsContext); ManageDisplay(); ManageTextures(); if (clear) m_pD3DDevice->Clear( 0L, NULL, D3DCLEAR_TARGET, m_clearColour, 1.0f, 0L ); if(alpha < 255) m_pD3DDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); else m_pD3DDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE ); Render(flags); }
void CWinRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) { LPDIRECT3DDEVICE9 pD3DDevice = g_Windowing.Get3DDevice(); if (clear) pD3DDevice->Clear( 0L, NULL, D3DCLEAR_TARGET, m_clearColour, 1.0f, 0L ); if(alpha < 255) pD3DDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); else pD3DDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE ); if (!m_bConfigured) return; ManageTextures(); CSingleLock lock(g_graphicsContext); ManageDisplay(); Render(flags); }
void CWinRenderer::UpdatePSVideoFilter() { m_scalerShader.reset(); if (m_bUseHQScaler) { // First try the more efficient two pass convolution scaler m_scalerShader = std::make_unique<CConvolutionShaderSeparable>(); if (!m_scalerShader->Create(m_scalingMethod, m_outputShader.get())) { m_scalerShader.reset(); CLog::Log(LOGNOTICE, "%s: two pass convolution shader init problem, falling back to one pass.", __FUNCTION__); } // Fallback on the one pass version if (!m_scalerShader) { m_scalerShader = std::make_unique<CConvolutionShader1Pass>(); if (!m_scalerShader->Create(m_scalingMethod, m_outputShader.get())) { m_scalerShader.reset(); CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error, g_localizeStrings.Get(34400), g_localizeStrings.Get(34401)); m_bUseHQScaler = false; } } } if (m_bUseHQScaler && !CreateIntermediateRenderTarget(m_sourceWidth, m_sourceHeight, false)) { m_scalerShader.reset(); m_bUseHQScaler = false; } m_colorShader.reset(); if (m_renderMethod == RENDER_DXVA) { // we'd use m_IntermediateTarget as rendering target for possible anaglyph stereo with dxva processor. if (!m_bUseHQScaler) CreateIntermediateRenderTarget(m_destWidth, m_destHeight, false); // When using DXVA, we are already setup at this point, color shader is not needed return; } m_colorShader = std::make_unique<CYUV2RGBShader>(); if (!m_colorShader->Create(m_bufferFormat, AVColorPrimaries::AVCOL_PRI_BT709, m_srcPrimaries, m_bUseHQScaler ? nullptr : m_outputShader.get())) { if (m_bUseHQScaler) { m_IntermediateTarget.Release(); m_scalerShader.reset(); } m_colorShader.reset(); m_bUseHQScaler = false; // we're in big trouble - fallback to sw method m_renderMethod = RENDER_SW; EBufferFormat oldFormat = m_bufferFormat; m_bufferFormat = SelectBufferFormat(m_format, m_renderMethod); if (oldFormat != m_bufferFormat && m_NumYV12Buffers > 0) { m_NumYV12Buffers = 0; ManageTextures(); } SelectSWVideoFilter(); } }