parent
ce7a5f6e40
commit
6bf2a1f44f
|
@ -768,7 +768,12 @@ IDirect3DPixelShader9* GetFixedFunctionShader()
|
||||||
|
|
||||||
bool previousStageDisabled = false;
|
bool previousStageDisabled = false;
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
// Determine the COLOROP
|
// Determine COLOROP
|
||||||
|
// This controls both the texture operation for the colour of the stage
|
||||||
|
// and when to stop processing
|
||||||
|
// Under certain circumstances we force it to be DISABLE
|
||||||
|
auto colorOp = XboxTextureStates.Get(i, xbox::X_D3DTSS_COLOROP);
|
||||||
|
|
||||||
// Usually we execute stages up to the first disabled stage
|
// Usually we execute stages up to the first disabled stage
|
||||||
// However, if point sprites are enabled, we just execute stage 3
|
// However, if point sprites are enabled, we just execute stage 3
|
||||||
bool forceDisable =
|
bool forceDisable =
|
||||||
|
@ -784,12 +789,12 @@ IDirect3DPixelShader9* GetFixedFunctionShader()
|
||||||
// Test case: Crash Nitro Kart (engine speed UI)
|
// Test case: Crash Nitro Kart (engine speed UI)
|
||||||
if (!g_pXbox_SetTexture[i]
|
if (!g_pXbox_SetTexture[i]
|
||||||
&& XboxTextureStates.Get(i, xbox::X_D3DTSS_COLORARG1) == X_D3DTA_TEXTURE
|
&& XboxTextureStates.Get(i, xbox::X_D3DTSS_COLORARG1) == X_D3DTA_TEXTURE
|
||||||
&& XboxTextureStates.Get(i, xbox::X_D3DTSS_COLOROP) != xbox::X_D3DTOP_SELECTARG2)
|
&& colorOp != xbox::X_D3DTOP_SELECTARG2)
|
||||||
{
|
{
|
||||||
forceDisable = true;
|
forceDisable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto colorOp = XboxTextureStates.Get(i, xbox::X_D3DTSS_COLOROP);
|
// Set the final COLOROP value
|
||||||
states[i].COLOROP = forceDisable ? X_D3DTOP_DISABLE : colorOp;
|
states[i].COLOROP = forceDisable ? X_D3DTOP_DISABLE : colorOp;
|
||||||
|
|
||||||
// If the stage is disabled we don't want its configuration to affect the key
|
// If the stage is disabled we don't want its configuration to affect the key
|
||||||
|
|
Loading…
Reference in New Issue