From a5bfc5daf19721c32538f2b79ffaf796408af731 Mon Sep 17 00:00:00 2001 From: Stephan Sundermann Date: Fri, 6 Oct 2023 01:24:31 +0200 Subject: [PATCH] [webOS] Renderer: Fix render region --- .../HwDecRender/RendererStarfish.cpp | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererStarfish.cpp index b2231ff84f3a6..c065762a73dca 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(); }