From 7a9382a79f499207d450d8d6176b675cc11f2059 Mon Sep 17 00:00:00 2001 From: PatrickvL Date: Wed, 16 Jun 2021 16:40:38 +0200 Subject: [PATCH] Introduced Xbox version of D3DCUBEMAP_FACES --- src/core/hle/D3D8/Direct3D9/Direct3D9.cpp | 10 +++++----- src/core/hle/D3D8/Direct3D9/Direct3D9.h | 16 ++++++++-------- src/core/hle/D3D8/XbD3D8Logging.cpp | 19 ++++++++++--------- src/core/hle/D3D8/XbD3D8Logging.h | 3 ++- src/core/hle/D3D8/XbD3D8Types.h | 13 +++++++++++++ 5 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp index b5304ccc6..8a25e84ce 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp @@ -426,7 +426,7 @@ g_EmuCDPD; XB_MACRO(xbox::hresult_xt, WINAPI, Direct3D_CreateDevice_16__LTCG_eax_BehaviorFlags_ebx_ppReturnedDeviceInterface, (xbox::uint_xt, xbox::X_D3DDEVTYPE, HWND, xbox::X_D3DPRESENT_PARAMETERS*) ); \ XB_MACRO(xbox::hresult_xt, WINAPI, Direct3D_CreateDevice_16__LTCG_eax_BehaviorFlags_ecx_ppReturnedDeviceInterface, (xbox::uint_xt, xbox::X_D3DDEVTYPE, HWND, xbox::X_D3DPRESENT_PARAMETERS*) ); \ XB_MACRO(xbox::hresult_xt, WINAPI, Direct3D_CreateDevice_4, (xbox::X_D3DPRESENT_PARAMETERS*) ); \ - XB_MACRO(xbox::void_xt, WINAPI, Lock2DSurface, (xbox::X_D3DPixelContainer*, D3DCUBEMAP_FACES, xbox::uint_xt, D3DLOCKED_RECT*, RECT*, xbox::dword_xt) ); \ + XB_MACRO(xbox::void_xt, WINAPI, Lock2DSurface, (xbox::X_D3DPixelContainer*, xbox::X_D3DCUBEMAP_FACES, xbox::uint_xt, D3DLOCKED_RECT*, RECT*, xbox::dword_xt) ); \ XB_MACRO(xbox::void_xt, WINAPI, Lock3DSurface, (xbox::X_D3DPixelContainer*, xbox::uint_xt, D3DLOCKED_BOX*, D3DBOX*, xbox::dword_xt) ); \ XB_MACRO(xbox::void_xt, WINAPI, D3D_CommonSetRenderTarget, (xbox::X_D3DSurface*, xbox::X_D3DSurface*, void*) ); \ @@ -1524,7 +1524,7 @@ void GetSurfaceFaceAndLevelWithinTexture(xbox::X_D3DSurface* pSurface, xbox::X_D // Wrapper function to allow calling without passing a face void GetSurfaceFaceAndLevelWithinTexture(xbox::X_D3DSurface* pSurface, xbox::X_D3DBaseTexture* pBaseTexture, UINT& Level) { - D3DCUBEMAP_FACES face; + _9_11(D3DCUBEMAP_FACES, int) face; GetSurfaceFaceAndLevelWithinTexture(pSurface, pBaseTexture, Level, face); } @@ -6968,11 +6968,11 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_MultiplyTransform) xbox::void_xt WINAPI xbox::EMUPATCH(Lock2DSurface) ( X_D3DPixelContainer *pPixelContainer, - D3DCUBEMAP_FACES FaceType, - uint_xt Level, + X_D3DCUBEMAP_FACES FaceType, + uint_xt Level, D3DLOCKED_RECT *pLockedRect, RECT *pRect, - dword_xt Flags + dword_xt Flags ) { LOG_FUNC_BEGIN diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.h b/src/core/hle/D3D8/Direct3D9/Direct3D9.h index 59a600c50..84ce0f5db 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.h +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.h @@ -819,11 +819,11 @@ xbox::bool_xt WINAPI EMUPATCH(D3DResource_IsBusy) xbox::void_xt WINAPI EMUPATCH(Lock2DSurface) ( X_D3DPixelContainer *pPixelContainer, - D3DCUBEMAP_FACES FaceType, - uint_xt Level, + X_D3DCUBEMAP_FACES FaceType, + uint_xt Level, D3DLOCKED_RECT *pLockedRect, RECT *pRect, - dword_xt Flags + dword_xt Flags ); // ****************************************************************** @@ -926,11 +926,11 @@ xbox::void_xt WINAPI EMUPATCH(D3DVolumeTexture_LockBox) xbox::void_xt WINAPI EMUPATCH(D3DCubeTexture_LockRect) ( X_D3DCubeTexture *pThis, - D3DCUBEMAP_FACES FaceType, - uint_xt Level, + X_D3DCUBEMAP_FACES FaceType, + uint_xt Level, D3DLOCKED_RECT *pLockedBox, CONST RECT *pRect, - dword_xt Flags + dword_xt Flags ); // ****************************************************************** @@ -2101,7 +2101,7 @@ xbox::void_xt WINAPI EMUPATCH(D3DDevice_GetPushBufferOffset) xbox::hresult_xt WINAPI EMUPATCH(D3DCubeTexture_GetCubeMapSurface) ( X_D3DCubeTexture* pThis, - D3DCUBEMAP_FACES FaceType, + X_D3DCUBEMAP_FACES FaceType, uint_xt Level, X_D3DSurface** ppCubeMapSurface ); @@ -2112,7 +2112,7 @@ xbox::hresult_xt WINAPI EMUPATCH(D3DCubeTexture_GetCubeMapSurface) X_D3DSurface* WINAPI EMUPATCH(D3DCubeTexture_GetCubeMapSurface2) ( X_D3DCubeTexture* pThis, - D3DCUBEMAP_FACES FaceType, + X_D3DCUBEMAP_FACES FaceType, uint_xt Level ); diff --git a/src/core/hle/D3D8/XbD3D8Logging.cpp b/src/core/hle/D3D8/XbD3D8Logging.cpp index ae4a749b9..bd2695eb9 100644 --- a/src/core/hle/D3D8/XbD3D8Logging.cpp +++ b/src/core/hle/D3D8/XbD3D8Logging.cpp @@ -32,15 +32,6 @@ // Host D3D LOGRENDER(Type) implementations // -ENUM2STR_START(D3DCUBEMAP_FACES) - ENUM2STR_CASE(D3DCUBEMAP_FACE_POSITIVE_X) - ENUM2STR_CASE(D3DCUBEMAP_FACE_NEGATIVE_X) - ENUM2STR_CASE(D3DCUBEMAP_FACE_POSITIVE_Y) - ENUM2STR_CASE(D3DCUBEMAP_FACE_NEGATIVE_Y) - ENUM2STR_CASE(D3DCUBEMAP_FACE_POSITIVE_Z) - ENUM2STR_CASE(D3DCUBEMAP_FACE_NEGATIVE_Z) -ENUM2STR_END_and_LOGRENDER(D3DCUBEMAP_FACES) - ENUM2STR_START(D3DFORMAT) ENUM2STR_CASE(D3DFMT_UNKNOWN) // = 0, ENUM2STR_CASE(D3DFMT_R8G8B8) // = 20, @@ -563,6 +554,16 @@ namespace xbox { // Cxbx D3D LOGRENDER(Type) implementations // +ENUM2STR_START(X_D3DCUBEMAP_FACES) + ENUM2STR_CASE(X_D3DCUBEMAP_FACE_POSITIVE_X) + ENUM2STR_CASE(X_D3DCUBEMAP_FACE_NEGATIVE_X) + ENUM2STR_CASE(X_D3DCUBEMAP_FACE_POSITIVE_Y) + ENUM2STR_CASE(X_D3DCUBEMAP_FACE_NEGATIVE_Y) + ENUM2STR_CASE(X_D3DCUBEMAP_FACE_POSITIVE_Z) + ENUM2STR_CASE(X_D3DCUBEMAP_FACE_NEGATIVE_Z) +ENUM2STR_END_and_LOGRENDER(X_D3DCUBEMAP_FACES) + + ENUM2STR_START(X_D3DCOMMON_TYPE) // Use unshifted values ENUM2STR_CASE(X_D3DCOMMON_TYPE_VERTEXBUFFER) ENUM2STR_CASE(X_D3DCOMMON_TYPE_INDEXBUFFER) diff --git a/src/core/hle/D3D8/XbD3D8Logging.h b/src/core/hle/D3D8/XbD3D8Logging.h index 03db1b0f4..c0e879c74 100644 --- a/src/core/hle/D3D8/XbD3D8Logging.h +++ b/src/core/hle/D3D8/XbD3D8Logging.h @@ -103,7 +103,6 @@ FLAGS2STR_HEADER(D3DVTXPCAPS) // Not really an enum FLAGS2STR_HEADER(D3DDEVCAPS2) // Not really an enum FLAGS2STR_HEADER(D3DDTCAPS) // Not really an enum -ENUM2STR_HEADER(D3DCUBEMAP_FACES) ENUM2STR_HEADER(D3DFORMAT) ENUM2STR_HEADER(D3DPOOL) @@ -133,7 +132,9 @@ namespace xbox { //ENUM2STR_HEADER(X_D3DSTENCILOP) //ENUM2STR_HEADER(X_D3DTEXTURESTAGESTATETYPE) +ENUM2STR_HEADER(X_D3DCUBEMAP_FACES) ENUM2STR_HEADER(X_D3DCULL) +//ENUM2STR_HEADER(X_D3DDEVTYPE) ENUM2STR_HEADER(X_D3DFORMAT) ENUM2STR_HEADER(X_D3DPRIMITIVETYPE) ENUM2STR_HEADER(X_D3DRESOURCETYPE) diff --git a/src/core/hle/D3D8/XbD3D8Types.h b/src/core/hle/D3D8/XbD3D8Types.h index b424af465..3fde9cf82 100644 --- a/src/core/hle/D3D8/XbD3D8Types.h +++ b/src/core/hle/D3D8/XbD3D8Types.h @@ -102,6 +102,19 @@ namespace xbox { // Xbox D3D types, probably just copies of the Windows Direct3D 9 counterparts : +/* CubeMap Face identifiers */ +typedef enum _X_D3DCUBEMAP_FACES +{ + X_D3DCUBEMAP_FACE_POSITIVE_X = 0, + X_D3DCUBEMAP_FACE_NEGATIVE_X = 1, + X_D3DCUBEMAP_FACE_POSITIVE_Y = 2, + X_D3DCUBEMAP_FACE_NEGATIVE_Y = 3, + X_D3DCUBEMAP_FACE_POSITIVE_Z = 4, + X_D3DCUBEMAP_FACE_NEGATIVE_Z = 5, + + X_D3DCUBEMAP_FACE_FORCE_DWORD = 0x7fffffff +} X_D3DCUBEMAP_FACES; + typedef enum _X_D3DDEVTYPE { X_D3DDEVTYPE_HAL = 1,