H. Verbeet : wined3d: Rename shader_glsl_add_dst() to shader_glsl_add_dst_old(), add shader_glsl_append_dst().

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jan 16 10:07:30 CST 2007


Module: wine
Branch: master
Commit: 1bfc08e081a95ea651f6804e0f0aedcc6c99d055
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1bfc08e081a95ea651f6804e0f0aedcc6c99d055

Author: H. Verbeet <hverbeet at gmail.com>
Date:   Mon Jan 15 19:30:59 2007 +0100

wined3d: Rename shader_glsl_add_dst() to shader_glsl_add_dst_old(), add shader_glsl_append_dst().

---

 dlls/wined3d/glsl_shader.c |   47 +++++++++++++++++++++++++++++---------------
 1 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 51c7d32..a2403c1 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -504,7 +504,7 @@ static const char * const shift_glsl_tab
 
 /** Print the beginning of the generated GLSL string. example: "reg_name.xyzw = vec4("
  * Will also change the reg_mask if necessary (not all register types are equal in DX vs GL)  */
-static void shader_glsl_add_dst(DWORD param, const char* reg_name, char* reg_mask, char* outStr) {
+static void shader_glsl_add_dst_old(DWORD param, const char* reg_name, char* reg_mask, char* outStr) {
 
     int shift = (param & WINED3DSP_DSTSHIFT_MASK) >> WINED3DSP_DSTSHIFT_SHIFT;
     char cast[6];
@@ -805,6 +805,21 @@ static DWORD shader_glsl_add_dst_param(S
     return mask;
 }
 
+#if 0
+/* Append the destination part of the instruction to the buffer, return the effective write mask */
+static DWORD shader_glsl_append_dst(SHADER_BUFFER *buffer, SHADER_OPCODE_ARG *arg) {
+    char reg_name[50], write_mask[6], reg_str[100];
+    DWORD mask;
+    int shift;
+
+    shift = (arg->dst & WINED3DSP_DSTSHIFT_MASK) >> WINED3DSP_DSTSHIFT_SHIFT;
+    mask = shader_glsl_add_dst_param(arg, arg->dst, arg->dst_addr, reg_name, write_mask, reg_str);
+    shader_addline(buffer, "%s = %s(", reg_str, shift_glsl_tab[shift]);
+
+    return mask;
+}
+#endif
+
 /** Process GLSL instruction modifiers */
 void shader_glsl_add_instruction_modifiers(SHADER_OPCODE_ARG* arg) {
     
@@ -907,7 +922,7 @@ void shader_glsl_arith(SHADER_OPCODE_ARG
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     strcat(tmpLine, "vec4(");
     strcat(tmpLine, src0_str);
     strcat(tmpLine, ")");
@@ -935,7 +950,7 @@ void shader_glsl_mov(SHADER_OPCODE_ARG*
 
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(buffer, "%s%s)%s;\n", tmpLine, src0_str, dst_mask);
 }
 
@@ -954,7 +969,7 @@ void shader_glsl_dot(SHADER_OPCODE_ARG*
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpDest);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpDest);
  
     /* Need to cast the src vectors to vec3 for dp3, and vec4 for dp4 */
     if (curOpcode->opcode == WINED3DSIO_DP4)
@@ -979,7 +994,7 @@ void shader_glsl_map2gl(SHADER_OPCODE_AR
     
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
  
     /* Determine the GLSL function to use based on the opcode */
     /* TODO: Possibly make this a table for faster lookups */
@@ -1041,7 +1056,7 @@ void shader_glsl_expp(SHADER_OPCODE_ARG*
     
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src_reg, src_mask, src_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
 
     if (hex_version < WINED3DPS_VERSION(2,0)) {
         shader_addline(arg->buffer, "tmp0.x = vec4(exp2(floor(%s))).x;\n", src_str);
@@ -1064,7 +1079,7 @@ void shader_glsl_rcp(SHADER_OPCODE_ARG*
     
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src_reg, src_mask, src_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     strcat(tmpLine, "1.0 / ");
     shader_addline(arg->buffer, "%s%s)%s;\n", tmpLine, src_str, dst_mask);
 }
@@ -1079,7 +1094,7 @@ void shader_glsl_compare(SHADER_OPCODE_A
     
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
 
     /* If we are comparing vectors and not scalars, we should process this through map2gl using the GLSL functions. */
     if (strlen(src0_mask) != 2) {
@@ -1113,7 +1128,7 @@ void shader_glsl_cmp(SHADER_OPCODE_ARG*
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
     shader_glsl_add_src_param(arg, arg->src[2], arg->src_addr[2], src2_reg, src2_mask, src2_str);
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(arg->buffer, "%smix(vec4(%s), vec4(%s), vec4(lessThan(vec4(%s), vec4(0.0)))))%s;\n",
         tmpLine, src1_str, src2_str, src0_str, dst_mask);
 }
@@ -1130,7 +1145,7 @@ void shader_glsl_cnd(SHADER_OPCODE_ARG*
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
     shader_glsl_add_src_param(arg, arg->src[2], arg->src_addr[2], src2_reg, src2_mask, src2_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(arg->buffer, "%s(%s < 0.5) ? %s : %s)%s;\n", 
                    tmpLine, src0_str, src1_str, src2_str, dst_mask);
 }
@@ -1147,7 +1162,7 @@ void shader_glsl_mad(SHADER_OPCODE_ARG*
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
     shader_glsl_add_src_param(arg, arg->src[2], arg->src_addr[2], src2_reg, src2_mask, src2_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
 
     shader_addline(arg->buffer, "%s(vec4(%s) * vec4(%s)) + vec4(%s))%s;\n",
                    tmpLine, src0_str, src1_str, src2_str, dst_mask);
@@ -1219,7 +1234,7 @@ void shader_glsl_lrp(SHADER_OPCODE_ARG*
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
     shader_glsl_add_src_param(arg, arg->src[2], arg->src_addr[2], src2_reg, src2_mask, src2_str);     
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     
     shader_addline(arg->buffer, "%s%s + %s * (%s - %s))%s;\n",
                    tmpLine, src2_str, src0_str, src1_str, src2_str, dst_mask);
@@ -1687,7 +1702,7 @@ void pshader_glsl_texreg2ar(SHADER_OPCOD
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(arg->buffer, "%stexture2D(Psampler%u, %s.yz))%s;\n",
             tmpLine, src0_regnum, dst_reg, dst_mask);
 }
@@ -1705,7 +1720,7 @@ void pshader_glsl_texreg2gb(SHADER_OPCOD
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(arg->buffer, "%stexture2D(Psampler%u, %s.yz))%s;\n",
             tmpLine, src0_regnum, dst_reg, dst_mask);
 }
@@ -1734,7 +1749,7 @@ void pshader_glsl_texreg2rgb(SHADER_OPCO
     shader_glsl_add_dst_param(arg, arg->dst, 0, dst_reg, dst_mask, dst_str);
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
 
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(arg->buffer, "%stexture%s(Psampler%u, %s.%s))%s;\n",
             tmpLine, dimensions, src0_regnum, dst_reg, (stype == WINED3DSTT_2D) ? "xy" : "xyz", dst_mask);
 }
@@ -1762,7 +1777,7 @@ void pshader_glsl_dp2add(SHADER_OPCODE_A
     shader_glsl_add_src_param(arg, arg->src[0], arg->src_addr[0], src0_reg, src0_mask, src0_str);
     shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], src1_reg, src1_mask, src1_str);
     shader_glsl_add_src_param(arg, arg->src[2], arg->src_addr[2], src2_reg, src2_mask, src2_str);
-    shader_glsl_add_dst(arg->dst, dst_reg, dst_mask, tmpLine);
+    shader_glsl_add_dst_old(arg->dst, dst_reg, dst_mask, tmpLine);
     shader_addline(arg->buffer, "%sdot(vec2(%s), vec2(%s)) + %s)%s;\n",
                    tmpLine, src0_str, src1_str, src2_str, dst_mask);
 }




More information about the wine-cvs mailing list