From 01bd2d026eb2aed1bb5cfacd544086939276a169 Mon Sep 17 00:00:00 2001 From: PatrickvL Date: Thu, 28 Nov 2019 16:27:39 +0100 Subject: [PATCH] Lower impact of this PR by storing a few things that won't hurt much --- src/core/hle/D3D8/Direct3D9/Direct3D9.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp index dcbeeccd7..132b3b498 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp @@ -643,7 +643,7 @@ XTL::X_D3DFORMAT GetXboxPixelContainerFormat(const XTL::DWORD XboxPixelContainer return d3d_format; } -XTL::X_D3DFORMAT GetXboxPixelContainerFormat(const XTL::X_D3DPixelContainer* pXboxPixelContainer) +XTL::X_D3DFORMAT GetXboxPixelContainerFormat(const XTL::X_D3DPixelContainer *pXboxPixelContainer) { // Don't pass in unassigned Xbox pixel container assert(pXboxPixelContainer != xbnullptr); @@ -898,7 +898,7 @@ void ForceResourceRehash(XTL::X_D3DResource* pXboxResource) } } -IDirect3DResource *GetHostResource(XTL::X_D3DResource *pXboxResource, DWORD D3DUsage = 0, int iTextureStage = 0) +IDirect3DResource *GetHostResource(XTL::X_D3DResource *pXboxResource, DWORD D3DUsage = 0, int iTextureStage = -1) { if (pXboxResource == xbnullptr || pXboxResource->Data == xbnull) return nullptr; @@ -1045,8 +1045,9 @@ IDirect3DBaseTexture *GetHostBaseTexture(XTL::X_D3DResource *pXboxResource, DWOR if (pXboxResource == xbnullptr) return nullptr; - if (GetXboxCommonResourceType(pXboxResource) != X_D3DCOMMON_TYPE_TEXTURE) // Allows breakpoint below + if (GetXboxCommonResourceType(pXboxResource) != X_D3DCOMMON_TYPE_TEXTURE) { // Allows breakpoint below assert(GetXboxCommonResourceType(pXboxResource) == X_D3DCOMMON_TYPE_TEXTURE); + } return (IDirect3DBaseTexture*)GetHostResource(pXboxResource, D3DUsage, iTextureStage); } @@ -2487,7 +2488,7 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID) // check if a resource has been registered yet (if not, register it) void CreateHostResource(XTL::X_D3DResource *pResource, DWORD D3DUsage, int iTextureStage, DWORD dwSize); // Forward declartion to prevent restructure of code -static void EmuVerifyResourceIsRegistered(XTL::X_D3DResource *pResource, DWORD D3DUsage = 0, int iTextureStage = 0, DWORD dwSize = 0) +static void EmuVerifyResourceIsRegistered(XTL::X_D3DResource *pResource, DWORD D3DUsage, int iTextureStage, DWORD dwSize) { // Skip resources without data if (pResource->Data == xbnull) @@ -2572,6 +2573,9 @@ static void EmuVerifyResourceIsRegistered(XTL::X_D3DResource *pResource, DWORD D } FreeHostResource(key); + } else { + resource_info_t newResource; + ResourceCache[key] = newResource; } CreateHostResource(pResource, D3DUsage, iTextureStage, dwSize);