diff options
author | Chris Browet <koying@users.noreply.github.com> | 2018-02-25 19:31:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-25 19:31:28 +0100 |
commit | beea2e412ff9852b21b9ce378bdf9a20150316c3 (patch) | |
tree | 477dea251469093cf56f45d61c7c37e0ad318dbd | |
parent | 1ed83d8293cfd12dece2e341f0b74ebb0dff16cb (diff) | |
parent | 0ab8b2eb7f49364b747ad0e162a0127ffc298704 (diff) |
Merge pull request #13584 from koying/fixdroid3D2D
FIX: [amc] 3D->2D
-rw-r--r-- | xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererMediaCodecSurface.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererMediaCodecSurface.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererMediaCodecSurface.cpp index f832405bfb..2be7081262 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererMediaCodecSurface.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererMediaCodecSurface.cpp @@ -119,37 +119,39 @@ bool CRendererMediaCodecSurface::Supports(ERENDERFEATURE feature) void CRendererMediaCodecSurface::RenderUpdate(int index, int index2, bool clear, unsigned int flags, unsigned int alpha) { CXBMCApp::get()->WaitVSync(100); - ManageRenderArea(); m_bConfigured = true; -} - -void CRendererMediaCodecSurface::ReorderDrawPoints() -{ - CBaseRenderer::ReorderDrawPoints(); // this hack is needed to get the 2D mode of a 3D movie going RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); if (stereo_mode) g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_LEFT); + ManageRenderArea(); + if (stereo_mode) g_graphicsContext.SetStereoView(RENDER_STEREO_VIEW_OFF); m_surfDestRect = m_destRect; - CRect srcRect(m_sourceRect); switch (stereo_mode) { case RENDER_STEREO_MODE_SPLIT_HORIZONTAL: m_surfDestRect.y2 *= 2.0; - srcRect.y2 *= 2.0; break; case RENDER_STEREO_MODE_SPLIT_VERTICAL: m_surfDestRect.x2 *= 2.0; - srcRect.x2 *= 2.0; + break; + case RENDER_STEREO_MODE_MONO: + m_surfDestRect.y2 = m_surfDestRect.y2 * (m_surfDestRect.y2 / m_sourceRect.y2); + m_surfDestRect.x2 = m_surfDestRect.x2 * (m_surfDestRect.x2 / m_sourceRect.x2); break; default: break; } +} + +void CRendererMediaCodecSurface::ReorderDrawPoints() +{ + CBaseRenderer::ReorderDrawPoints(); // Handle orientation switch (m_renderOrientation) |