Jason Green : wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders.

Alexandre Julliard julliard at wine.codeweavers.com
Sat May 20 11:22:54 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 683e5bfc55ecbcbc924b947d4f57a0d745605a47
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=683e5bfc55ecbcbc924b947d4f57a0d745605a47

Author: Jason Green <jave27 at 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);




More information about the wine-cvs mailing list