From c9ddbb695de5f8c18d638fa51aa68f12eb4c31ac Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Mon, 20 Oct 2003 06:27:21 +0000 Subject: [PATCH] overlays better --- Cxbx.opt | Bin 61952 -> 60928 bytes Source/Win32/CxbxKrnl/EmuD3D8.cpp | 48 +++++++++++++++++------------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/Cxbx.opt b/Cxbx.opt index b746a4f940cc48a263fb1d1c7fac5f3efb24b9e9..a0d6b03a6c3a209d8b1a0784f872da579573e2a3 100644 GIT binary patch literal 60928 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 Q=cnBNv^2mzy83_r3-A{SkN^Mx diff --git a/Source/Win32/CxbxKrnl/EmuD3D8.cpp b/Source/Win32/CxbxKrnl/EmuD3D8.cpp index a0fb55285..3d6efcef9 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8.cpp @@ -628,27 +628,6 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID) // cache device pointer g_pD3DDevice8 = *g_EmuCDPD.ppReturnedDeviceInterface; - // check for YUY2 overlay support TODO: accept other overlay types - { - XTL::D3DDISPLAYMODE DisplayMode; - - if(g_pD3DDevice8->GetDisplayMode(&DisplayMode) != D3D_OK) - g_bSupportsYUY2 = FALSE; - else - { - ::HRESULT hRet = g_pD3D8->CheckDeviceFormat - ( - g_EmuCDPD.Adapter, g_EmuCDPD.DeviceType, - (XTL::D3DFORMAT)DisplayMode.Format, 0, XTL::D3DRTYPE_SURFACE, XTL::D3DFMT_YUY2 - ); - - g_bSupportsYUY2 = SUCCEEDED(hRet); - - if(!g_bSupportsYUY2) - EmuWarning("YUY2 overlays are not supported in hardware, could be slow!"); - } - } - // default NULL guid ZeroMemory(&g_ddguid, sizeof(GUID)); @@ -671,6 +650,33 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID) EmuCleanup("Could not set cooperative level"); } + // check for YUY2 overlay support TODO: accept other overlay types + { + DWORD dwCodes = 0; + DWORD *lpCodes = 0; + + g_pDD7->GetFourCCCodes(&dwCodes, lpCodes); + + lpCodes = (DWORD*)malloc(dwCodes*sizeof(DWORD)); + + g_pDD7->GetFourCCCodes(&dwCodes, lpCodes); + + g_bSupportsYUY2 = false; + for(DWORD v=0;v