diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 359303610fb..baec6aa24c8 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3430,6 +3430,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, W case WINED3DRS_DEBUGMONITORTOKEN : case WINED3DRS_POSITIONDEGREE : case WINED3DRS_NORMALDEGREE : + case WINED3DRS_MINTESSELLATIONLEVEL : + case WINED3DRS_MAXTESSELLATIONLEVEL : + case WINED3DRS_ADAPTIVETESS_X : + case WINED3DRS_ADAPTIVETESS_Y : + case WINED3DRS_ADAPTIVETESS_Z : + case WINED3DRS_ADAPTIVETESS_W : + case WINED3DRS_ENABLEADAPTIVETESSELLATION: StateTable[STATE_RENDER(State)].apply(STATE_RENDER(State), This->stateBlock); break; @@ -3440,27 +3447,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderState(IWineD3DDevice *iface, W return WINED3DERR_INVALIDCALL; } - case WINED3DRS_MINTESSELLATIONLEVEL : - case WINED3DRS_MAXTESSELLATIONLEVEL : - case WINED3DRS_ADAPTIVETESS_X : - case WINED3DRS_ADAPTIVETESS_Y : - case WINED3DRS_ADAPTIVETESS_Z : - case WINED3DRS_ADAPTIVETESS_W : - { - if(This->stateBlock->renderState[WINED3DRS_ENABLEADAPTIVETESSELLATION]) - FIXME("(%p)->(%s,%d) not yet implemented\n", This, debug_d3drenderstate(State), Value); - else - TRACE("(%p)->(%s,%d): recording state but WINED3DRS_ENABLEADAPTIVETESSELLATION is not enabled\n", This, debug_d3drenderstate(State), Value); - break; - } - - case WINED3DRS_ENABLEADAPTIVETESSELLATION: - { - if(Value) - ERR("(%p)->(%s,%d) not yet implemented\n", This, debug_d3drenderstate(State), Value); - break; - } - case WINED3DRS_SRGBWRITEENABLE : { if(Value) diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 08357d85c83..ff016ceef1a 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -1202,6 +1202,12 @@ static void state_normaldegree(DWORD state, IWineD3DStateBlockImpl *stateblock) ERR("(WINED3DRS_NORMALDEGREE,%d) not yet implemented\n", stateblock->renderState[WINED3DRS_NORMALDEGREE]); } +static void state_tessellation(DWORD state, IWineD3DStateBlockImpl *stateblock) { + TRACE("Stub\n"); + if(stateblock->renderState[WINED3DRS_ENABLEADAPTIVETESSELLATION]) + FIXME("(WINED3DRS_ENABLEADAPTIVETESSELLATION,%d) not yet implemented\n", stateblock->renderState[WINED3DRS_ENABLEADAPTIVETESSELLATION]); +} + const struct StateEntry StateTable[] = { /* State name representative, apply function */ @@ -1387,13 +1393,13 @@ const struct StateEntry StateTable[] = { /*175, WINED3DRS_SLOPESCALEDEPTHBIAS */ STATE_RENDER(WINED3DRS_DEPTHBIAS), state_depthbias }, { /*176, WINED3DRS_ANTIALIASEDLINEENABLE */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), state_blend }, { /*177, undefined */ 0, state_undefined }, - { /*178, WINED3DRS_MINTESSELLATIONLEVEL */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, - { /*179, WINED3DRS_MAXTESSELLATIONLEVEL */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, - { /*180, WINED3DRS_ADAPTIVETESS_X */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, - { /*181, WINED3DRS_ADAPTIVETESS_Y */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, - { /*182, WINED3DRS_ADAPTIVETESS_Z */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, - { /*183, WINED3DRS_ADAPTIVETESS_W */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, - { /*184, WINED3DRS_ENABLEADAPTIVETESSELLATION */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_unknown }, + { /*178, WINED3DRS_MINTESSELLATIONLEVEL */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, + { /*179, WINED3DRS_MAXTESSELLATIONLEVEL */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, + { /*180, WINED3DRS_ADAPTIVETESS_X */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, + { /*181, WINED3DRS_ADAPTIVETESS_Y */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, + { /*182, WINED3DRS_ADAPTIVETESS_Z */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, + { /*183, WINED3DRS_ADAPTIVETESS_W */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, + { /*184, WINED3DRS_ENABLEADAPTIVETESSELLATION */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), state_tessellation }, { /*185, WINED3DRS_TWOSIDEDSTENCILMODE */ STATE_RENDER(WINED3DRS_STENCILENABLE), state_stencil }, { /*186, WINED3DRS_CCW_STENCILFAIL */ STATE_RENDER(WINED3DRS_STENCILENABLE), state_stencil }, { /*187, WINED3DRS_CCW_STENCILZFAIL */ STATE_RENDER(WINED3DRS_STENCILENABLE), state_stencil },