From 53e788956aa02b77b7b7c17912642c9e12ed60d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 8 Dec 2006 01:39:55 +0100 Subject: [PATCH] wined3d: Move WINED3DRS_LIGHTNING to the state table. --- dlls/wined3d/device.c | 11 +---------- dlls/wined3d/state.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 077ac423812..dc1467b82ef 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3437,17 +3437,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, W switch (State) { case WINED3DRS_FILLMODE : - StateTable[STATE_RENDER(WINED3DRS_FILLMODE)].apply(STATE_RENDER(WINED3DRS_FILLMODE), This->stateBlock); - break; - case WINED3DRS_LIGHTING : - if (Value) { - glEnable(GL_LIGHTING); - checkGLcall("glEnable GL_LIGHTING"); - } else { - glDisable(GL_LIGHTING); - checkGLcall("glDisable GL_LIGHTING"); - } + StateTable[STATE_RENDER(State)].apply(STATE_RENDER(State), This->stateBlock); break; case WINED3DRS_ZENABLE : diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 32b8032248c..06cb342981f 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -79,6 +79,21 @@ static void state_fillmode(DWORD state, IWineD3DStateBlockImpl *stateblock) { } } +static void state_lighting(DWORD state, IWineD3DStateBlockImpl *stateblock) { + + /* TODO: Lighting is only enabled if Vertex normals are passed by the application, + * so merge the lighting render state with the vertex declaration once it is available + */ + + if (stateblock->renderState[WINED3DRS_LIGHTING]) { + glEnable(GL_LIGHTING); + checkGLcall("glEnable GL_LIGHTING"); + } else { + glDisable(GL_LIGHTING); + checkGLcall("glDisable GL_LIGHTING"); + } +} + const struct StateEntry StateTable[] = { /* State name representative, apply function */ @@ -221,7 +236,7 @@ const struct StateEntry StateTable[] = { /*134, WINED3DRS_WRAP6 */ STATE_RENDER(WINED3DRS_WRAP0), state_unknown }, { /*135, WINED3DRS_WRAP7 */ STATE_RENDER(WINED3DRS_WRAP0), state_unknown }, { /*136, WINED3DRS_CLIPPING */ STATE_RENDER(WINED3DRS_CLIPPING), state_unknown }, - { /*137, WINED3DRS_LIGHTING */ STATE_RENDER(WINED3DRS_LIGHTING) /* Vertex decl! */,state_unknown }, + { /*137, WINED3DRS_LIGHTING */ STATE_RENDER(WINED3DRS_LIGHTING) /* Vertex decl! */,state_lighting }, { /*138, WINED3DRS_EXTENTS */ STATE_RENDER(WINED3DRS_EXTENTS), state_unknown }, { /*139, WINED3DRS_AMBIENT */ STATE_RENDER(WINED3DRS_AMBIENT), state_unknown }, { /*140, WINED3DRS_FOGVERTEXMODE */ STATE_RENDER(WINED3DRS_FOGENABLE), state_unknown },