Module: wine Branch: master Commit: 0c1aba5fe239392afaff37acb1ed4c157bb73638 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0c1aba5fe239392afaff37acb1...
Author: Stefan Dösinger stefan@codeweavers.com Date: Sun Dec 10 23:20:40 2006 +0100
wined3d: Move WINED3DRS_MULTISAMPLEANTIALIAS to the state table.
---
dlls/wined3d/device.c | 19 +------------------ dlls/wined3d/state.c | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 5505cd7..0f82021 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3423,6 +3423,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl case WINED3DRS_WRAP13 : case WINED3DRS_WRAP14 : case WINED3DRS_WRAP15 : + case WINED3DRS_MULTISAMPLEANTIALIAS : StateTable[STATE_RENDER(State)].apply(STATE_RENDER(State), This->stateBlock); break;
@@ -3433,24 +3434,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl return WINED3DERR_INVALIDCALL; }
- case WINED3DRS_MULTISAMPLEANTIALIAS : - { - if( GL_SUPPORT(ARB_MULTISAMPLE) ) { - if(Value) { - glEnable(GL_MULTISAMPLE_ARB); - checkGLcall("glEnable(GL_MULTISAMPLE_ARB)"); - } else { - glDisable(GL_MULTISAMPLE_ARB); - checkGLcall("glDisable(GL_MULTISAMPLE_ARB)"); - } - } else { - if(Value) { - ERR("Multisample antialiasing not supported by gl\n"); - } - } - break; - } - case WINED3DRS_SCISSORTESTENABLE : { if(Value) { diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 0635371..016c338 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -1099,6 +1099,22 @@ static void state_wrap(DWORD state, IWin } }
+static void state_multisampleaa(DWORD state, IWineD3DStateBlockImpl *stateblock) { + if( GL_SUPPORT(ARB_MULTISAMPLE) ) { + if(stateblock->renderState[WINED3DRS_MULTISAMPLEANTIALIAS]) { + glEnable(GL_MULTISAMPLE_ARB); + checkGLcall("glEnable(GL_MULTISAMPLE_ARB)"); + } else { + glDisable(GL_MULTISAMPLE_ARB); + checkGLcall("glDisable(GL_MULTISAMPLE_ARB)"); + } + } else { + if(stateblock->renderState[WINED3DRS_MULTISAMPLEANTIALIAS]) { + ERR("Multisample antialiasing not supported by gl\n"); + } + } +} + const struct StateEntry StateTable[] = { /* State name representative, apply function */ @@ -1265,7 +1281,7 @@ const struct StateEntry StateTable[] = { /*158, WINED3DRS_POINTSCALE_A */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), state_pscale }, { /*159, WINED3DRS_POINTSCALE_B */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), state_pscale }, { /*160, WINED3DRS_POINTSCALE_C */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), state_pscale }, - { /*161, WINED3DRS_MULTISAMPLEANTIALIAS */ STATE_RENDER(WINED3DRS_MULTISAMPLEANTIALIAS), state_unknown }, + { /*161, WINED3DRS_MULTISAMPLEANTIALIAS */ STATE_RENDER(WINED3DRS_MULTISAMPLEANTIALIAS), state_multisampleaa }, { /*162, WINED3DRS_MULTISAMPLEMASK */ STATE_RENDER(WINED3DRS_MULTISAMPLEMASK), state_unknown }, { /*163, WINED3DRS_PATCHEDGESTYLE */ STATE_RENDER(WINED3DRS_PATCHEDGESTYLE), state_unknown }, { /*164, WINED3DRS_PATCHSEGMENTS */ STATE_RENDER(WINED3DRS_PATCHSEGMENTS), state_unknown },