diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp index b027e4144..2d88292e3 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp @@ -5052,7 +5052,7 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_SetVertexData4s) xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_SetVertexDataColor) ( int_xt Register, - D3DCOLOR Color + X_D3DCOLOR Color ) { LOG_FUNC_BEGIN @@ -5100,8 +5100,8 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_Clear) dword_xt Count, CONST X_D3DRECT *pRects, dword_xt Flags, - D3DCOLOR Color, - float Z, + X_D3DCOLOR Color, + float Z, dword_xt Stencil ) { @@ -6855,7 +6855,7 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_UpdateOverlay) CONST X_RECT *SrcRect, CONST X_RECT *DstRect, bool_xt EnableColorKey, - D3DCOLOR ColorKey + X_D3DCOLOR ColorKey ) { LOG_FUNC_BEGIN diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp.unused-patches b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp.unused-patches index a1d4e7464..924e69696 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp.unused-patches +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp.unused-patches @@ -3874,7 +3874,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_GetLight) VOID WINAPI XTL::EMUPATCH(D3DPalette_Lock) ( X_D3DPalette *pThis, - D3DCOLOR **ppColors, + X_D3DCOLOR **ppColors, DWORD Flags ) { @@ -3884,7 +3884,7 @@ VOID WINAPI XTL::EMUPATCH(D3DPalette_Lock) LOG_FUNC_ARG(Flags) LOG_FUNC_END; - XB_trampoline(VOID, WINAPI, D3DPalette_Lock, (X_D3DPalette*, D3DCOLOR**, DWORD)); + XB_trampoline(VOID, WINAPI, D3DPalette_Lock, (X_D3DPalette*, X_D3DCOLOR**, DWORD)); XB_D3DPalette_Lock(pThis, ppColors, Flags); // Check if this palette is in use by a texture stage, and force it to be re-converted if yes @@ -3898,7 +3898,7 @@ VOID WINAPI XTL::EMUPATCH(D3DPalette_Lock) // ****************************************************************** // * patch: IDirect3DPalette8_Lock2 // ****************************************************************** -D3DCOLOR * WINAPI XTL::EMUPATCH(D3DPalette_Lock2) +xbox::X_D3DCOLOR * WINAPI XTL::EMUPATCH(D3DPalette_Lock2) ( X_D3DPalette *pThis, DWORD Flags @@ -3910,7 +3910,7 @@ D3DCOLOR * WINAPI XTL::EMUPATCH(D3DPalette_Lock2) LOG_FUNC_END; XB_trampoline(D3DCOLOR*, WINAPI, D3DPalette_Lock2, (X_D3DPalette*, DWORD)); - D3DCOLOR* pData = XB_D3DPalette_Lock2(pThis, Flags); + X_D3DCOLOR* pData = XB_D3DPalette_Lock2(pThis, Flags); // Check if this palette is in use by a texture stage, and force it to be re-converted if yes for (int i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++) { diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.h b/src/core/hle/D3D8/Direct3D9/Direct3D9.h index 36aa46229..59d3e8186 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.h +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.h @@ -721,7 +721,7 @@ xbox::void_xt WINAPI EMUPATCH(D3DDevice_SetVertexData4s) xbox::void_xt WINAPI EMUPATCH(D3DDevice_SetVertexDataColor) ( int_xt Register, - D3DCOLOR Color + X_D3DCOLOR Color ); // ****************************************************************** @@ -746,8 +746,8 @@ xbox::void_xt WINAPI EMUPATCH(D3DDevice_Clear) dword_xt Count, CONST X_D3DRECT *pRects, dword_xt Flags, - D3DCOLOR Color, - float Z, + X_D3DCOLOR Color, + float Z, dword_xt Stencil ); @@ -975,7 +975,7 @@ xbox::void_xt WINAPI EMUPATCH(D3DDevice_UpdateOverlay) CONST X_RECT *SrcRect, CONST X_RECT *DstRect, bool_xt EnableColorKey, - D3DCOLOR ColorKey + X_D3DCOLOR ColorKey ); // ****************************************************************** @@ -1576,15 +1576,15 @@ xbox::void_xt WINAPI EMUPATCH(D3DDevice_SetSoftDisplayFilter) // ****************************************************************** xbox::void_xt WINAPI EMUPATCH(D3DPalette_Lock) ( - X_D3DPalette *pThis, - D3DCOLOR **ppColors, + X_D3DPalette *pThis, + X_D3DCOLOR **ppColors, dword_xt Flags ); // ****************************************************************** // * patch: IDirect3DPalette8_Lock2 // ****************************************************************** -D3DCOLOR * WINAPI EMUPATCH(D3DPalette_Lock2) +xbox::X_D3DCOLOR * WINAPI EMUPATCH(D3DPalette_Lock2) ( X_D3DPalette *pThis, dword_xt Flags diff --git a/src/core/hle/D3D8/Direct3D9/TextureStates.cpp b/src/core/hle/D3D8/Direct3D9/TextureStates.cpp index c306f94a4..7d3a14dd4 100644 --- a/src/core/hle/D3D8/Direct3D9/TextureStates.cpp +++ b/src/core/hle/D3D8/Direct3D9/TextureStates.cpp @@ -306,16 +306,16 @@ void XboxTextureStateConverter::Apply() static D3D11_SAMPLER_DESC g_GlobalSamplerDesc = {}; // TODO : Move to globals section switch (State) { - case xbox::X_D3DTSS_ADDRESSU: g_GlobalSamplerDesc.AddressU = pcValue; break; - case xbox::X_D3DTSS_ADDRESSV: g_GlobalSamplerDesc.AddressV = pcValue; break; - case xbox::X_D3DTSS_ADDRESSW: g_GlobalSamplerDesc.AddressW = pcValue; break; - case xbox::X_D3DTSS_MAGFILTER: g_GlobalSamplerDesc.Filter = pcValue; break; // TODO : Which Filter?? - case xbox::X_D3DTSS_MINFILTER: g_GlobalSamplerDesc.Filter = pcValue; break; // TODO : Which Filter?? - case xbox::X_D3DTSS_MIPFILTER: g_GlobalSamplerDesc.Filter = pcValue; break; // TODO : Which Filter?? - case xbox::X_D3DTSS_MIPMAPLODBIAS: g_GlobalSamplerDesc.MipLODBias = pcValue; break; - case xbox::X_D3DTSS_MAXMIPLEVEL: g_GlobalSamplerDesc.MaxLOD = pcValue; break; // TODO : What about MinLOD? - case xbox::X_D3DTSS_MAXANISOTROPY: g_GlobalSamplerDesc.MaxAnisotropy = pcValue; break; - case xbox::X_D3DTSS_BORDERCOLOR: g_GlobalSamplerDesc.BorderColor = D3DCOLOR(pcValue); break; + case xbox::X_D3DTSS_ADDRESSU: g_GlobalSamplerDesc.AddressU = static_cast(pcValue); break; + case xbox::X_D3DTSS_ADDRESSV: g_GlobalSamplerDesc.AddressV = static_cast(pcValue); break; + case xbox::X_D3DTSS_ADDRESSW: g_GlobalSamplerDesc.AddressW = static_cast(pcValue); break; + case xbox::X_D3DTSS_MAGFILTER: g_GlobalSamplerDesc.Filter = static_cast(pcValue); break; // TODO : There's only 1, not 3 Filter members? + case xbox::X_D3DTSS_MINFILTER: g_GlobalSamplerDesc.Filter = static_cast(pcValue); break; // TODO : There's only 1, not 3 Filter members? + case xbox::X_D3DTSS_MIPFILTER: g_GlobalSamplerDesc.Filter = static_cast(pcValue); break; // TODO : There's only 1, not 3 Filter members? + case xbox::X_D3DTSS_MIPMAPLODBIAS: g_GlobalSamplerDesc.MipLODBias = /*TODO:FLOAT*/(pcValue); break; + case xbox::X_D3DTSS_MAXMIPLEVEL: g_GlobalSamplerDesc.MaxLOD = /*TODO:FLOAT*/(pcValue); break; // TODO : What about MinLOD? + case xbox::X_D3DTSS_MAXANISOTROPY: g_GlobalSamplerDesc.MaxAnisotropy = pcValue; break; // Note : MaxAnisotropy type is UINT + case xbox::X_D3DTSS_BORDERCOLOR: g_GlobalSamplerDesc.BorderColor = D3DXCOLOR(pcValue); break; // Note : BorderColor type is float[4] } ID3D11SamplerState *pSamplerState = nullptr; diff --git a/src/core/hle/D3D8/XbConvert.cpp b/src/core/hle/D3D8/XbConvert.cpp index 29597358d..cac806406 100644 --- a/src/core/hle/D3D8/XbConvert.cpp +++ b/src/core/hle/D3D8/XbConvert.cpp @@ -1443,7 +1443,7 @@ const RenderStateInfo DxbxRenderStateInfo[1+xbox::X_D3DRS_DONOTCULLUNCOMPRESSED] { "D3DRS_STENCILWRITEMASK" /*= 73*/, 3424, xtBYTE, NV2A_STENCIL_MASK, D3DRS_STENCILWRITEMASK, "BYTE write mask applied to values written to stencil buffer" }, { "D3DRS_BLENDOP" /*= 74*/, 3424, xtD3DBLENDOP, NV2A_BLEND_EQUATION, D3DRS_BLENDOP }, { "D3DRS_BLENDCOLOR" /*= 75*/, 3424, xtD3DCOLOR, NV2A_BLEND_COLOR, D3DRS_BLENDFACTOR, "D3DCOLOR for D3DBLEND_CONSTANTCOLOR" }, - // D3D9 D3DRS_BLENDFACTOR : D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR + // D3D9 D3DRS_BLENDFACTOR : X_D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR { "D3DRS_SWATHWIDTH" /*= 76*/, 3424, xtD3DSWATH, NV2A_SWATH_WIDTH }, { "D3DRS_POLYGONOFFSETZSLOPESCALE" /*= 77*/, 3424, xtFloat, NV2A_POLYGON_OFFSET_FACTOR, D3DRS_UNSUPPORTED, "float Z factor for shadow maps" }, { "D3DRS_POLYGONOFFSETZOFFSET" /*= 78*/, 3424, xtFloat, NV2A_POLYGON_OFFSET_UNITS }, diff --git a/src/core/hle/D3D8/XbD3D8Types.h b/src/core/hle/D3D8/XbD3D8Types.h index 60d500a92..bdb898930 100644 --- a/src/core/hle/D3D8/XbD3D8Types.h +++ b/src/core/hle/D3D8/XbD3D8Types.h @@ -128,6 +128,12 @@ typedef enum _X_D3DBASISTYPE { // Based on Direct3D 9 TODO : verify on Xbox D3DBASIS_FORCE_DWORD = 0x7fffffff } X_D3DBASISTYPE, *LPX_D3DBASISTYPE; +#ifdef CXBX_USE_D3D11 +typedef DWORD X_D3DCOLOR; +#else +typedef D3DCOLOR X_D3DCOLOR; +#endif + /* CubeMap Face identifiers */ typedef enum _X_D3DCUBEMAP_FACES {