H. Verbeet : wined3d: Cleanup shader_glsl_get_output_register_swizzle().

Alexandre Julliard julliard at wine.codeweavers.com
Fri Dec 29 14:35:31 CST 2006


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

Author: H. Verbeet <hverbeet at gmail.com>
Date:   Fri Dec 29 15:31:26 2006 +0100

wined3d: Cleanup shader_glsl_get_output_register_swizzle().

---

 dlls/wined3d/glsl_shader.c |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index fc60c39..4c00036 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -718,19 +718,19 @@ static void shader_glsl_get_register_nam
     strcat(regstr, tmpStr);
 }
 
-/* Writes the GLSL writemask for the destination register */
-static void shader_glsl_get_output_register_swizzle(
-    const DWORD param,
-    char *write_mask) {
-   
-    *write_mask = 0;
+/* Get the GLSL write mask for the destination register */
+static void shader_glsl_get_write_mask(const DWORD param, char *write_mask) {
+    char *ptr = write_mask;
+
     if ((param & WINED3DSP_WRITEMASK_ALL) != WINED3DSP_WRITEMASK_ALL) {
-        strcat(write_mask, ".");
-        if (param & WINED3DSP_WRITEMASK_0) strcat(write_mask, "x");
-        if (param & WINED3DSP_WRITEMASK_1) strcat(write_mask, "y");
-        if (param & WINED3DSP_WRITEMASK_2) strcat(write_mask, "z");
-        if (param & WINED3DSP_WRITEMASK_3) strcat(write_mask, "w");
+        *ptr++ = '.';
+        if (param & WINED3DSP_WRITEMASK_0) *ptr++ = 'x';
+        if (param & WINED3DSP_WRITEMASK_1) *ptr++ = 'y';
+        if (param & WINED3DSP_WRITEMASK_2) *ptr++ = 'z';
+        if (param & WINED3DSP_WRITEMASK_3) *ptr++ = 'w';
     }
+
+    *ptr = '\0';
 }
 
 static void shader_glsl_get_input_register_swizzle(
@@ -804,7 +804,7 @@ static void shader_glsl_add_param(
         shader_glsl_get_input_register_swizzle(param, is_color, reg_mask);
         shader_glsl_gen_modifier(param, reg_name, reg_mask, out_str);
     } else {
-        shader_glsl_get_output_register_swizzle(param, reg_mask);
+        shader_glsl_get_write_mask(param, reg_mask);
         sprintf(out_str, "%s%s", reg_name, reg_mask);
     }
 }
@@ -1788,7 +1788,7 @@ void pshader_glsl_input_pack(
        if (!usage_token) continue;
        usage = (usage_token & WINED3DSP_DCL_USAGE_MASK) >> WINED3DSP_DCL_USAGE_SHIFT;
        usage_idx = (usage_token & WINED3DSP_DCL_USAGEINDEX_MASK) >> WINED3DSP_DCL_USAGEINDEX_SHIFT;
-       shader_glsl_get_output_register_swizzle(register_token, reg_mask);
+       shader_glsl_get_write_mask(register_token, reg_mask);
 
        switch(usage) {
 
@@ -1843,7 +1843,7 @@ void vshader_glsl_output_unpack(
 
        usage = (usage_token & WINED3DSP_DCL_USAGE_MASK) >> WINED3DSP_DCL_USAGE_SHIFT;
        usage_idx = (usage_token & WINED3DSP_DCL_USAGEINDEX_MASK) >> WINED3DSP_DCL_USAGEINDEX_SHIFT;
-       shader_glsl_get_output_register_swizzle(register_token, reg_mask);
+       shader_glsl_get_write_mask(register_token, reg_mask);
 
        switch(usage) {
 




More information about the wine-cvs mailing list