Module: wine Branch: refs/heads/master Commit: 683e5bfc55ecbcbc924b947d4f57a0d745605a47 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=683e5bfc55ecbcbc924b947d...
Author: Jason Green jave27@gmail.com Date: Thu May 18 13:42:37 2006 -0400
wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders.
---
dlls/wined3d/baseshader.c | 5 +++++ dlls/wined3d/pixelshader.c | 2 +- dlls/wined3d/vertexshader.c | 4 ---- 3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index f9f939f..98fa795 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -523,6 +523,11 @@ void generate_arb_declarations(IWineD3DB if (This->baseShader.textures_used & (1 << i)) shader_addline(buffer, "MOV T%lu, fragment.texcoord[%lu];\n", i, i); } + + /* Need to PARAM the environment parameters (constants) so we can use relative addressing */ + shader_addline(buffer, "PARAM C[%d] = { program.env[0..%d] };\n", + This->baseShader.limits.constant_float, + This->baseShader.limits.constant_float - 1); }
/** Generate the variable & register declarations for the GLSL diff --git a/dlls/wined3d/pixelshader.c b/dlls/wined3d/pixelshader.c index bafcd28..05241d2 100644 --- a/dlls/wined3d/pixelshader.c +++ b/dlls/wined3d/pixelshader.c @@ -764,7 +764,7 @@ inline static void get_register_name(con if (constants[reg]) sprintf(regstr, "C%lu", reg); else - sprintf(regstr, "program.env[%lu]", reg); + sprintf(regstr, "C[%lu]", reg); break; case D3DSPR_TEXTURE: /* case D3DSPR_ADDR: */ sprintf(regstr,"T%lu", reg); diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c index 58a1963..29a92d1 100644 --- a/dlls/wined3d/vertexshader.c +++ b/dlls/wined3d/vertexshader.c @@ -1073,10 +1073,6 @@ #endif This->baseShader.limits.constant_float = min(95, This->baseShader.limits.constant_float);
- shader_addline(&buffer, "PARAM C[%d] = { program.env[0..%d] };\n", - This->baseShader.limits.constant_float, - This->baseShader.limits.constant_float - 1); - /** Call the base shader generation routine to generate most of the vertex shader string for us */ generate_base_shader( (IWineD3DBaseShader*) This, &buffer, pFunction);