diff --git a/src/internal/graphics_backend_d3d11.cpp b/src/internal/graphics_backend_d3d11.cpp index 8c5c4c1..d3f21a9 100644 --- a/src/internal/graphics_backend_d3d11.cpp +++ b/src/internal/graphics_backend_d3d11.cpp @@ -1338,7 +1338,15 @@ namespace Blah blend.alpha_src == BlendFactor::One && blend.alpha_dst == BlendFactor::Zero ); - desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; + desc.RenderTarget[0].RenderTargetWriteMask = 0; + if (((int)blend.mask & (int)BlendMask::Red) == (int)BlendMask::Red) + desc.RenderTarget[0].RenderTargetWriteMask |= D3D11_COLOR_WRITE_ENABLE_RED; + if (((int)blend.mask & (int)BlendMask::Green) == (int)BlendMask::Green) + desc.RenderTarget[0].RenderTargetWriteMask |= D3D11_COLOR_WRITE_ENABLE_GREEN; + if (((int)blend.mask & (int)BlendMask::Blue) == (int)BlendMask::Blue) + desc.RenderTarget[0].RenderTargetWriteMask |= D3D11_COLOR_WRITE_ENABLE_BLUE; + if (((int)blend.mask & (int)BlendMask::Alpha) == (int)BlendMask::Alpha) + desc.RenderTarget[0].RenderTargetWriteMask |= D3D11_COLOR_WRITE_ENABLE_ALPHA; if (desc.RenderTarget[0].BlendEnable) {