From c48195e417f3b645d67c364ad59f25f127ba4104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 4 Jul 2008 15:09:49 -0500 Subject: [PATCH] wined3d: Move shader_fragment_enable to the fragment pipeline implementation. It isn't related to the shader backend any longer. The nvts_enable in the ffp code isn't quite right as well, it should be moved away once there is a dedicated nvts fragment pipeline replacement --- dlls/wined3d/arb_program_shader.c | 5 - dlls/wined3d/ati_fragment_shader.c | 28 +- dlls/wined3d/baseshader.c | 16 - dlls/wined3d/context.c | 14 +- dlls/wined3d/directx.c | 12 +- dlls/wined3d/glsl_shader.c | 5 - dlls/wined3d/state.c | 1114 +--------------------------- dlls/wined3d/wined3d_private.h | 13 +- 8 files changed, 64 insertions(+), 1143 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index ee0a7c8f305..83a7ed8aa7b 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -2120,10 +2120,6 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, WineD3D_GL_Info *gl_info } } -static void shader_arb_fragment_enable(IWineD3DDevice *iface, BOOL enable) { - none_shader_backend.shader_fragment_enable(iface, enable); -} - const shader_backend_t arb_program_shader_backend = { shader_arb_select, shader_arb_select_depth_blt, @@ -2138,5 +2134,4 @@ const shader_backend_t arb_program_shader_backend = { shader_arb_generate_pshader, shader_arb_generate_vshader, shader_arb_get_caps, - shader_arb_fragment_enable, }; diff --git a/dlls/wined3d/ati_fragment_shader.c b/dlls/wined3d/ati_fragment_shader.c index 853f6f2644b..10a56a34e65 100644 --- a/dlls/wined3d/ati_fragment_shader.c +++ b/dlls/wined3d/ati_fragment_shader.c @@ -853,7 +853,7 @@ static void set_bumpmat(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D } #undef GLINFO_LOCATION -const struct StateEntryTemplate atifs_fragmentstate_template[] = { +static const struct StateEntryTemplate atifs_fragmentstate_template[] = { {STATE_RENDER(WINED3DRS_TEXTUREFACTOR), { STATE_RENDER(WINED3DRS_TEXTUREFACTOR), state_texfactor_atifs }}, {STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), { STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), set_tex_op_atifs }}, {STATE_TEXTURESTAGE(0, WINED3DTSS_COLORARG1), { STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), set_tex_op_atifs }}, @@ -962,6 +962,21 @@ const struct StateEntryTemplate atifs_fragmentstate_template[] = { {0 /* Terminate */, { 0, 0 }}, }; +static void atifs_enable(IWineD3DDevice *iface, BOOL enable) { + if(enable) { + glEnable(GL_FRAGMENT_SHADER_ATI); + checkGLcall("glEnable(GL_FRAGMENT_SHADER_ATI)"); + } else { + glDisable(GL_FRAGMENT_SHADER_ATI); + checkGLcall("glDisable(GL_FRAGMENT_SHADER_ATI)"); + } +} + +const struct fragment_pipeline atifs_fragment_pipeline = { + atifs_enable, + atifs_fragmentstate_template +}; + /* GL_ATI_fragment_shader backend.It borrows a lot from a the * ARB shader backend, currently the whole vertex processing * code. This code would also forward pixel shaders, but if @@ -1098,16 +1113,6 @@ static void shader_atifs_generate_vshader(IWineD3DVertexShader *iface, SHADER_BU arb_program_shader_backend.shader_generate_vshader(iface, buffer); } -static void shader_atifs_fragment_enable(IWineD3DDevice *iface, BOOL enable) { - if(enable) { - glEnable(GL_FRAGMENT_SHADER_ATI); - checkGLcall("glEnable(GL_FRAGMENT_SHADER_ATI)"); - } else { - glDisable(GL_FRAGMENT_SHADER_ATI); - checkGLcall("glDisable(GL_FRAGMENT_SHADER_ATI)"); - } -} - const shader_backend_t atifs_shader_backend = { shader_atifs_select, shader_atifs_select_depth_blt, @@ -1122,5 +1127,4 @@ const shader_backend_t atifs_shader_backend = { shader_atifs_generate_pshader, shader_atifs_generate_vshader, shader_atifs_get_caps, - shader_atifs_fragment_enable, }; diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index 6b019d35512..a6231f20dca 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -1182,21 +1182,6 @@ static void shader_none_get_caps(WINED3DDEVTYPE devtype, WineD3D_GL_Info *gl_inf } -static void shader_none_fragment_enable(IWineD3DDevice *iface, BOOL enable) { - IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; - WineD3D_GL_Info *gl_info = &This->adapter->gl_info; - - if(GL_SUPPORT(NV_TEXTURE_SHADER2)) { - if(enable) { - glEnable(GL_TEXTURE_SHADER_NV); - checkGLcall("glEnable(GL_TEXTURE_SHADER_NV)"); - } else { - glDisable(GL_TEXTURE_SHADER_NV); - checkGLcall("glDisable(GL_TEXTURE_SHADER_NV)"); - } - } -} - #undef GLINFO_LOCATION const shader_backend_t none_shader_backend = { @@ -1213,7 +1198,6 @@ const shader_backend_t none_shader_backend = { shader_none_generate_pshader, shader_none_generate_vshader, shader_none_get_caps, - shader_none_fragment_enable, }; /* ******************************************* diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index b09707bf31d..4701f9aef84 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -448,7 +448,7 @@ WineD3DContext *CreateContext(IWineD3DDeviceImpl *This, IWineD3DSurfaceImpl *tar oldDrawable = pwglGetCurrentDC(); if(oldCtx && oldDrawable) { /* See comment in ActivateContext context switching */ - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, FALSE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, FALSE); } if(pwglMakeCurrent(hdc, ctx) == FALSE) { ERR("Cannot activate context to set up defaults\n"); @@ -533,7 +533,7 @@ WineD3DContext *CreateContext(IWineD3DDeviceImpl *This, IWineD3DSurfaceImpl *tar if(oldDrawable && oldCtx) { pwglMakeCurrent(oldDrawable, oldCtx); } - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, TRUE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, TRUE); out: return ret; @@ -792,7 +792,7 @@ static inline void SetupForBlit(IWineD3DDeviceImpl *This, WineD3DContext *contex Context_MarkStateDirty(context, STATE_TRANSFORM(WINED3DTS_PROJECTION), StateTable); - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, FALSE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, FALSE); } /***************************************************************************** @@ -1057,12 +1057,12 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU else { TRACE("Switching gl ctx to %p, hdc=%p ctx=%p\n", context, context->hdc, context->glCtx); - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, FALSE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, FALSE); ret = pwglMakeCurrent(context->hdc, context->glCtx); if(ret == FALSE) { ERR("Failed to activate the new context\n"); } else if(!context->last_was_blit) { - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, TRUE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, TRUE); } } if(This->activeContext->vshader_const_dirty) { @@ -1094,7 +1094,7 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU case CTXUSAGE_CLEAR: if(context->last_was_blit) { - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, TRUE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, TRUE); } /* Blending and clearing should be orthogonal, but tests on the nvidia driver show that disabling @@ -1113,7 +1113,7 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU case CTXUSAGE_DRAWPRIM: /* This needs all dirty states applied */ if(context->last_was_blit) { - This->shader_backend->shader_fragment_enable((IWineD3DDevice *) This, TRUE); + This->frag_pipe->enable_extension((IWineD3DDevice *) This, TRUE); } IWineD3DDeviceImpl_FindTexUnitMap(This); diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 76e1c80225d..1918a448625 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -2890,17 +2890,17 @@ static const shader_backend_t *select_shader_backend(UINT Adapter, WINED3DDEVTYP return ret; } -static const struct StateEntryTemplate *select_fragment_implementation(UINT Adapter, WINED3DDEVTYPE DeviceType) { +static const struct fragment_pipeline *select_fragment_implementation(UINT Adapter, WINED3DDEVTYPE DeviceType) { int vs_selected_mode; int ps_selected_mode; select_shader_mode(&GLINFO_LOCATION, DeviceType, &ps_selected_mode, &vs_selected_mode); if (ps_selected_mode == SHADER_GLSL || ps_selected_mode == SHADER_ARB) { - return ffp_fragmentstate_template; + return &ffp_fragment_pipeline; } else if (ps_selected_mode != SHADER_NONE && !GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) { - return atifs_fragmentstate_template; + return &atifs_fragment_pipeline; } else { - return ffp_fragmentstate_template; + return &ffp_fragment_pipeline; } } @@ -3407,7 +3407,7 @@ static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT Adapter, IWineD3DDeviceImpl *object = NULL; IWineD3DImpl *This = (IWineD3DImpl *)iface; WINED3DDISPLAYMODE mode; - const struct StateEntryTemplate *frag_pipeline = NULL; + const struct fragment_pipeline *frag_pipeline = NULL; int i; /* Validate the adapter number. If no adapters are available(no GL), ignore the adapter @@ -3462,7 +3462,7 @@ static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT Adapter, object->shader_backend = select_shader_backend(Adapter, DeviceType); frag_pipeline = select_fragment_implementation(Adapter, DeviceType); - + object->frag_pipe = frag_pipeline; compile_state_table(object->StateTable, object->multistate_funcs, ffp_vertexstate_template, frag_pipeline, misc_state_template); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 762e130d46f..100f3491847 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -3701,10 +3701,6 @@ static void shader_glsl_get_caps(WINED3DDEVTYPE devtype, WineD3D_GL_Info *gl_inf TRACE_(d3d_caps)("Hardware pixel shader version %d.%d enabled (GLSL)\n", (pCaps->PixelShaderVersion >> 8) & 0xff, pCaps->PixelShaderVersion & 0xff); } -static void shader_glsl_fragment_enable(IWineD3DDevice *iface, BOOL enable) { - none_shader_backend.shader_fragment_enable(iface, enable); -} - const shader_backend_t glsl_shader_backend = { shader_glsl_select, shader_glsl_select_depth_blt, @@ -3719,5 +3715,4 @@ const shader_backend_t glsl_shader_backend = { shader_glsl_generate_pshader, shader_glsl_generate_vshader, shader_glsl_get_caps, - shader_glsl_fragment_enable, }; diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index c7f8d85cc12..627a88f8ddb 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -3818,1080 +3818,6 @@ static void frontface(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCo } } -const struct StateEntry FFPStateTable[] = -{ - /* State name representative, apply function */ - { /* 0, Undefined */ 0, state_undefined }, - { /* 1, WINED3DRS_TEXTUREHANDLE */ 0 /* Handled in ddraw */, state_undefined }, - { /* 2, WINED3DRS_ANTIALIAS */ STATE_RENDER(WINED3DRS_ANTIALIAS), NULL }, - { /* 3, WINED3DRS_TEXTUREADDRESS */ 0 /* Handled in ddraw */, state_undefined }, - { /* 4, WINED3DRS_TEXTUREPERSPECTIVE */ STATE_RENDER(WINED3DRS_TEXTUREPERSPECTIVE), NULL }, - { /* 5, WINED3DRS_WRAPU */ STATE_RENDER(WINED3DRS_WRAPU), NULL }, - { /* 6, WINED3DRS_WRAPV */ STATE_RENDER(WINED3DRS_WRAPV), NULL }, - { /* 7, WINED3DRS_ZENABLE */ STATE_RENDER(WINED3DRS_ZENABLE), NULL }, - { /* 8, WINED3DRS_FILLMODE */ STATE_RENDER(WINED3DRS_FILLMODE), NULL }, - { /* 9, WINED3DRS_SHADEMODE */ STATE_RENDER(WINED3DRS_SHADEMODE), NULL }, - { /* 10, WINED3DRS_LINEPATTERN */ STATE_RENDER(WINED3DRS_LINEPATTERN), NULL }, - { /* 11, WINED3DRS_MONOENABLE */ STATE_RENDER(WINED3DRS_MONOENABLE), NULL }, - { /* 12, WINED3DRS_ROP2 */ STATE_RENDER(WINED3DRS_ROP2), NULL }, - { /* 13, WINED3DRS_PLANEMASK */ STATE_RENDER(WINED3DRS_PLANEMASK), NULL }, - { /* 14, WINED3DRS_ZWRITEENABLE */ STATE_RENDER(WINED3DRS_ZWRITEENABLE), NULL }, - { /* 15, WINED3DRS_ALPHATESTENABLE */ STATE_RENDER(WINED3DRS_ALPHATESTENABLE), NULL }, - { /* 16, WINED3DRS_LASTPIXEL */ STATE_RENDER(WINED3DRS_LASTPIXEL), NULL }, - { /* 17, WINED3DRS_TEXTUREMAG */ 0 /* Handled in ddraw */, state_undefined }, - { /* 18, WINED3DRS_TEXTUREMIN */ 0 /* Handled in ddraw */, state_undefined }, - { /* 19, WINED3DRS_SRCBLEND */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /* 20, WINED3DRS_DESTBLEND */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /* 21, WINED3DRS_TEXTUREMAPBLEND */ 0 /* Handled in ddraw */, state_undefined }, - { /* 22, WINED3DRS_CULLMODE */ STATE_RENDER(WINED3DRS_CULLMODE), NULL }, - { /* 23, WINED3DRS_ZFUNC */ STATE_RENDER(WINED3DRS_ZFUNC), NULL }, - { /* 24, WINED3DRS_ALPHAREF */ STATE_RENDER(WINED3DRS_ALPHATESTENABLE), NULL }, - { /* 25, WINED3DRS_ALPHAFUNC */ STATE_RENDER(WINED3DRS_ALPHATESTENABLE), NULL }, - { /* 26, WINED3DRS_DITHERENABLE */ STATE_RENDER(WINED3DRS_DITHERENABLE), NULL }, - { /* 27, WINED3DRS_ALPHABLENDENABLE */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /* 28, WINED3DRS_FOGENABLE */ STATE_RENDER(WINED3DRS_FOGENABLE), NULL }, - { /* 29, WINED3DRS_SPECULARENABLE */ STATE_RENDER(WINED3DRS_SPECULARENABLE), NULL }, - { /* 30, WINED3DRS_ZVISIBLE */ 0 /* Not supported according to the msdn */, state_nogl }, - { /* 31, WINED3DRS_SUBPIXEL */ STATE_RENDER(WINED3DRS_SUBPIXEL), NULL }, - { /* 32, WINED3DRS_SUBPIXELX */ STATE_RENDER(WINED3DRS_SUBPIXELX), NULL }, - { /* 33, WINED3DRS_STIPPLEDALPHA */ STATE_RENDER(WINED3DRS_STIPPLEDALPHA), NULL }, - { /* 34, WINED3DRS_FOGCOLOR */ STATE_RENDER(WINED3DRS_FOGCOLOR), NULL }, - { /* 35, WINED3DRS_FOGTABLEMODE */ STATE_RENDER(WINED3DRS_FOGENABLE), NULL }, - { /* 36, WINED3DRS_FOGSTART */ STATE_RENDER(WINED3DRS_FOGENABLE), NULL }, - { /* 37, WINED3DRS_FOGEND */ STATE_RENDER(WINED3DRS_FOGENABLE), NULL }, - { /* 38, WINED3DRS_FOGDENSITY */ STATE_RENDER(WINED3DRS_FOGDENSITY), NULL }, - { /* 39, WINED3DRS_STIPPLEENABLE */ STATE_RENDER(WINED3DRS_STIPPLEENABLE), NULL }, - { /* 40, WINED3DRS_EDGEANTIALIAS */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /* 41, WINED3DRS_COLORKEYENABLE */ STATE_RENDER(WINED3DRS_ALPHATESTENABLE), NULL }, - { /* 42, undefined */ 0, state_undefined }, - { /* 43, WINED3DRS_BORDERCOLOR */ STATE_RENDER(WINED3DRS_BORDERCOLOR), NULL }, - { /* 44, WINED3DRS_TEXTUREADDRESSU */ 0, /* Handled in ddraw */ state_undefined }, - { /* 45, WINED3DRS_TEXTUREADDRESSV */ 0, /* Handled in ddraw */ state_undefined }, - { /* 46, WINED3DRS_MIPMAPLODBIAS */ STATE_RENDER(WINED3DRS_MIPMAPLODBIAS), NULL }, - { /* 47, WINED3DRS_ZBIAS */ STATE_RENDER(WINED3DRS_ZBIAS), NULL }, - { /* 48, WINED3DRS_RANGEFOGENABLE */ STATE_RENDER(WINED3DRS_RANGEFOGENABLE), NULL }, - { /* 49, WINED3DRS_ANISOTROPY */ STATE_RENDER(WINED3DRS_ANISOTROPY), NULL }, - { /* 50, WINED3DRS_FLUSHBATCH */ STATE_RENDER(WINED3DRS_FLUSHBATCH), NULL }, - { /* 51, WINED3DRS_TRANSLUCENTSORTINDEPENDENT */ STATE_RENDER(WINED3DRS_TRANSLUCENTSORTINDEPENDENT), NULL }, - { /* 52, WINED3DRS_STENCILENABLE */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 53, WINED3DRS_STENCILFAIL */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 54, WINED3DRS_STENCILZFAIL */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 55, WINED3DRS_STENCILPASS */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 56, WINED3DRS_STENCILFUNC */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 57, WINED3DRS_STENCILREF */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 58, WINED3DRS_STENCILMASK */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /* 59, WINED3DRS_STENCILWRITEMASK */ STATE_RENDER(WINED3DRS_STENCILWRITEMASK), NULL }, - { /* 60, WINED3DRS_TEXTUREFACTOR */ STATE_RENDER(WINED3DRS_TEXTUREFACTOR), NULL }, - { /* 61, Undefined */ 0, state_undefined }, - { /* 62, Undefined */ 0, state_undefined }, - { /* 63, Undefined */ 0, state_undefined }, - { /* 64, WINED3DRS_STIPPLEPATTERN00 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 65, WINED3DRS_STIPPLEPATTERN01 */ 0 /* Obsolete, should he handled by ddraw */, state_undefined }, - { /* 66, WINED3DRS_STIPPLEPATTERN02 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 67, WINED3DRS_STIPPLEPATTERN03 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 68, WINED3DRS_STIPPLEPATTERN04 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 69, WINED3DRS_STIPPLEPATTERN05 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 70, WINED3DRS_STIPPLEPATTERN06 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 71, WINED3DRS_STIPPLEPATTERN07 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 72, WINED3DRS_STIPPLEPATTERN08 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 73, WINED3DRS_STIPPLEPATTERN09 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 74, WINED3DRS_STIPPLEPATTERN10 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 75, WINED3DRS_STIPPLEPATTERN11 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 76, WINED3DRS_STIPPLEPATTERN12 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 77, WINED3DRS_STIPPLEPATTERN13 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 78, WINED3DRS_STIPPLEPATTERN14 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 79, WINED3DRS_STIPPLEPATTERN15 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 80, WINED3DRS_STIPPLEPATTERN16 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 81, WINED3DRS_STIPPLEPATTERN17 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 82, WINED3DRS_STIPPLEPATTERN18 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 83, WINED3DRS_STIPPLEPATTERN19 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 84, WINED3DRS_STIPPLEPATTERN20 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 85, WINED3DRS_STIPPLEPATTERN21 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 86, WINED3DRS_STIPPLEPATTERN22 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 87, WINED3DRS_STIPPLEPATTERN23 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 88, WINED3DRS_STIPPLEPATTERN24 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 89, WINED3DRS_STIPPLEPATTERN25 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 90, WINED3DRS_STIPPLEPATTERN26 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 91, WINED3DRS_STIPPLEPATTERN27 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 92, WINED3DRS_STIPPLEPATTERN28 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 93, WINED3DRS_STIPPLEPATTERN29 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 94, WINED3DRS_STIPPLEPATTERN30 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 95, WINED3DRS_STIPPLEPATTERN31 */ 0 /* Obsolete, should be handled by ddraw */, state_undefined }, - { /* 96, Undefined */ 0, state_undefined }, - { /* 97, Undefined */ 0, state_undefined }, - { /* 98, Undefined */ 0, state_undefined }, - { /* 99, Undefined */ 0, state_undefined }, - { /*100, Undefined */ 0, state_undefined }, - { /*101, Undefined */ 0, state_undefined }, - { /*102, Undefined */ 0, state_undefined }, - { /*103, Undefined */ 0, state_undefined }, - { /*104, Undefined */ 0, state_undefined }, - { /*105, Undefined */ 0, state_undefined }, - { /*106, Undefined */ 0, state_undefined }, - { /*107, Undefined */ 0, state_undefined }, - { /*108, Undefined */ 0, state_undefined }, - { /*109, Undefined */ 0, state_undefined }, - { /*110, Undefined */ 0, state_undefined }, - { /*111, Undefined */ 0, state_undefined }, - { /*112, Undefined */ 0, state_undefined }, - { /*113, Undefined */ 0, state_undefined }, - { /*114, Undefined */ 0, state_undefined }, - { /*115, Undefined */ 0, state_undefined }, - { /*116, Undefined */ 0, state_undefined }, - { /*117, Undefined */ 0, state_undefined }, - { /*118, Undefined */ 0, state_undefined }, - { /*119, Undefined */ 0, state_undefined }, - { /*120, Undefined */ 0, state_undefined }, - { /*121, Undefined */ 0, state_undefined }, - { /*122, Undefined */ 0, state_undefined }, - { /*123, Undefined */ 0, state_undefined }, - { /*124, Undefined */ 0, state_undefined }, - { /*125, Undefined */ 0, state_undefined }, - { /*126, Undefined */ 0, state_undefined }, - { /*127, Undefined */ 0, state_undefined }, - /* Big hole ends */ - { /*128, WINED3DRS_WRAP0 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*129, WINED3DRS_WRAP1 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*130, WINED3DRS_WRAP2 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*131, WINED3DRS_WRAP3 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*132, WINED3DRS_WRAP4 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*133, WINED3DRS_WRAP5 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*134, WINED3DRS_WRAP6 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*135, WINED3DRS_WRAP7 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*136, WINED3DRS_CLIPPING */ STATE_RENDER(WINED3DRS_CLIPPING), NULL }, - { /*137, WINED3DRS_LIGHTING */ STATE_RENDER(WINED3DRS_LIGHTING), NULL }, - { /*138, WINED3DRS_EXTENTS */ STATE_RENDER(WINED3DRS_EXTENTS), NULL }, - { /*139, WINED3DRS_AMBIENT */ STATE_RENDER(WINED3DRS_AMBIENT), NULL }, - { /*140, WINED3DRS_FOGVERTEXMODE */ STATE_RENDER(WINED3DRS_FOGENABLE), NULL }, - { /*141, WINED3DRS_COLORVERTEX */ STATE_RENDER(WINED3DRS_COLORVERTEX), NULL }, - { /*142, WINED3DRS_LOCALVIEWER */ STATE_RENDER(WINED3DRS_LOCALVIEWER), NULL }, - { /*143, WINED3DRS_NORMALIZENORMALS */ STATE_RENDER(WINED3DRS_NORMALIZENORMALS), NULL }, - { /*144, WINED3DRS_COLORKEYBLENDENABLE */ STATE_RENDER(WINED3DRS_COLORKEYBLENDENABLE), NULL }, - { /*145, WINED3DRS_DIFFUSEMATERIALSOURCE */ STATE_RENDER(WINED3DRS_COLORVERTEX), NULL }, - { /*146, WINED3DRS_SPECULARMATERIALSOURCE */ STATE_RENDER(WINED3DRS_COLORVERTEX), NULL }, - { /*147, WINED3DRS_AMBIENTMATERIALSOURCE */ STATE_RENDER(WINED3DRS_COLORVERTEX), NULL }, - { /*148, WINED3DRS_EMISSIVEMATERIALSOURCE */ STATE_RENDER(WINED3DRS_COLORVERTEX), NULL }, - { /*149, Undefined */ 0, state_undefined }, - { /*150, Undefined */ 0, state_undefined }, - { /*151, WINED3DRS_VERTEXBLEND */ STATE_RENDER(WINED3DRS_VERTEXBLEND), NULL }, - { /*152, WINED3DRS_CLIPPLANEENABLE */ STATE_RENDER(WINED3DRS_CLIPPING), NULL }, - { /*153, WINED3DRS_SOFTWAREVERTEXPROCESSING */ 0, state_nogl }, - { /*154, WINED3DRS_POINTSIZE */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), NULL }, - { /*155, WINED3DRS_POINTSIZE_MIN */ STATE_RENDER(WINED3DRS_POINTSIZE_MIN), NULL }, - { /*156, WINED3DRS_POINTSPRITEENABLE */ STATE_RENDER(WINED3DRS_POINTSPRITEENABLE), NULL }, - { /*157, WINED3DRS_POINTSCALEENABLE */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), NULL }, - { /*158, WINED3DRS_POINTSCALE_A */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), NULL }, - { /*159, WINED3DRS_POINTSCALE_B */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), NULL }, - { /*160, WINED3DRS_POINTSCALE_C */ STATE_RENDER(WINED3DRS_POINTSCALEENABLE), NULL }, - { /*161, WINED3DRS_MULTISAMPLEANTIALIAS */ STATE_RENDER(WINED3DRS_MULTISAMPLEANTIALIAS), NULL }, - { /*162, WINED3DRS_MULTISAMPLEMASK */ STATE_RENDER(WINED3DRS_MULTISAMPLEMASK), NULL }, - { /*163, WINED3DRS_PATCHEDGESTYLE */ STATE_RENDER(WINED3DRS_PATCHEDGESTYLE), NULL }, - { /*164, WINED3DRS_PATCHSEGMENTS */ STATE_RENDER(WINED3DRS_PATCHSEGMENTS), NULL }, - { /*165, WINED3DRS_DEBUGMONITORTOKEN */ STATE_RENDER(WINED3DRS_DEBUGMONITORTOKEN), state_nogl }, - { /*166, WINED3DRS_POINTSIZE_MAX */ STATE_RENDER(WINED3DRS_POINTSIZE_MAX), NULL }, - { /*167, WINED3DRS_INDEXEDVERTEXBLENDENABLE */ 0, state_nogl }, - { /*168, WINED3DRS_COLORWRITEENABLE */ STATE_RENDER(WINED3DRS_COLORWRITEENABLE), NULL }, - { /*169, Undefined */ 0, state_undefined }, - { /*170, WINED3DRS_TWEENFACTOR */ 0, state_nogl }, - { /*171, WINED3DRS_BLENDOP */ STATE_RENDER(WINED3DRS_BLENDOP), NULL }, - { /*172, WINED3DRS_POSITIONDEGREE */ STATE_RENDER(WINED3DRS_POSITIONDEGREE), NULL }, - { /*173, WINED3DRS_NORMALDEGREE */ STATE_RENDER(WINED3DRS_NORMALDEGREE), NULL }, - /*172, WINED3DRS_POSITIONORDER */ /* Value assigned to 2 state names */ - /*173, WINED3DRS_NORMALORDER */ /* Value assigned to 2 state names */ - { /*174, WINED3DRS_SCISSORTESTENABLE */ STATE_RENDER(WINED3DRS_SCISSORTESTENABLE), NULL }, - { /*175, WINED3DRS_SLOPESCALEDEPTHBIAS */ STATE_RENDER(WINED3DRS_DEPTHBIAS), NULL }, - { /*176, WINED3DRS_ANTIALIASEDLINEENABLE */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /*177, undefined */ 0, state_undefined }, - { /*178, WINED3DRS_MINTESSELLATIONLEVEL */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*179, WINED3DRS_MAXTESSELLATIONLEVEL */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*180, WINED3DRS_ADAPTIVETESS_X */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*181, WINED3DRS_ADAPTIVETESS_Y */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*182, WINED3DRS_ADAPTIVETESS_Z */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*183, WINED3DRS_ADAPTIVETESS_W */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*184, WINED3DRS_ENABLEADAPTIVETESSELLATION */ STATE_RENDER(WINED3DRS_ENABLEADAPTIVETESSELLATION), NULL }, - { /*185, WINED3DRS_TWOSIDEDSTENCILMODE */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /*186, WINED3DRS_CCW_STENCILFAIL */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /*187, WINED3DRS_CCW_STENCILZFAIL */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /*188, WINED3DRS_CCW_STENCILPASS */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /*189, WINED3DRS_CCW_STENCILFUNC */ STATE_RENDER(WINED3DRS_STENCILENABLE), NULL }, - { /*190, WINED3DRS_COLORWRITEENABLE1 */ STATE_RENDER(WINED3DRS_COLORWRITEENABLE), NULL }, - { /*191, WINED3DRS_COLORWRITEENABLE2 */ STATE_RENDER(WINED3DRS_COLORWRITEENABLE), NULL }, - { /*192, WINED3DRS_COLORWRITEENABLE3 */ STATE_RENDER(WINED3DRS_COLORWRITEENABLE), NULL }, - { /*193, WINED3DRS_BLENDFACTOR */ STATE_RENDER(WINED3DRS_BLENDFACTOR), NULL }, - { /*194, WINED3DRS_SRGBWRITEENABLE */ STATE_PIXELSHADER, NULL }, - { /*195, WINED3DRS_DEPTHBIAS */ STATE_RENDER(WINED3DRS_DEPTHBIAS), NULL }, - { /*196, undefined */ 0, state_undefined }, - { /*197, undefined */ 0, state_undefined }, - { /*198, WINED3DRS_WRAP8 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*199, WINED3DRS_WRAP9 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*200, WINED3DRS_WRAP10 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*201, WINED3DRS_WRAP11 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*202, WINED3DRS_WRAP12 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*203, WINED3DRS_WRAP13 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*204, WINED3DRS_WRAP14 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*205, WINED3DRS_WRAP15 */ STATE_RENDER(WINED3DRS_WRAP0), NULL }, - { /*206, WINED3DRS_SEPARATEALPHABLENDENABLE */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /*207, WINED3DRS_SRCBLENDALPHA */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /*208, WINED3DRS_DESTBLENDALPHA */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - { /*209, WINED3DRS_BLENDOPALPHA */ STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), NULL }, - /* Texture stage states */ - { /*0, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), NULL }, - { /*0, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), NULL }, - { /*0, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), NULL }, - { /*0, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*0, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*0, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*0, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*0, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(0, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*0, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*0, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(0, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*0, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE0), NULL }, - { /*0, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), NULL }, - { /*0, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(0, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), NULL }, - { /*0, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*0, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, state_nogl }, - - { /*1, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), NULL }, - { /*1, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), NULL }, - { /*1, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), NULL }, - { /*1, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), NULL }, - { /*1, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), NULL }, - { /*1, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), NULL }, - { /*1, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*1, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*1, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*1, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*1, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(1, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*1, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*1, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(1, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*1, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE1), NULL }, - { /*1, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), NULL }, - { /*1, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(1, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(1, WINED3DTSS_COLOROP), NULL }, - { /*1, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*1, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, state_nogl }, - - { /*2, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), NULL }, - { /*2, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), NULL }, - { /*2, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), NULL }, - { /*2, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), NULL }, - { /*2, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), NULL }, - { /*2, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), NULL }, - { /*2, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*2, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*2, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*2, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*2, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(2, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*2, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*2, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(2, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*2, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE2), NULL }, - { /*2, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), NULL }, - { /*2, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(2, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(2, WINED3DTSS_COLOROP), NULL }, - { /*2, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*2, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, NULL }, - - { /*3, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), NULL }, - { /*3, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), NULL }, - { /*3, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), NULL }, - { /*3, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), NULL }, - { /*3, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), NULL }, - { /*3, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), NULL }, - { /*3, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*3, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*3, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*3, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*3, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(3, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*3, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*3, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(3, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*3, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE3), NULL }, - { /*3, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), NULL }, - { /*3, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(3, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(3, WINED3DTSS_COLOROP), NULL }, - { /*3, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*3, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, NULL }, - - { /*4, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), NULL }, - { /*4, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), NULL }, - { /*4, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), NULL }, - { /*4, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), NULL }, - { /*4, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), NULL }, - { /*4, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), NULL }, - { /*4, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*4, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*4, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*4, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*4, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(4, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*4, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*4, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(4, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*4, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE4), NULL }, - { /*4, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), NULL }, - { /*4, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(4, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(4, WINED3DTSS_COLOROP), NULL }, - { /*4, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*4, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, NULL }, - - { /*5, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), NULL }, - { /*5, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), NULL }, - { /*5, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), NULL }, - { /*5, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), NULL }, - { /*5, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), NULL }, - { /*5, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), NULL }, - { /*5, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*5, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*5, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*5, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*5, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(5, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*5, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*5, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(5, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*5, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE5), NULL }, - { /*5, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), NULL }, - { /*5, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(5, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(5, WINED3DTSS_COLOROP), NULL }, - { /*5, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*5, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, NULL }, - - { /*6, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), NULL }, - { /*6, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), NULL }, - { /*6, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), NULL }, - { /*6, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), NULL }, - { /*6, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), NULL }, - { /*6, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), NULL }, - { /*6, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*6, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*6, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*6, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*6, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(6, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*6, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*6, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(6, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*6, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE6), NULL }, - { /*6, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), NULL }, - { /*6, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(6, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(6, WINED3DTSS_COLOROP), NULL }, - { /*6, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*6, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, NULL }, - - { /*7, 01, WINED3DTSS_COLOROP */ STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), NULL }, - { /*7, 02, WINED3DTSS_COLORARG1 */ STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), NULL }, - { /*7, 03, WINED3DTSS_COLORARG2 */ STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), NULL }, - { /*7, 04, WINED3DTSS_ALPHAOP */ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), NULL }, - { /*7, 05, WINED3DTSS_ALPHAARG1 */ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), NULL }, - { /*7, 06, WINED3DTSS_ALPHAARG2 */ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), NULL }, - { /*7, 07, WINED3DTSS_BUMPENVMAT00 */ STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*7, 08, WINED3DTSS_BUMPENVMAT01 */ STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*7, 09, WINED3DTSS_BUMPENVMAT10 */ STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*7, 10, WINED3DTSS_BUMPENVMAT11 */ STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVMAT00), NULL }, - { /*7, 11, WINED3DTSS_TEXCOORDINDEX */ STATE_TEXTURESTAGE(7, WINED3DTSS_TEXCOORDINDEX), NULL }, - { /*7, 12, WINED3DTSS_ADDRESS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 13, WINED3DTSS_ADDRESSU */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 14, WINED3DTSS_ADDRESSV */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 15, WINED3DTSS_BORDERCOLOR */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 16, WINED3DTSS_MAGFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 17, WINED3DTSS_MINFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 18, WINED3DTSS_MIPFILTER */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 19, WINED3DTSS_MIPMAPLODBIAS */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 20, WINED3DTSS_MAXMIPLEVEL */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 21, WINED3DTSS_MAXANISOTROPY */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 22, WINED3DTSS_BUMPENVLSCALE */ STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVLSCALE), NULL }, - { /*7, 23, WINED3DTSS_BUMPENVLOFFSET */ STATE_TEXTURESTAGE(7, WINED3DTSS_BUMPENVLOFFSET), NULL }, - { /*7, 24, WINED3DTSS_TEXTURETRANSFORMFLAGS */ STATE_TRANSFORM(WINED3DTS_TEXTURE7), NULL }, - { /*7, 25, WINED3DTSS_ADDRESSW */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 26, WINED3DTSS_COLORARG0 */ STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), NULL }, - { /*7, 27, WINED3DTSS_ALPHAARG0 */ STATE_TEXTURESTAGE(7, WINED3DTSS_ALPHAOP), NULL }, - { /*0, 28, WINED3DTSS_RESULTARG */ STATE_TEXTURESTAGE(7, WINED3DTSS_COLOROP), NULL }, - { /*7, 29, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 30, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 31, undefined */ 0 /* -> sampler state in ddraw / d3d8 */, state_undefined }, - { /*7, 32, WINED3DTSS_CONSTANT */ 0 /* As long as we don't support D3DTA_CONSTANT */, NULL }, - /* Sampler states */ - { /* 0, Sampler 0 */ STATE_SAMPLER(0), NULL }, - { /* 1, Sampler 1 */ STATE_SAMPLER(1), NULL }, - { /* 2, Sampler 2 */ STATE_SAMPLER(2), NULL }, - { /* 3, Sampler 3 */ STATE_SAMPLER(3), NULL }, - { /* 4, Sampler 3 */ STATE_SAMPLER(4), NULL }, - { /* 5, Sampler 5 */ STATE_SAMPLER(5), NULL }, - { /* 6, Sampler 6 */ STATE_SAMPLER(6), NULL }, - { /* 7, Sampler 7 */ STATE_SAMPLER(7), NULL }, - { /* 8, Sampler 8 */ STATE_SAMPLER(8), NULL }, - { /* 9, Sampler 9 */ STATE_SAMPLER(9), NULL }, - { /*10, Sampler 10 */ STATE_SAMPLER(10), NULL }, - { /*11, Sampler 11 */ STATE_SAMPLER(11), NULL }, - { /*12, Sampler 12 */ STATE_SAMPLER(12), NULL }, - { /*13, Sampler 13 */ STATE_SAMPLER(13), NULL }, - { /*14, Sampler 14 */ STATE_SAMPLER(14), NULL }, - { /*15, Sampler 15 */ STATE_SAMPLER(15), NULL }, - { /*16, Vertex sampler 0 */ STATE_SAMPLER(16), NULL }, - { /*17, Vertex sampler 1 */ STATE_SAMPLER(17), NULL }, - { /*18, Vertex sampler 2 */ STATE_SAMPLER(18), NULL }, - { /*19, Vertex sampler 3 */ STATE_SAMPLER(19), NULL }, - /* Pixel shader */ - { /* , Pixel Shader */ STATE_PIXELSHADER, NULL }, - /* Transform states follow */ - { /* 1, undefined */ 0, state_undefined }, - { /* 2, WINED3DTS_VIEW */ STATE_TRANSFORM(WINED3DTS_VIEW), NULL }, - { /* 3, WINED3DTS_PROJECTION */ STATE_TRANSFORM(WINED3DTS_PROJECTION), NULL }, - { /* 4, undefined */ 0, state_undefined }, - { /* 5, undefined */ 0, state_undefined }, - { /* 6, undefined */ 0, state_undefined }, - { /* 7, undefined */ 0, state_undefined }, - { /* 8, undefined */ 0, state_undefined }, - { /* 9, undefined */ 0, state_undefined }, - { /* 10, undefined */ 0, state_undefined }, - { /* 11, undefined */ 0, state_undefined }, - { /* 12, undefined */ 0, state_undefined }, - { /* 13, undefined */ 0, state_undefined }, - { /* 14, undefined */ 0, state_undefined }, - { /* 15, undefined */ 0, state_undefined }, - { /* 16, WINED3DTS_TEXTURE0 */ STATE_TRANSFORM(WINED3DTS_TEXTURE0), NULL }, - { /* 17, WINED3DTS_TEXTURE1 */ STATE_TRANSFORM(WINED3DTS_TEXTURE1), NULL }, - { /* 18, WINED3DTS_TEXTURE2 */ STATE_TRANSFORM(WINED3DTS_TEXTURE2), NULL }, - { /* 19, WINED3DTS_TEXTURE3 */ STATE_TRANSFORM(WINED3DTS_TEXTURE3), NULL }, - { /* 20, WINED3DTS_TEXTURE4 */ STATE_TRANSFORM(WINED3DTS_TEXTURE4), NULL }, - { /* 21, WINED3DTS_TEXTURE5 */ STATE_TRANSFORM(WINED3DTS_TEXTURE5), NULL }, - { /* 22, WINED3DTS_TEXTURE6 */ STATE_TRANSFORM(WINED3DTS_TEXTURE6), NULL }, - { /* 23, WINED3DTS_TEXTURE7 */ STATE_TRANSFORM(WINED3DTS_TEXTURE7), NULL }, - /* A huge gap between TEXTURE7 and WORLDMATRIX(0) :-( But entries are needed to catch then if a broken app sets them */ - { /* 24, undefined */ 0, state_undefined }, - { /* 25, undefined */ 0, state_undefined }, - { /* 26, undefined */ 0, state_undefined }, - { /* 27, undefined */ 0, state_undefined }, - { /* 28, undefined */ 0, state_undefined }, - { /* 29, undefined */ 0, state_undefined }, - { /* 30, undefined */ 0, state_undefined }, - { /* 31, undefined */ 0, state_undefined }, - { /* 32, undefined */ 0, state_undefined }, - { /* 33, undefined */ 0, state_undefined }, - { /* 34, undefined */ 0, state_undefined }, - { /* 35, undefined */ 0, state_undefined }, - { /* 36, undefined */ 0, state_undefined }, - { /* 37, undefined */ 0, state_undefined }, - { /* 38, undefined */ 0, state_undefined }, - { /* 39, undefined */ 0, state_undefined }, - { /* 40, undefined */ 0, state_undefined }, - { /* 41, undefined */ 0, state_undefined }, - { /* 42, undefined */ 0, state_undefined }, - { /* 43, undefined */ 0, state_undefined }, - { /* 44, undefined */ 0, state_undefined }, - { /* 45, undefined */ 0, state_undefined }, - { /* 46, undefined */ 0, state_undefined }, - { /* 47, undefined */ 0, state_undefined }, - { /* 48, undefined */ 0, state_undefined }, - { /* 49, undefined */ 0, state_undefined }, - { /* 50, undefined */ 0, state_undefined }, - { /* 51, undefined */ 0, state_undefined }, - { /* 52, undefined */ 0, state_undefined }, - { /* 53, undefined */ 0, state_undefined }, - { /* 54, undefined */ 0, state_undefined }, - { /* 55, undefined */ 0, state_undefined }, - { /* 56, undefined */ 0, state_undefined }, - { /* 57, undefined */ 0, state_undefined }, - { /* 58, undefined */ 0, state_undefined }, - { /* 59, undefined */ 0, state_undefined }, - { /* 60, undefined */ 0, state_undefined }, - { /* 61, undefined */ 0, state_undefined }, - { /* 62, undefined */ 0, state_undefined }, - { /* 63, undefined */ 0, state_undefined }, - { /* 64, undefined */ 0, state_undefined }, - { /* 65, undefined */ 0, state_undefined }, - { /* 66, undefined */ 0, state_undefined }, - { /* 67, undefined */ 0, state_undefined }, - { /* 68, undefined */ 0, state_undefined }, - { /* 69, undefined */ 0, state_undefined }, - { /* 70, undefined */ 0, state_undefined }, - { /* 71, undefined */ 0, state_undefined }, - { /* 72, undefined */ 0, state_undefined }, - { /* 73, undefined */ 0, state_undefined }, - { /* 74, undefined */ 0, state_undefined }, - { /* 75, undefined */ 0, state_undefined }, - { /* 76, undefined */ 0, state_undefined }, - { /* 77, undefined */ 0, state_undefined }, - { /* 78, undefined */ 0, state_undefined }, - { /* 79, undefined */ 0, state_undefined }, - { /* 80, undefined */ 0, state_undefined }, - { /* 81, undefined */ 0, state_undefined }, - { /* 82, undefined */ 0, state_undefined }, - { /* 83, undefined */ 0, state_undefined }, - { /* 84, undefined */ 0, state_undefined }, - { /* 85, undefined */ 0, state_undefined }, - { /* 86, undefined */ 0, state_undefined }, - { /* 87, undefined */ 0, state_undefined }, - { /* 88, undefined */ 0, state_undefined }, - { /* 89, undefined */ 0, state_undefined }, - { /* 90, undefined */ 0, state_undefined }, - { /* 91, undefined */ 0, state_undefined }, - { /* 92, undefined */ 0, state_undefined }, - { /* 93, undefined */ 0, state_undefined }, - { /* 94, undefined */ 0, state_undefined }, - { /* 95, undefined */ 0, state_undefined }, - { /* 96, undefined */ 0, state_undefined }, - { /* 97, undefined */ 0, state_undefined }, - { /* 98, undefined */ 0, state_undefined }, - { /* 99, undefined */ 0, state_undefined }, - { /*100, undefined */ 0, state_undefined }, - { /*101, undefined */ 0, state_undefined }, - { /*102, undefined */ 0, state_undefined }, - { /*103, undefined */ 0, state_undefined }, - { /*104, undefined */ 0, state_undefined }, - { /*105, undefined */ 0, state_undefined }, - { /*106, undefined */ 0, state_undefined }, - { /*107, undefined */ 0, state_undefined }, - { /*108, undefined */ 0, state_undefined }, - { /*109, undefined */ 0, state_undefined }, - { /*110, undefined */ 0, state_undefined }, - { /*111, undefined */ 0, state_undefined }, - { /*112, undefined */ 0, state_undefined }, - { /*113, undefined */ 0, state_undefined }, - { /*114, undefined */ 0, state_undefined }, - { /*115, undefined */ 0, state_undefined }, - { /*116, undefined */ 0, state_undefined }, - { /*117, undefined */ 0, state_undefined }, - { /*118, undefined */ 0, state_undefined }, - { /*119, undefined */ 0, state_undefined }, - { /*120, undefined */ 0, state_undefined }, - { /*121, undefined */ 0, state_undefined }, - { /*122, undefined */ 0, state_undefined }, - { /*123, undefined */ 0, state_undefined }, - { /*124, undefined */ 0, state_undefined }, - { /*125, undefined */ 0, state_undefined }, - { /*126, undefined */ 0, state_undefined }, - { /*127, undefined */ 0, state_undefined }, - { /*128, undefined */ 0, state_undefined }, - { /*129, undefined */ 0, state_undefined }, - { /*130, undefined */ 0, state_undefined }, - { /*131, undefined */ 0, state_undefined }, - { /*132, undefined */ 0, state_undefined }, - { /*133, undefined */ 0, state_undefined }, - { /*134, undefined */ 0, state_undefined }, - { /*135, undefined */ 0, state_undefined }, - { /*136, undefined */ 0, state_undefined }, - { /*137, undefined */ 0, state_undefined }, - { /*138, undefined */ 0, state_undefined }, - { /*139, undefined */ 0, state_undefined }, - { /*140, undefined */ 0, state_undefined }, - { /*141, undefined */ 0, state_undefined }, - { /*142, undefined */ 0, state_undefined }, - { /*143, undefined */ 0, state_undefined }, - { /*144, undefined */ 0, state_undefined }, - { /*145, undefined */ 0, state_undefined }, - { /*146, undefined */ 0, state_undefined }, - { /*147, undefined */ 0, state_undefined }, - { /*148, undefined */ 0, state_undefined }, - { /*149, undefined */ 0, state_undefined }, - { /*150, undefined */ 0, state_undefined }, - { /*151, undefined */ 0, state_undefined }, - { /*152, undefined */ 0, state_undefined }, - { /*153, undefined */ 0, state_undefined }, - { /*154, undefined */ 0, state_undefined }, - { /*155, undefined */ 0, state_undefined }, - { /*156, undefined */ 0, state_undefined }, - { /*157, undefined */ 0, state_undefined }, - { /*158, undefined */ 0, state_undefined }, - { /*159, undefined */ 0, state_undefined }, - { /*160, undefined */ 0, state_undefined }, - { /*161, undefined */ 0, state_undefined }, - { /*162, undefined */ 0, state_undefined }, - { /*163, undefined */ 0, state_undefined }, - { /*164, undefined */ 0, state_undefined }, - { /*165, undefined */ 0, state_undefined }, - { /*166, undefined */ 0, state_undefined }, - { /*167, undefined */ 0, state_undefined }, - { /*168, undefined */ 0, state_undefined }, - { /*169, undefined */ 0, state_undefined }, - { /*170, undefined */ 0, state_undefined }, - { /*171, undefined */ 0, state_undefined }, - { /*172, undefined */ 0, state_undefined }, - { /*173, undefined */ 0, state_undefined }, - { /*174, undefined */ 0, state_undefined }, - { /*175, undefined */ 0, state_undefined }, - { /*176, undefined */ 0, state_undefined }, - { /*177, undefined */ 0, state_undefined }, - { /*178, undefined */ 0, state_undefined }, - { /*179, undefined */ 0, state_undefined }, - { /*180, undefined */ 0, state_undefined }, - { /*181, undefined */ 0, state_undefined }, - { /*182, undefined */ 0, state_undefined }, - { /*183, undefined */ 0, state_undefined }, - { /*184, undefined */ 0, state_undefined }, - { /*185, undefined */ 0, state_undefined }, - { /*186, undefined */ 0, state_undefined }, - { /*187, undefined */ 0, state_undefined }, - { /*188, undefined */ 0, state_undefined }, - { /*189, undefined */ 0, state_undefined }, - { /*190, undefined */ 0, state_undefined }, - { /*191, undefined */ 0, state_undefined }, - { /*192, undefined */ 0, state_undefined }, - { /*193, undefined */ 0, state_undefined }, - { /*194, undefined */ 0, state_undefined }, - { /*195, undefined */ 0, state_undefined }, - { /*196, undefined */ 0, state_undefined }, - { /*197, undefined */ 0, state_undefined }, - { /*198, undefined */ 0, state_undefined }, - { /*199, undefined */ 0, state_undefined }, - { /*200, undefined */ 0, state_undefined }, - { /*201, undefined */ 0, state_undefined }, - { /*202, undefined */ 0, state_undefined }, - { /*203, undefined */ 0, state_undefined }, - { /*204, undefined */ 0, state_undefined }, - { /*205, undefined */ 0, state_undefined }, - { /*206, undefined */ 0, state_undefined }, - { /*207, undefined */ 0, state_undefined }, - { /*208, undefined */ 0, state_undefined }, - { /*209, undefined */ 0, state_undefined }, - { /*210, undefined */ 0, state_undefined }, - { /*211, undefined */ 0, state_undefined }, - { /*212, undefined */ 0, state_undefined }, - { /*213, undefined */ 0, state_undefined }, - { /*214, undefined */ 0, state_undefined }, - { /*215, undefined */ 0, state_undefined }, - { /*216, undefined */ 0, state_undefined }, - { /*217, undefined */ 0, state_undefined }, - { /*218, undefined */ 0, state_undefined }, - { /*219, undefined */ 0, state_undefined }, - { /*220, undefined */ 0, state_undefined }, - { /*221, undefined */ 0, state_undefined }, - { /*222, undefined */ 0, state_undefined }, - { /*223, undefined */ 0, state_undefined }, - { /*224, undefined */ 0, state_undefined }, - { /*225, undefined */ 0, state_undefined }, - { /*226, undefined */ 0, state_undefined }, - { /*227, undefined */ 0, state_undefined }, - { /*228, undefined */ 0, state_undefined }, - { /*229, undefined */ 0, state_undefined }, - { /*230, undefined */ 0, state_undefined }, - { /*231, undefined */ 0, state_undefined }, - { /*232, undefined */ 0, state_undefined }, - { /*233, undefined */ 0, state_undefined }, - { /*234, undefined */ 0, state_undefined }, - { /*235, undefined */ 0, state_undefined }, - { /*236, undefined */ 0, state_undefined }, - { /*237, undefined */ 0, state_undefined }, - { /*238, undefined */ 0, state_undefined }, - { /*239, undefined */ 0, state_undefined }, - { /*240, undefined */ 0, state_undefined }, - { /*241, undefined */ 0, state_undefined }, - { /*242, undefined */ 0, state_undefined }, - { /*243, undefined */ 0, state_undefined }, - { /*244, undefined */ 0, state_undefined }, - { /*245, undefined */ 0, state_undefined }, - { /*246, undefined */ 0, state_undefined }, - { /*247, undefined */ 0, state_undefined }, - { /*248, undefined */ 0, state_undefined }, - { /*249, undefined */ 0, state_undefined }, - { /*250, undefined */ 0, state_undefined }, - { /*251, undefined */ 0, state_undefined }, - { /*252, undefined */ 0, state_undefined }, - { /*253, undefined */ 0, state_undefined }, - { /*254, undefined */ 0, state_undefined }, - { /*255, undefined */ 0, state_undefined }, - /* End huge gap */ - { /*256, WINED3DTS_WORLDMATRIX(0) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(0)), NULL }, - { /*257, WINED3DTS_WORLDMATRIX(1) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(1)), NULL }, - { /*258, WINED3DTS_WORLDMATRIX(2) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(2)), NULL }, - { /*259, WINED3DTS_WORLDMATRIX(3) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(3)), NULL }, - { /*260, WINED3DTS_WORLDMATRIX(4) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(4)), NULL }, - { /*261, WINED3DTS_WORLDMATRIX(5) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(5)), NULL }, - { /*262, WINED3DTS_WORLDMATRIX(6) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(6)), NULL }, - { /*263, WINED3DTS_WORLDMATRIX(7) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(7)), NULL }, - { /*264, WINED3DTS_WORLDMATRIX(8) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(8)), NULL }, - { /*265, WINED3DTS_WORLDMATRIX(9) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(9)), NULL }, - { /*266, WINED3DTS_WORLDMATRIX(10) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(10)), NULL }, - { /*267, WINED3DTS_WORLDMATRIX(11) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(11)), NULL }, - { /*268, WINED3DTS_WORLDMATRIX(12) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(12)), NULL }, - { /*269, WINED3DTS_WORLDMATRIX(13) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(13)), NULL }, - { /*270, WINED3DTS_WORLDMATRIX(14) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(14)), NULL }, - { /*271, WINED3DTS_WORLDMATRIX(15) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(15)), NULL }, - { /*272, WINED3DTS_WORLDMATRIX(16) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(16)), NULL }, - { /*273, WINED3DTS_WORLDMATRIX(17) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(17)), NULL }, - { /*274, WINED3DTS_WORLDMATRIX(18) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(18)), NULL }, - { /*275, WINED3DTS_WORLDMATRIX(19) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(19)), NULL }, - { /*276, WINED3DTS_WORLDMATRIX(20) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(20)), NULL }, - { /*277, WINED3DTS_WORLDMATRIX(21) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(21)), NULL }, - { /*278, WINED3DTS_WORLDMATRIX(22) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(22)), NULL }, - { /*279, WINED3DTS_WORLDMATRIX(23) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(23)), NULL }, - { /*280, WINED3DTS_WORLDMATRIX(24) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(24)), NULL }, - { /*281, WINED3DTS_WORLDMATRIX(25) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(25)), NULL }, - { /*282, WINED3DTS_WORLDMATRIX(26) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(26)), NULL }, - { /*283, WINED3DTS_WORLDMATRIX(27) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(27)), NULL }, - { /*284, WINED3DTS_WORLDMATRIX(28) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(28)), NULL }, - { /*285, WINED3DTS_WORLDMATRIX(29) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(29)), NULL }, - { /*286, WINED3DTS_WORLDMATRIX(30) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(30)), NULL }, - { /*287, WINED3DTS_WORLDMATRIX(31) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(31)), NULL }, - { /*288, WINED3DTS_WORLDMATRIX(32) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(32)), NULL }, - { /*289, WINED3DTS_WORLDMATRIX(33) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(33)), NULL }, - { /*290, WINED3DTS_WORLDMATRIX(34) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(34)), NULL }, - { /*291, WINED3DTS_WORLDMATRIX(35) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(35)), NULL }, - { /*292, WINED3DTS_WORLDMATRIX(36) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(36)), NULL }, - { /*293, WINED3DTS_WORLDMATRIX(37) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(37)), NULL }, - { /*294, WINED3DTS_WORLDMATRIX(38) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(38)), NULL }, - { /*295, WINED3DTS_WORLDMATRIX(39) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(39)), NULL }, - { /*296, WINED3DTS_WORLDMATRIX(40) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(40)), NULL }, - { /*297, WINED3DTS_WORLDMATRIX(41) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(41)), NULL }, - { /*298, WINED3DTS_WORLDMATRIX(42) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(42)), NULL }, - { /*299, WINED3DTS_WORLDMATRIX(43) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(43)), NULL }, - { /*300, WINED3DTS_WORLDMATRIX(44) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(44)), NULL }, - { /*301, WINED3DTS_WORLDMATRIX(45) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(45)), NULL }, - { /*302, WINED3DTS_WORLDMATRIX(46) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(46)), NULL }, - { /*303, WINED3DTS_WORLDMATRIX(47) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(47)), NULL }, - { /*304, WINED3DTS_WORLDMATRIX(48) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(48)), NULL }, - { /*305, WINED3DTS_WORLDMATRIX(49) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(49)), NULL }, - { /*306, WINED3DTS_WORLDMATRIX(50) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(50)), NULL }, - { /*307, WINED3DTS_WORLDMATRIX(51) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(51)), NULL }, - { /*308, WINED3DTS_WORLDMATRIX(52) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(52)), NULL }, - { /*309, WINED3DTS_WORLDMATRIX(53) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(53)), NULL }, - { /*310, WINED3DTS_WORLDMATRIX(54) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(54)), NULL }, - { /*311, WINED3DTS_WORLDMATRIX(55) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(55)), NULL }, - { /*312, WINED3DTS_WORLDMATRIX(56) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(56)), NULL }, - { /*313, WINED3DTS_WORLDMATRIX(57) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(57)), NULL }, - { /*314, WINED3DTS_WORLDMATRIX(58) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(58)), NULL }, - { /*315, WINED3DTS_WORLDMATRIX(59) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(59)), NULL }, - { /*316, WINED3DTS_WORLDMATRIX(60) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(60)), NULL }, - { /*317, WINED3DTS_WORLDMATRIX(61) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(61)), NULL }, - { /*318, WINED3DTS_WORLDMATRIX(62) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(62)), NULL }, - { /*319, WINED3DTS_WORLDMATRIX(63) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(63)), NULL }, - { /*320, WINED3DTS_WORLDMATRIX(64) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(64)), NULL }, - { /*321, WINED3DTS_WORLDMATRIX(65) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(65)), NULL }, - { /*322, WINED3DTS_WORLDMATRIX(66) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(66)), NULL }, - { /*323, WINED3DTS_WORLDMATRIX(67) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(67)), NULL }, - { /*324, WINED3DTS_WORLDMATRIX(68) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(68)), NULL }, - { /*325, WINED3DTS_WORLDMATRIX(68) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(69)), NULL }, - { /*326, WINED3DTS_WORLDMATRIX(70) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(70)), NULL }, - { /*327, WINED3DTS_WORLDMATRIX(71) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(71)), NULL }, - { /*328, WINED3DTS_WORLDMATRIX(72) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(72)), NULL }, - { /*329, WINED3DTS_WORLDMATRIX(73) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(73)), NULL }, - { /*330, WINED3DTS_WORLDMATRIX(74) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(74)), NULL }, - { /*331, WINED3DTS_WORLDMATRIX(75) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(75)), NULL }, - { /*332, WINED3DTS_WORLDMATRIX(76) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(76)), NULL }, - { /*333, WINED3DTS_WORLDMATRIX(77) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(77)), NULL }, - { /*334, WINED3DTS_WORLDMATRIX(78) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(78)), NULL }, - { /*335, WINED3DTS_WORLDMATRIX(79) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(79)), NULL }, - { /*336, WINED3DTS_WORLDMATRIX(80) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(80)), NULL }, - { /*337, WINED3DTS_WORLDMATRIX(81) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(81)), NULL }, - { /*338, WINED3DTS_WORLDMATRIX(82) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(82)), NULL }, - { /*339, WINED3DTS_WORLDMATRIX(83) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(83)), NULL }, - { /*340, WINED3DTS_WORLDMATRIX(84) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(84)), NULL }, - { /*341, WINED3DTS_WORLDMATRIX(85) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(85)), NULL }, - { /*341, WINED3DTS_WORLDMATRIX(86) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(86)), NULL }, - { /*343, WINED3DTS_WORLDMATRIX(87) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(87)), NULL }, - { /*344, WINED3DTS_WORLDMATRIX(88) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(88)), NULL }, - { /*345, WINED3DTS_WORLDMATRIX(89) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(89)), NULL }, - { /*346, WINED3DTS_WORLDMATRIX(90) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(90)), NULL }, - { /*347, WINED3DTS_WORLDMATRIX(91) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(91)), NULL }, - { /*348, WINED3DTS_WORLDMATRIX(92) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(92)), NULL }, - { /*349, WINED3DTS_WORLDMATRIX(93) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(93)), NULL }, - { /*350, WINED3DTS_WORLDMATRIX(94) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(94)), NULL }, - { /*351, WINED3DTS_WORLDMATRIX(95) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(95)), NULL }, - { /*352, WINED3DTS_WORLDMATRIX(96) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(96)), NULL }, - { /*353, WINED3DTS_WORLDMATRIX(97) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(97)), NULL }, - { /*354, WINED3DTS_WORLDMATRIX(98) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(98)), NULL }, - { /*355, WINED3DTS_WORLDMATRIX(99) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(99)), NULL }, - { /*356, WINED3DTS_WORLDMATRIX(100) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(100)), NULL }, - { /*357, WINED3DTS_WORLDMATRIX(101) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(101)), NULL }, - { /*358, WINED3DTS_WORLDMATRIX(102) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(102)), NULL }, - { /*359, WINED3DTS_WORLDMATRIX(103) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(103)), NULL }, - { /*360, WINED3DTS_WORLDMATRIX(104) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(104)), NULL }, - { /*361, WINED3DTS_WORLDMATRIX(105) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(105)), NULL }, - { /*362, WINED3DTS_WORLDMATRIX(106) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(106)), NULL }, - { /*363, WINED3DTS_WORLDMATRIX(107) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(107)), NULL }, - { /*364, WINED3DTS_WORLDMATRIX(108) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(108)), NULL }, - { /*365, WINED3DTS_WORLDMATRIX(109) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(109)), NULL }, - { /*366, WINED3DTS_WORLDMATRIX(110) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(110)), NULL }, - { /*367, WINED3DTS_WORLDMATRIX(111) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(111)), NULL }, - { /*368, WINED3DTS_WORLDMATRIX(112) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(112)), NULL }, - { /*369, WINED3DTS_WORLDMATRIX(113) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(113)), NULL }, - { /*370, WINED3DTS_WORLDMATRIX(114) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(114)), NULL }, - { /*371, WINED3DTS_WORLDMATRIX(115) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(115)), NULL }, - { /*372, WINED3DTS_WORLDMATRIX(116) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(116)), NULL }, - { /*373, WINED3DTS_WORLDMATRIX(117) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(117)), NULL }, - { /*374, WINED3DTS_WORLDMATRIX(118) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(118)), NULL }, - { /*375, WINED3DTS_WORLDMATRIX(119) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(119)), NULL }, - { /*376, WINED3DTS_WORLDMATRIX(120) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(120)), NULL }, - { /*377, WINED3DTS_WORLDMATRIX(121) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(121)), NULL }, - { /*378, WINED3DTS_WORLDMATRIX(122) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(122)), NULL }, - { /*379, WINED3DTS_WORLDMATRIX(123) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(123)), NULL }, - { /*380, WINED3DTS_WORLDMATRIX(124) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(124)), NULL }, - { /*381, WINED3DTS_WORLDMATRIX(125) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(125)), NULL }, - { /*382, WINED3DTS_WORLDMATRIX(126) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(126)), NULL }, - { /*383, WINED3DTS_WORLDMATRIX(127) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(127)), NULL }, - { /*384, WINED3DTS_WORLDMATRIX(128) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(128)), NULL }, - { /*385, WINED3DTS_WORLDMATRIX(129) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(129)), NULL }, - { /*386, WINED3DTS_WORLDMATRIX(130) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(130)), NULL }, - { /*387, WINED3DTS_WORLDMATRIX(131) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(131)), NULL }, - { /*388, WINED3DTS_WORLDMATRIX(132) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(132)), NULL }, - { /*389, WINED3DTS_WORLDMATRIX(133) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(133)), NULL }, - { /*390, WINED3DTS_WORLDMATRIX(134) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(134)), NULL }, - { /*391, WINED3DTS_WORLDMATRIX(135) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(135)), NULL }, - { /*392, WINED3DTS_WORLDMATRIX(136) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(136)), NULL }, - { /*393, WINED3DTS_WORLDMATRIX(137) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(137)), NULL }, - { /*394, WINED3DTS_WORLDMATRIX(138) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(138)), NULL }, - { /*395, WINED3DTS_WORLDMATRIX(139) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(139)), NULL }, - { /*396, WINED3DTS_WORLDMATRIX(140) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(140)), NULL }, - { /*397, WINED3DTS_WORLDMATRIX(141) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(141)), NULL }, - { /*398, WINED3DTS_WORLDMATRIX(142) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(142)), NULL }, - { /*399, WINED3DTS_WORLDMATRIX(143) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(143)), NULL }, - { /*400, WINED3DTS_WORLDMATRIX(144) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(144)), NULL }, - { /*401, WINED3DTS_WORLDMATRIX(145) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(145)), NULL }, - { /*402, WINED3DTS_WORLDMATRIX(146) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(146)), NULL }, - { /*403, WINED3DTS_WORLDMATRIX(147) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(147)), NULL }, - { /*404, WINED3DTS_WORLDMATRIX(148) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(148)), NULL }, - { /*405, WINED3DTS_WORLDMATRIX(149) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(149)), NULL }, - { /*406, WINED3DTS_WORLDMATRIX(150) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(150)), NULL }, - { /*407, WINED3DTS_WORLDMATRIX(151) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(151)), NULL }, - { /*408, WINED3DTS_WORLDMATRIX(152) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(152)), NULL }, - { /*409, WINED3DTS_WORLDMATRIX(153) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(153)), NULL }, - { /*410, WINED3DTS_WORLDMATRIX(154) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(154)), NULL }, - { /*411, WINED3DTS_WORLDMATRIX(155) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(155)), NULL }, - { /*412, WINED3DTS_WORLDMATRIX(156) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(156)), NULL }, - { /*413, WINED3DTS_WORLDMATRIX(157) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(157)), NULL }, - { /*414, WINED3DTS_WORLDMATRIX(158) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(158)), NULL }, - { /*415, WINED3DTS_WORLDMATRIX(159) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(159)), NULL }, - { /*416, WINED3DTS_WORLDMATRIX(160) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(160)), NULL }, - { /*417, WINED3DTS_WORLDMATRIX(161) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(161)), NULL }, - { /*418, WINED3DTS_WORLDMATRIX(162) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(162)), NULL }, - { /*419, WINED3DTS_WORLDMATRIX(163) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(163)), NULL }, - { /*420, WINED3DTS_WORLDMATRIX(164) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(164)), NULL }, - { /*421, WINED3DTS_WORLDMATRIX(165) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(165)), NULL }, - { /*422, WINED3DTS_WORLDMATRIX(166) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(166)), NULL }, - { /*423, WINED3DTS_WORLDMATRIX(167) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(167)), NULL }, - { /*424, WINED3DTS_WORLDMATRIX(168) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(168)), NULL }, - { /*425, WINED3DTS_WORLDMATRIX(168) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(169)), NULL }, - { /*426, WINED3DTS_WORLDMATRIX(170) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(170)), NULL }, - { /*427, WINED3DTS_WORLDMATRIX(171) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(171)), NULL }, - { /*428, WINED3DTS_WORLDMATRIX(172) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(172)), NULL }, - { /*429, WINED3DTS_WORLDMATRIX(173) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(173)), NULL }, - { /*430, WINED3DTS_WORLDMATRIX(174) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(174)), NULL }, - { /*431, WINED3DTS_WORLDMATRIX(175) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(175)), NULL }, - { /*432, WINED3DTS_WORLDMATRIX(176) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(176)), NULL }, - { /*433, WINED3DTS_WORLDMATRIX(177) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(177)), NULL }, - { /*434, WINED3DTS_WORLDMATRIX(178) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(178)), NULL }, - { /*435, WINED3DTS_WORLDMATRIX(179) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(179)), NULL }, - { /*436, WINED3DTS_WORLDMATRIX(180) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(180)), NULL }, - { /*437, WINED3DTS_WORLDMATRIX(181) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(181)), NULL }, - { /*438, WINED3DTS_WORLDMATRIX(182) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(182)), NULL }, - { /*439, WINED3DTS_WORLDMATRIX(183) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(183)), NULL }, - { /*440, WINED3DTS_WORLDMATRIX(184) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(184)), NULL }, - { /*441, WINED3DTS_WORLDMATRIX(185) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(185)), NULL }, - { /*441, WINED3DTS_WORLDMATRIX(186) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(186)), NULL }, - { /*443, WINED3DTS_WORLDMATRIX(187) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(187)), NULL }, - { /*444, WINED3DTS_WORLDMATRIX(188) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(188)), NULL }, - { /*445, WINED3DTS_WORLDMATRIX(189) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(189)), NULL }, - { /*446, WINED3DTS_WORLDMATRIX(190) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(190)), NULL }, - { /*447, WINED3DTS_WORLDMATRIX(191) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(191)), NULL }, - { /*448, WINED3DTS_WORLDMATRIX(192) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(192)), NULL }, - { /*449, WINED3DTS_WORLDMATRIX(193) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(193)), NULL }, - { /*450, WINED3DTS_WORLDMATRIX(194) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(194)), NULL }, - { /*451, WINED3DTS_WORLDMATRIX(195) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(195)), NULL }, - { /*452, WINED3DTS_WORLDMATRIX(196) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(196)), NULL }, - { /*453, WINED3DTS_WORLDMATRIX(197) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(197)), NULL }, - { /*454, WINED3DTS_WORLDMATRIX(198) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(198)), NULL }, - { /*455, WINED3DTS_WORLDMATRIX(199) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(199)), NULL }, - { /*356, WINED3DTS_WORLDMATRIX(200) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(200)), NULL }, - { /*457, WINED3DTS_WORLDMATRIX(201) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(201)), NULL }, - { /*458, WINED3DTS_WORLDMATRIX(202) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(202)), NULL }, - { /*459, WINED3DTS_WORLDMATRIX(203) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(203)), NULL }, - { /*460, WINED3DTS_WORLDMATRIX(204) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(204)), NULL }, - { /*461, WINED3DTS_WORLDMATRIX(205) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(205)), NULL }, - { /*462, WINED3DTS_WORLDMATRIX(206) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(206)), NULL }, - { /*463, WINED3DTS_WORLDMATRIX(207) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(207)), NULL }, - { /*464, WINED3DTS_WORLDMATRIX(208) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(208)), NULL }, - { /*465, WINED3DTS_WORLDMATRIX(209) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(209)), NULL }, - { /*466, WINED3DTS_WORLDMATRIX(210) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(210)), NULL }, - { /*467, WINED3DTS_WORLDMATRIX(211) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(211)), NULL }, - { /*468, WINED3DTS_WORLDMATRIX(212) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(212)), NULL }, - { /*469, WINED3DTS_WORLDMATRIX(213) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(213)), NULL }, - { /*470, WINED3DTS_WORLDMATRIX(214) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(214)), NULL }, - { /*471, WINED3DTS_WORLDMATRIX(215) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(215)), NULL }, - { /*472, WINED3DTS_WORLDMATRIX(216) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(216)), NULL }, - { /*473, WINED3DTS_WORLDMATRIX(217) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(217)), NULL }, - { /*474, WINED3DTS_WORLDMATRIX(218) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(218)), NULL }, - { /*475, WINED3DTS_WORLDMATRIX(219) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(219)), NULL }, - { /*476, WINED3DTS_WORLDMATRIX(220) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(220)), NULL }, - { /*477, WINED3DTS_WORLDMATRIX(221) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(221)), NULL }, - { /*478, WINED3DTS_WORLDMATRIX(222) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(222)), NULL }, - { /*479, WINED3DTS_WORLDMATRIX(223) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(223)), NULL }, - { /*480, WINED3DTS_WORLDMATRIX(224) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(224)), NULL }, - { /*481, WINED3DTS_WORLDMATRIX(225) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(225)), NULL }, - { /*482, WINED3DTS_WORLDMATRIX(226) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(226)), NULL }, - { /*483, WINED3DTS_WORLDMATRIX(227) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(227)), NULL }, - { /*484, WINED3DTS_WORLDMATRIX(228) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(228)), NULL }, - { /*485, WINED3DTS_WORLDMATRIX(229) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(229)), NULL }, - { /*486, WINED3DTS_WORLDMATRIX(230) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(230)), NULL }, - { /*487, WINED3DTS_WORLDMATRIX(231) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(231)), NULL }, - { /*488, WINED3DTS_WORLDMATRIX(232) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(232)), NULL }, - { /*489, WINED3DTS_WORLDMATRIX(233) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(233)), NULL }, - { /*490, WINED3DTS_WORLDMATRIX(234) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(234)), NULL }, - { /*491, WINED3DTS_WORLDMATRIX(235) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(235)), NULL }, - { /*492, WINED3DTS_WORLDMATRIX(236) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(236)), NULL }, - { /*493, WINED3DTS_WORLDMATRIX(237) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(237)), NULL }, - { /*494, WINED3DTS_WORLDMATRIX(238) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(238)), NULL }, - { /*495, WINED3DTS_WORLDMATRIX(239) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(239)), NULL }, - { /*496, WINED3DTS_WORLDMATRIX(240) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(240)), NULL }, - { /*497, WINED3DTS_WORLDMATRIX(241) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(241)), NULL }, - { /*498, WINED3DTS_WORLDMATRIX(242) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(242)), NULL }, - { /*499, WINED3DTS_WORLDMATRIX(243) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(243)), NULL }, - { /*500, WINED3DTS_WORLDMATRIX(244) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(244)), NULL }, - { /*501, WINED3DTS_WORLDMATRIX(245) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(245)), NULL }, - { /*502, WINED3DTS_WORLDMATRIX(246) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(246)), NULL }, - { /*503, WINED3DTS_WORLDMATRIX(247) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(247)), NULL }, - { /*504, WINED3DTS_WORLDMATRIX(248) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(248)), NULL }, - { /*505, WINED3DTS_WORLDMATRIX(249) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(249)), NULL }, - { /*506, WINED3DTS_WORLDMATRIX(250) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(250)), NULL }, - { /*507, WINED3DTS_WORLDMATRIX(251) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(251)), NULL }, - { /*508, WINED3DTS_WORLDMATRIX(252) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(252)), NULL }, - { /*509, WINED3DTS_WORLDMATRIX(253) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(253)), NULL }, - { /*510, WINED3DTS_WORLDMATRIX(254) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(254)), NULL }, - { /*511, WINED3DTS_WORLDMATRIX(255) */ STATE_TRANSFORM(WINED3DTS_WORLDMATRIX(255)), NULL }, - /* Various Vertex states follow */ - { /* , STATE_STREAMSRC */ STATE_VDECL, NULL }, - { /* , STATE_INDEXBUFFER */ STATE_INDEXBUFFER, NULL }, - { /* , STATE_VDECL */ STATE_VDECL, NULL }, - { /* , STATE_VSHADER */ STATE_VDECL, NULL }, - { /* , STATE_VIEWPORT */ STATE_VIEWPORT, NULL }, - { /* , STATE_VERTEXSHADERCONSTANT */ STATE_VERTEXSHADERCONSTANT, NULL }, - { /* , STATE_PIXELSHADERCONSTANT */ STATE_VERTEXSHADERCONSTANT, NULL }, - /* Lights */ - { /* , STATE_ACTIVELIGHT(0) */ STATE_ACTIVELIGHT(0), NULL }, - { /* , STATE_ACTIVELIGHT(1) */ STATE_ACTIVELIGHT(1), NULL }, - { /* , STATE_ACTIVELIGHT(2) */ STATE_ACTIVELIGHT(2), NULL }, - { /* , STATE_ACTIVELIGHT(3) */ STATE_ACTIVELIGHT(3), NULL }, - { /* , STATE_ACTIVELIGHT(4) */ STATE_ACTIVELIGHT(4), NULL }, - { /* , STATE_ACTIVELIGHT(5) */ STATE_ACTIVELIGHT(5), NULL }, - { /* , STATE_ACTIVELIGHT(6) */ STATE_ACTIVELIGHT(6), NULL }, - { /* , STATE_ACTIVELIGHT(7) */ STATE_ACTIVELIGHT(7), NULL }, - - { /* Scissor rect */ STATE_SCISSORRECT, NULL }, - /* Clip planes */ - { /* STATE_CLIPPLANE(0) */ STATE_CLIPPLANE(0), NULL }, - { /* STATE_CLIPPLANE(1) */ STATE_CLIPPLANE(1), NULL }, - { /* STATE_CLIPPLANE(2) */ STATE_CLIPPLANE(2), NULL }, - { /* STATE_CLIPPLANE(3) */ STATE_CLIPPLANE(3), NULL }, - { /* STATE_CLIPPLANE(4) */ STATE_CLIPPLANE(4), NULL }, - { /* STATE_CLIPPLANE(5) */ STATE_CLIPPLANE(5), NULL }, - { /* STATE_CLIPPLANE(6) */ STATE_CLIPPLANE(6), NULL }, - { /* STATE_CLIPPLANE(7) */ STATE_CLIPPLANE(7), NULL }, - { /* STATE_CLIPPLANE(8) */ STATE_CLIPPLANE(8), NULL }, - { /* STATE_CLIPPLANE(9) */ STATE_CLIPPLANE(9), NULL }, - { /* STATE_CLIPPLANE(10) */ STATE_CLIPPLANE(10), NULL }, - { /* STATE_CLIPPLANE(11) */ STATE_CLIPPLANE(11), NULL }, - { /* STATE_CLIPPLANE(12) */ STATE_CLIPPLANE(12), NULL }, - { /* STATE_CLIPPLANE(13) */ STATE_CLIPPLANE(13), NULL }, - { /* STATE_CLIPPLANE(14) */ STATE_CLIPPLANE(14), NULL }, - { /* STATE_CLIPPLANE(15) */ STATE_CLIPPLANE(15), NULL }, - { /* STATE_CLIPPLANE(16) */ STATE_CLIPPLANE(16), NULL }, - { /* STATE_CLIPPLANE(17) */ STATE_CLIPPLANE(17), NULL }, - { /* STATE_CLIPPLANE(18) */ STATE_CLIPPLANE(18), NULL }, - { /* STATE_CLIPPLANE(19) */ STATE_CLIPPLANE(19), NULL }, - { /* STATE_CLIPPLANE(20) */ STATE_CLIPPLANE(20), NULL }, - { /* STATE_CLIPPLANE(21) */ STATE_CLIPPLANE(21), NULL }, - { /* STATE_CLIPPLANE(22) */ STATE_CLIPPLANE(22), NULL }, - { /* STATE_CLIPPLANE(23) */ STATE_CLIPPLANE(23), NULL }, - { /* STATE_CLIPPLANE(24) */ STATE_CLIPPLANE(24), NULL }, - { /* STATE_CLIPPLANE(25) */ STATE_CLIPPLANE(25), NULL }, - { /* STATE_CLIPPLANE(26) */ STATE_CLIPPLANE(26), NULL }, - { /* STATE_CLIPPLANE(27) */ STATE_CLIPPLANE(27), NULL }, - { /* STATE_CLIPPLANE(28) */ STATE_CLIPPLANE(28), NULL }, - { /* STATE_CLIPPLANE(29) */ STATE_CLIPPLANE(29), NULL }, - { /* STATE_CLIPPLANE(30) */ STATE_CLIPPLANE(30), NULL }, - { /* STATE_CLIPPLANE(31) */ STATE_CLIPPLANE(31), NULL }, - - { /* STATE_MATERIAL */ STATE_RENDER(WINED3DRS_SPECULARENABLE), NULL }, - { /* STATE_FRONTFACE */ STATE_FRONTFACE, NULL }, -}; - const struct StateEntryTemplate misc_state_template[] = { { STATE_RENDER(WINED3DRS_SRCBLEND), { STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), state_blend }}, { STATE_RENDER(WINED3DRS_DESTBLEND), { STATE_RENDER(WINED3DRS_ALPHABLENDENABLE), state_blend }}, @@ -5377,7 +4303,7 @@ const struct StateEntryTemplate ffp_vertexstate_template[] = { {0 /* Terminate */, { 0, 0 }}, }; -const struct StateEntryTemplate ffp_fragmentstate_template[] = { +static const struct StateEntryTemplate ffp_fragmentstate_template[] = { { STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), { STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), tex_colorop }}, { STATE_TEXTURESTAGE(0, WINED3DTSS_COLORARG1), { STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), tex_colorop }}, { STATE_TEXTURESTAGE(0, WINED3DTSS_COLORARG2), { STATE_TEXTURESTAGE(0, WINED3DTSS_COLOROP), tex_colorop }}, @@ -5520,6 +4446,29 @@ const struct StateEntryTemplate ffp_fragmentstate_template[] = { { STATE_RENDER(WINED3DRS_TEXTUREFACTOR), { STATE_RENDER(WINED3DRS_TEXTUREFACTOR), state_texfactor }}, {0 /* Terminate */, { 0, 0 }}, }; +#undef GLINFO_LOCATION + +#define GLINFO_LOCATION (*gl_info) +static void nvts_enable(IWineD3DDevice *iface, BOOL enable) { + IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; + WineD3D_GL_Info *gl_info = &This->adapter->gl_info; + + if(GL_SUPPORT(NV_TEXTURE_SHADER2)) { + if(enable) { + glEnable(GL_TEXTURE_SHADER_NV); + checkGLcall("glEnable(GL_TEXTURE_SHADER_NV)"); + } else { + glDisable(GL_TEXTURE_SHADER_NV); + checkGLcall("glDisable(GL_TEXTURE_SHADER_NV)"); + } + } +} +#undef GLINFO_LOCATION + +const struct fragment_pipeline ffp_fragment_pipeline = { + nvts_enable, + ffp_fragmentstate_template +}; static int num_handlers(APPLYSTATEFUNC *funcs) { unsigned int i; @@ -5541,16 +4490,12 @@ static void multistate_apply_3(DWORD state, IWineD3DStateBlockImpl *stateblock, void compile_state_table(struct StateEntry *StateTable, APPLYSTATEFUNC **dev_multistate_funcs, const struct StateEntryTemplate *vertex, - const struct StateEntryTemplate *fragment, + const struct fragment_pipeline *fragment, const struct StateEntryTemplate *misc) { unsigned int i, type, handlers; APPLYSTATEFUNC multistate_funcs[STATE_HIGHEST + 1][3]; const struct StateEntryTemplate *cur; - /* TODO: Remove this once all states are provided by templates */ - BOOL set[STATE_HIGHEST + 1]; - memset(set, 0, sizeof(set)); - memset(multistate_funcs, 0, sizeof(multistate_funcs)); for(i = 0; i < STATE_HIGHEST + 1; i++) { @@ -5562,14 +4507,13 @@ void compile_state_table(struct StateEntry *StateTable, /* This switch decides the order in which the states are applied */ switch(type) { case 0: cur = misc; break; - case 1: cur = fragment; break; + case 1: cur = fragment->states; break; case 2: cur = vertex; break; default: cur = NULL; /* Stupid compiler */ } if(!cur) continue; for(i = 0; cur[i].state; i++) { - set[cur[i].state] = TRUE; /* TODO: Remove when done with the move */ handlers = num_handlers(multistate_funcs[cur[i].state]); multistate_funcs[cur[i].state][handlers] = cur[i].content.apply; switch(handlers) { @@ -5607,10 +4551,4 @@ void compile_state_table(struct StateEntry *StateTable, StateTable[cur[i].state].representative = cur[i].content.representative; } } - - /* TODO Remove this after the state move is done */ - for(i = 0; i < STATE_HIGHEST + 1; i++) { - if(set[i]) continue; - StateTable[i] = FFPStateTable[i]; - } } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 35cb76080f9..ec43fec97ce 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -253,7 +253,6 @@ typedef struct { void (*shader_generate_pshader)(IWineD3DPixelShader *iface, SHADER_BUFFER *buffer); void (*shader_generate_vshader)(IWineD3DVertexShader *iface, SHADER_BUFFER *buffer); void (*shader_get_caps)(WINED3DDEVTYPE devtype, WineD3D_GL_Info *gl_info, struct shader_caps *caps); - void (*shader_fragment_enable)(IWineD3DDevice *iface, BOOL enable); } shader_backend_t; extern const shader_backend_t atifs_shader_backend; @@ -547,16 +546,21 @@ struct StateEntryTemplate struct StateEntry content; }; +struct fragment_pipeline { + void (*enable_extension)(IWineD3DDevice *iface, BOOL enable); + const struct StateEntryTemplate *states; +}; + extern const struct StateEntryTemplate misc_state_template[]; extern const struct StateEntryTemplate ffp_vertexstate_template[]; -extern const struct StateEntryTemplate ffp_fragmentstate_template[]; -extern const struct StateEntryTemplate atifs_fragmentstate_template[]; +extern const struct fragment_pipeline ffp_fragment_pipeline; +extern const struct fragment_pipeline atifs_fragment_pipeline; /* "Base" state table */ void compile_state_table(struct StateEntry *StateTable, APPLYSTATEFUNC **dev_multistate_funcs, const struct StateEntryTemplate *vertex, - const struct StateEntryTemplate *fragment, + const struct fragment_pipeline *fragment, const struct StateEntryTemplate *misc); /* The new context manager that should deal with onscreen and offscreen rendering */ @@ -784,6 +788,7 @@ struct IWineD3DDeviceImpl struct StateEntry StateTable[STATE_HIGHEST + 1]; /* Array of functions for states which are handled by more than one pipeline part */ APPLYSTATEFUNC *multistate_funcs[STATE_HIGHEST + 1]; + const struct fragment_pipeline *frag_pipe; /* To store */ BOOL view_ident; /* true iff view matrix is identity */