mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
use colorwritemask better
This commit is contained in:
parent
a31a99d91b
commit
7d20aff6f6
@ -157,7 +157,16 @@ INLINE void DXGraphicsStateGuardian::
|
||||
set_color_writemask(UINT color_writemask) {
|
||||
if (_color_writemask != color_writemask) {
|
||||
_color_writemask = color_writemask;
|
||||
scrn.pD3DDevice->SetRenderState(D3DRS_COLORWRITEENABLE, (DWORD)color_writemask);
|
||||
if(scrn.d3dcaps.PrimitiveMiscCaps & D3DPMISCCAPS_COLORWRITEENABLE) {
|
||||
// only newer HW supports this rstate
|
||||
scrn.pD3DDevice->SetRenderState(D3DRS_COLORWRITEENABLE, (DWORD)color_writemask);
|
||||
} else {
|
||||
assert((color_writemask==0x0)||(color_writemask==0xFFFFFFFF));
|
||||
if(color_writemask==0x0) {
|
||||
enable_blend(true);
|
||||
call_dxBlendFunc(D3DBLEND_ZERO, D3DBLEND_ONE);
|
||||
} else enable_blend(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4381,13 +4381,10 @@ void DXGraphicsStateGuardian::
|
||||
set_blend_mode(ColorWriteAttrib::Mode color_write_mode,
|
||||
ColorBlendAttrib::Mode color_blend_mode,
|
||||
TransparencyAttrib::Mode transparency_mode) {
|
||||
// If color_write_mode is off, we disable writing to the color using
|
||||
// blending. I don't know if it is possible in DX to disable color
|
||||
// outside of a blend mode.
|
||||
// If color_write_mode is off, we disable writing to the colorbuffer.
|
||||
if (color_write_mode == ColorWriteAttrib::M_off) {
|
||||
enable_blend(true);
|
||||
enable_alpha_test(false);
|
||||
call_dxBlendFunc(D3DBLEND_ZERO, D3DBLEND_ONE);
|
||||
set_color_writemask(0x0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user