From 50a6e4154995df4bfa584b787b27a925e07210a2 Mon Sep 17 00:00:00 2001 From: bkaradzic <branimirkaradzic@gmail.com> Date: Sat, 2 Jun 2012 15:07:35 -0700 Subject: [PATCH] Added BGFX_STATE_MSAA to allow non-AA rendering to MSAA surface. --- include/bgfx.h | 2 ++ src/renderer_d3d9.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/bgfx.h b/include/bgfx.h index 470118e9..d5b8abff 100644 --- a/include/bgfx.h +++ b/include/bgfx.h @@ -72,6 +72,7 @@ namespace bgfx #define BGFX_STATE_POINT_SIZE_MASK UINT64_C(0x000ff00000000000) #define BGFX_STATE_SRGBWRITE UINT64_C(0x0010000000000000) +#define BGFX_STATE_MSAA UINT64_C(0x0020000000000000) #define BGFX_STATE_NONE UINT64_C(0x0000000000000000) #define BGFX_STATE_MASK UINT64_C(0xffffffffffffffff) @@ -81,6 +82,7 @@ namespace bgfx | BGFX_STATE_DEPTH_TEST_LESS \ | BGFX_STATE_DEPTH_WRITE \ | BGFX_STATE_CULL_CW \ + | BGFX_STATE_MSAA \ ) #define BGFX_CLEAR_NONE UINT8_C(0x00) diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index 16144ff4..afe5ffc5 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -1659,7 +1659,7 @@ namespace bgfx if ( (BGFX_STATE_CULL_MASK|BGFX_STATE_DEPTH_WRITE|BGFX_STATE_DEPTH_TEST_MASK |BGFX_STATE_ALPHA_MASK|BGFX_STATE_ALPHA_WRITE|BGFX_STATE_RGB_WRITE |BGFX_STATE_BLEND_MASK|BGFX_STATE_ALPHA_REF_MASK|BGFX_STATE_PT_MASK - |BGFX_STATE_POINT_SIZE_MASK|BGFX_STATE_SRGBWRITE) & changedFlags) + |BGFX_STATE_POINT_SIZE_MASK|BGFX_STATE_SRGBWRITE|BGFX_STATE_MSAA) & changedFlags) { if (BGFX_STATE_CULL_MASK & changedFlags) { @@ -1704,6 +1704,11 @@ namespace bgfx } #endif // BX_PLATFORM_WINDOWS + if (BGFX_STATE_MSAA & changedFlags) + { + DX_CHECK(s_renderCtx.m_device->SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, (newFlags&BGFX_STATE_MSAA) == BGFX_STATE_MSAA) ); + } + if ( (BGFX_STATE_ALPHA_WRITE|BGFX_STATE_RGB_WRITE) & changedFlags) { uint32_t writeEnable = (newFlags&BGFX_STATE_ALPHA_WRITE) ? D3DCOLORWRITEENABLE_ALPHA : 0;