diff options
author | Stephan Sundermann <stephansundermann@gmail.com> | 2023-10-16 16:52:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-16 16:52:25 +0200 |
commit | 8c508cd1737aa8cabf1bbaae7ce1efe9837f504e (patch) | |
tree | e8b5ddcf4796f1e93d7e9446b65ae7ed72bfb9aa | |
parent | 7529c5b4aed039e7edbbe0d1f0a94dc7cea9bb25 (diff) | |
parent | a5bfc5daf19721c32538f2b79ffaf796408af731 (diff) | |
download | xbmc-8c508cd1737aa8cabf1bbaae7ce1efe9837f504e.tar.xz |
Merge pull request #23917 from webosbrew/webos-renderer-fixes
[webOS] Renderer: Fix render region
-rw-r--r-- | xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp index b2231ff84f..c065762a73 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp @@ -83,8 +83,28 @@ bool CRendererStarfish::Register() void CRendererStarfish::ManageRenderArea() { + // this hack is needed to get the 2D mode of a 3D movie going + RENDER_STEREO_MODE stereoMode = CServiceBroker::GetWinSystem()->GetGfxContext().GetStereoMode(); + if (stereoMode == RENDER_STEREO_MODE_MONO) + CServiceBroker::GetWinSystem()->GetGfxContext().SetStereoView(RENDER_STEREO_VIEW_LEFT); + CBaseRenderer::ManageRenderArea(); + if (stereoMode == RENDER_STEREO_MODE_MONO) + CServiceBroker::GetWinSystem()->GetGfxContext().SetStereoView(RENDER_STEREO_VIEW_OFF); + + switch (stereoMode) + { + case RENDER_STEREO_MODE_SPLIT_HORIZONTAL: + m_destRect.y2 *= 2.0f; + break; + case RENDER_STEREO_MODE_SPLIT_VERTICAL: + m_destRect.x2 *= 2.0f; + break; + default: + break; + } + if ((m_exportedDestRect != m_destRect || m_exportedSourceRect != m_sourceRect) && !m_sourceRect.IsEmpty() && !m_destRect.IsEmpty()) { @@ -160,8 +180,6 @@ void CRendererStarfish::Update() { return; } - - ManageRenderArea(); } void CRendererStarfish::RenderUpdate( @@ -171,4 +189,6 @@ void CRendererStarfish::RenderUpdate( { return; } + + ManageRenderArea(); } |