Index: CD3D9MaterialRenderer.h =================================================================== --- CD3D9MaterialRenderer.h (revision 1270) +++ CD3D9MaterialRenderer.h (working copy) @@ -66,13 +66,19 @@ virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial, bool resetAllRenderstates, IMaterialRendererServices* services) { + os::Printer::log("Setting solid material."); if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates) { + os::Printer::log("Resetting render states."); pID3DDevice->SetTextureStageState (0, D3DTSS_COLOROP, D3DTOP_MODULATE); pID3DDevice->SetTextureStageState (0, D3DTSS_COLORARG1, D3DTA_TEXTURE); pID3DDevice->SetTextureStageState (0, D3DTSS_COLORARG2, D3DTA_DIFFUSE); pID3DDevice->SetTextureStageState (0, D3DTSS_ALPHAOP, D3DTOP_DISABLE); } + else + { + os::Printer::log("Not resetting render states."); + } pID3DDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE); pID3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); @@ -306,9 +312,11 @@ virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial, bool resetAllRenderstates, IMaterialRendererServices* services) { + os::Printer::log("Setting transparent alpha channel."); if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates || material.MaterialTypeParam != lastMaterial.MaterialTypeParam ) { + os::Printer::log("Resetting render states."); pID3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE ); pID3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); pID3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_CURRENT ); @@ -331,6 +339,10 @@ pID3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); } + else + { + os::Printer::log("Not resetting render states."); + } ((SMaterial&)material).ZWriteEnable = false; @@ -363,8 +375,10 @@ virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial, bool resetAllRenderstates, IMaterialRendererServices* services) { + os::Printer::log("Setting transparent alpha channel ref."); if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates) { + os::Printer::log("Resetting render states."); pID3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE ); pID3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); pID3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_CURRENT ); @@ -384,6 +398,10 @@ pID3DDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL); pID3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); } + else + { + os::Printer::log("Not resetting render states."); + } ((SMaterial&)material).ZWriteEnable = false;