From 6eb6665a42aa34cbbda6c4033ad15b079dc4e46b Mon Sep 17 00:00:00 2001 From: PatrickvL Date: Wed, 21 Dec 2022 09:47:00 +0100 Subject: [PATCH] Introduced Xbox version of X_D3DTRIPATCH_INFO, and required X_D3DBASISTYPE and X_D3DDEGREETYPE enums --- src/core/hle/D3D8/Direct3D9/Direct3D9.cpp | 2 +- src/core/hle/D3D8/Direct3D9/Direct3D9.h | 2 +- src/core/hle/D3D8/XbD3D8Types.h | 30 +++++++++++++++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp index db72ab8b1..b027e4144 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp @@ -9378,7 +9378,7 @@ xbox::hresult_xt WINAPI xbox::EMUPATCH(D3DDevice_DrawTriPatch) ( uint_xt Handle, CONST float_xt *pNumSegs, - CONST D3DTRIPATCH_INFO* pTriPatchInfo + CONST X_D3DTRIPATCH_INFO* pTriPatchInfo ) { LOG_FUNC_BEGIN diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.h b/src/core/hle/D3D8/Direct3D9/Direct3D9.h index 4a63f9158..36aa46229 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.h +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.h @@ -1878,7 +1878,7 @@ xbox::hresult_xt WINAPI EMUPATCH(D3DDevice_DrawTriPatch) ( uint_xt Handle, CONST float_xt *pNumSegs, - CONST D3DTRIPATCH_INFO* pTriPatchInfo + CONST X_D3DTRIPATCH_INFO* pTriPatchInfo ); // ****************************************************************** diff --git a/src/core/hle/D3D8/XbD3D8Types.h b/src/core/hle/D3D8/XbD3D8Types.h index 8bef13ce3..60d500a92 100644 --- a/src/core/hle/D3D8/XbD3D8Types.h +++ b/src/core/hle/D3D8/XbD3D8Types.h @@ -121,6 +121,13 @@ typedef enum _X_D3DBACKBUFFER_TYPE X_D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff } X_D3DBACKBUFFER_TYPE; +typedef enum _X_D3DBASISTYPE { // Based on Direct3D 9 TODO : verify on Xbox + D3DBASIS_BEZIER = 0, + D3DBASIS_BSPLINE = 1, + D3DBASIS_CATMULL_ROM = 2, + D3DBASIS_FORCE_DWORD = 0x7fffffff +} X_D3DBASISTYPE, *LPX_D3DBASISTYPE; + /* CubeMap Face identifiers */ typedef enum _X_D3DCUBEMAP_FACES { @@ -134,6 +141,14 @@ typedef enum _X_D3DCUBEMAP_FACES X_D3DCUBEMAP_FACE_FORCE_DWORD = 0x7fffffff } X_D3DCUBEMAP_FACES; +typedef enum _X_D3DDEGREETYPE { // Based on Direct3D 9 TODO : verify on Xbox + D3DDEGREE_LINEAR = 1, + D3DDEGREE_QUADRATIC = 2, + D3DDEGREE_CUBIC = 3, + D3DDEGREE_QUINTIC = 5, + D3DCULL_FORCE_DWORD = 0x7fffffff +} X_D3DDEGREETYPE, *LPX_D3DDEGREETYPE; + typedef enum _X_D3DDEVTYPE { X_D3DDEVTYPE_HAL = 1, @@ -220,13 +235,24 @@ typedef struct _X_D3DRECTPATCH_INFO { // Based on Direct3D 9 TODO : verify on Xb UINT Width; UINT Height; UINT Stride; - D3DBASISTYPE Basis; - D3DDEGREETYPE Degree; + X_D3DBASISTYPE Basis; + X_D3DDEGREETYPE Degree; } X_D3DRECTPATCH_INFO, *LPX_D3DRECTPATCH_INFO; #else typedef D3DRECTPATCH_INFO X_D3DRECTPATCH_INFO; #endif +#ifdef CXBX_USE_D3D11 +typedef struct _X_D3DTRIPATCH_INFO { // Based on Direct3D 9 TODO : verify on Xbox + UINT StartVertexOffset; + UINT NumVertices; + X_D3DBASISTYPE Basis; + X_D3DDEGREETYPE Degree; +} X_D3DTRIPATCH_INFO, *LPX_D3DTRIPATCH_INFO; +#else +typedef D3DTRIPATCH_INFO X_D3DTRIPATCH_INFO; +#endif + typedef struct _X_D3DCOLORVALUE { float r; float g;