From ad8a181a19bbd3223a28903fb0b4a9c850b5c7d6 Mon Sep 17 00:00:00 2001 From: Luke Usher Date: Mon, 29 Jan 2018 22:08:56 +0000 Subject: [PATCH] Implement YuvEnable flag --- src/CxbxKrnl/EmuD3D8.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/CxbxKrnl/EmuD3D8.cpp b/src/CxbxKrnl/EmuD3D8.cpp index 01ce775f8..a6a2cea76 100755 --- a/src/CxbxKrnl/EmuD3D8.cpp +++ b/src/CxbxKrnl/EmuD3D8.cpp @@ -5965,10 +5965,6 @@ ULONG WINAPI XTL::EMUPATCH(D3DResource_Release) g_pCachedDepthStencil = nullptr; } - if (pThis == g_pCachedYuvSurface) { - g_pCachedYuvSurface = nullptr; - } - // Also release the host copy (if it exists!) FreeHostResource(key); } @@ -6619,6 +6615,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_EnableOverlay) //FUNC_EXPORTS LOG_FUNC_ONE_ARG(Enable); + g_fYuvEnabled = Enable; // We can safely ignore this, as long as we properly handle UpdateOverlay } @@ -6645,6 +6642,10 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_UpdateOverlay) LOG_FUNC_ARG(ColorKey) LOG_FUNC_END; + if (!g_fYuvEnabled) { + return; + } + if (pSurface == NULL) { EmuWarning("pSurface == NULL!"); } else { @@ -7540,11 +7541,6 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetRenderState_YuvEnable) EMUPATCH(D3DDevice_EnableOverlay)(g_fYuvEnabled); } - - if(g_fYuvEnabled) - { - EMUPATCH(D3DDevice_UpdateOverlay)(g_pCachedYuvSurface, NULL, NULL, FALSE, 0); - } } // ******************************************************************