[PATCH] WineD3D: Abstract some ATIfs op debug TRACEs=0A=

Stefan Doesinger stefan at codeweavers.com
Tue Dec 9 18:16:14 CST 2008


=0A=
---=0A=
 dlls/wined3d/ati_fragment_shader.c |  382 =
+++++++++++++++++-------------------=0A=
 1 files changed, 183 insertions(+), 199 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/ati_fragment_shader.c =
b/dlls/wined3d/ati_fragment_shader.c=0A=
index 88dd0a5..1933476 100644=0A=
--- a/dlls/wined3d/ati_fragment_shader.c=0A=
+++ b/dlls/wined3d/ati_fragment_shader.c=0A=
@@ -159,7 +159,96 @@ static const char *debug_rep(GLuint rep) {=0A=
     }=0A=
 }=0A=
 =0A=
+static const char *debug_op(GLuint op) {=0A=
+    switch(op) {=0A=
+        case GL_MOV_ATI:                return "GL_MOV_ATI";=0A=
+        case GL_ADD_ATI:                return "GL_ADD_ATI";=0A=
+        case GL_MUL_ATI:                return "GL_MUL_ATI";=0A=
+        case GL_SUB_ATI:                return "GL_SUB_ATI";=0A=
+        case GL_DOT3_ATI:               return "GL_DOT3_ATI";=0A=
+        case GL_DOT4_ATI:               return "GL_DOT4_ATI";=0A=
+        case GL_MAD_ATI:                return "GL_MAD_ATI";=0A=
+        case GL_LERP_ATI:               return "GL_LERP_ATI";=0A=
+        case GL_CND_ATI:                return "GL_CND_ATI";=0A=
+        case GL_CND0_ATI:               return "GL_CND0_ATI";=0A=
+        case GL_DOT2_ADD_ATI:           return "GL_DOT2_ADD_ATI";=0A=
+        default:                        return "unexpected op";=0A=
+    }=0A=
+}=0A=
+=0A=
+static const char *debug_mask(GLuint mask) {=0A=
+    switch(mask) {=0A=
+        case GL_NONE:                           return "GL_NONE";=0A=
+        case GL_RED_BIT_ATI:                    return "GL_RED_BIT_ATI";=0A=
+        case GL_GREEN_BIT_ATI:                  return =
"GL_GREEN_BIT_ATI";=0A=
+        case GL_BLUE_BIT_ATI:                   return =
"GL_BLUE_BIT_ATI";=0A=
+        case GL_RED_BIT_ATI | GL_GREEN_BIT_ATI: return "GL_RED_BIT_ATI =
| GL_GREEN_BIT_ATI";=0A=
+        case GL_RED_BIT_ATI | GL_BLUE_BIT_ATI:  return "GL_RED_BIT_ATI =
| GL_BLUE_BIT_ATI";=0A=
+        case GL_GREEN_BIT_ATI | GL_BLUE_BIT_ATI:return =
"GL_GREEN_BIT_ATI | GL_BLUE_BIT_ATI";=0A=
+        case GL_RED_BIT_ATI | GL_GREEN_BIT_ATI | GL_BLUE_BIT_ATI:return =
"GL_RED_BIT_ATI | GL_GREEN_BIT_ATI | GL_BLUE_BIT_ATI";=0A=
+        default:                                return "Unexpected =
writemask";=0A=
+    }=0A=
+}=0A=
 #define GLINFO_LOCATION (*gl_info)=0A=
+=0A=
+static void wrap_op1(const WineD3D_GL_Info *gl_info, GLuint op, GLuint =
dst, GLuint dstMask, GLuint dstMod,=0A=
+                     GLuint arg1, GLuint arg1Rep, GLuint arg1Mod) {=0A=
+    if(dstMask =3D=3D GL_ALPHA) {=0A=
+        TRACE("glAlphaFragmentOp1ATI(%s, %s, %s, %s, %s, %s)\n", =
debug_op(op), debug_register(dst), debug_dstmod(dstMod),=0A=
+              debug_register(arg1), debug_rep(arg1Rep), =
debug_argmod(arg1Mod));=0A=
+        GL_EXTCALL(glAlphaFragmentOp1ATI(op, dst, dstMod, arg1, =
arg1Rep, arg1Mod));=0A=
+    } else {=0A=
+        TRACE("glColorFragmentOp1ATI(%s, %s, %s, %s, %s, %s, %s)\n", =
debug_op(op), debug_register(dst),=0A=
+              debug_mask(dstMask), debug_dstmod(dstMod),=0A=
+              debug_register(arg1), debug_rep(arg1Rep), =
debug_argmod(arg1Mod));=0A=
+        GL_EXTCALL(glColorFragmentOp1ATI(op, dst, dstMask, dstMod, =
arg1, arg1Rep, arg1Mod));=0A=
+    }=0A=
+}=0A=
+=0A=
+static void wrap_op2(const WineD3D_GL_Info *gl_info, GLuint op, GLuint =
dst, GLuint dstMask, GLuint dstMod,=0A=
+                     GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,=0A=
+                     GLuint arg2, GLuint arg2Rep, GLuint arg2Mod) {=0A=
+    if(dstMask =3D=3D GL_ALPHA) {=0A=
+        TRACE("glAlphaFragmentOp2ATI(%s, %s, %s, %s, %s, %s, %s, %s, =
%s)\n", debug_op(op), debug_register(dst), debug_dstmod(dstMod),=0A=
+              debug_register(arg1), debug_rep(arg1Rep), =
debug_argmod(arg1Mod),=0A=
+              debug_register(arg2), debug_rep(arg2Rep), =
debug_argmod(arg2Mod));=0A=
+        GL_EXTCALL(glAlphaFragmentOp2ATI(op, dst, dstMod, arg1, =
arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod));=0A=
+    } else {=0A=
+        TRACE("glColorFragmentOp2ATI(%s, %s, %s, %s, %s, %s, %s, %s, =
%s, %s)\n", debug_op(op), debug_register(dst),=0A=
+              debug_mask(dstMask), debug_dstmod(dstMod),=0A=
+              debug_register(arg1), debug_rep(arg1Rep), =
debug_argmod(arg1Mod),=0A=
+              debug_register(arg2), debug_rep(arg2Rep), =
debug_argmod(arg2Mod));=0A=
+        GL_EXTCALL(glColorFragmentOp2ATI(op, dst, dstMask, dstMod, =
arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod));=0A=
+    }=0A=
+}=0A=
+=0A=
+static void wrap_op3(const WineD3D_GL_Info *gl_info, GLuint op, GLuint =
dst, GLuint dstMask, GLuint dstMod,=0A=
+                     GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,=0A=
+                     GLuint arg2, GLuint arg2Rep, GLuint arg2Mod,=0A=
+                     GLuint arg3, GLuint arg3Rep, GLuint arg3Mod) {=0A=
+    if(dstMask =3D=3D GL_ALPHA) {=0A=
+        /* Leave some free space to fit "GL_NONE, " in to align most =
alpha and color op lines */=0A=
+        TRACE("glAlphaFragmentOp3ATI(%s, %s,          %s, %s, %s, %s, =
%s, %s, %s, %s, %s, %s)\n", debug_op(op), debug_register(dst), =
debug_dstmod(dstMod),=0A=
+              debug_register(arg1), debug_rep(arg1Rep), =
debug_argmod(arg1Mod),=0A=
+              debug_register(arg2), debug_rep(arg2Rep), =
debug_argmod(arg2Mod),=0A=
+              debug_register(arg3), debug_rep(arg3Rep), =
debug_argmod(arg3Mod));=0A=
+        GL_EXTCALL(glAlphaFragmentOp3ATI(op, dst, dstMod,=0A=
+                                         arg1, arg1Rep, arg1Mod,=0A=
+                                         arg2, arg2Rep, arg2Mod,=0A=
+                                         arg3, arg3Rep, arg3Mod));=0A=
+    } else {=0A=
+        TRACE("glColorFragmentOp3ATI(%s, %s, %s, %s, %s, %s, %s, %s, =
%s, %s, %s, %s, %s)\n", debug_op(op), debug_register(dst),=0A=
+              debug_mask(dstMask), debug_dstmod(dstMod),=0A=
+              debug_register(arg1), debug_rep(arg1Rep), =
debug_argmod(arg1Mod),=0A=
+              debug_register(arg2), debug_rep(arg2Rep), =
debug_argmod(arg2Mod),=0A=
+              debug_register(arg3), debug_rep(arg3Rep), =
debug_argmod(arg3Mod));=0A=
+        GL_EXTCALL(glColorFragmentOp3ATI(op, dst, dstMask, dstMod,=0A=
+                                         arg1, arg1Rep, arg1Mod,=0A=
+                                         arg2, arg2Rep, arg2Mod,=0A=
+                                         arg3, arg3Rep, arg3Mod));=0A=
+    }=0A=
+}=0A=
+=0A=
 static GLuint register_for_arg(DWORD arg, const WineD3D_GL_Info =
*gl_info,=0A=
         unsigned int stage, GLuint *mod, GLuint *rep, GLuint tmparg)=0A=
 {=0A=
@@ -365,12 +454,10 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
             argmodextra_y =3D fixup.y_sign_fixup ? GL_2X_BIT_ATI | =
GL_BIAS_BIT_ATI : GL_NONE;=0A=
         }=0A=
 =0A=
-        TRACE("glColorFragmentOp3ATI(GL_DOT2_ADD_ATI, GL_REG_%d_ATI, =
GL_RED_BIT_ATI, GL_NONE, GL_REG_%d_ATI, GL_NONE, %s, =
ATI_FFP_CONST_BUMPMAT(%d), GL_NONE, GL_NONE, GL_REG_%d_ATI, GL_RED, =
GL_NONE)\n",=0A=
-              stage + 1, stage, debug_argmod(argmodextra_x), stage, =
stage + 1);=0A=
-        GL_EXTCALL(glColorFragmentOp3ATI(GL_DOT2_ADD_ATI, GL_REG_0_ATI =
+ stage + 1, GL_RED_BIT_ATI, GL_NONE,=0A=
-                                         GL_REG_0_ATI + stage, GL_NONE, =
argmodextra_x,=0A=
-                                         ATI_FFP_CONST_BUMPMAT(stage), =
GL_NONE, GL_2X_BIT_ATI | GL_BIAS_BIT_ATI,=0A=
-                                         GL_REG_0_ATI + stage + 1, =
GL_RED, GL_NONE));=0A=
+        wrap_op3(gl_info, GL_DOT2_ADD_ATI, GL_REG_0_ATI + stage + 1, =
GL_RED_BIT_ATI, GL_NONE,=0A=
+                 GL_REG_0_ATI + stage, GL_NONE, argmodextra_x,=0A=
+                 ATI_FFP_CONST_BUMPMAT(stage), GL_NONE, GL_2X_BIT_ATI | =
GL_BIAS_BIT_ATI,=0A=
+                 GL_REG_0_ATI + stage + 1, GL_RED, GL_NONE);=0A=
 =0A=
         /* FIXME: How can I make GL_DOT2_ADD_ATI read the factors from =
blue and alpha? It defaults to red and green,=0A=
          * and it is fairly easy to make it read GL_BLUE or BL_ALPHA, =
but I can't get an R * B + G * A. So we're wasting=0A=
@@ -380,18 +467,14 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
          * NOTE: GL_BLUE | GL_ALPHA is not possible. It doesn't throw a =
compilation error, but an OR operation on the=0A=
          * constants doesn't make sense, considering their values.=0A=
          */=0A=
-        TRACE("glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_5_ATI, =
GL_RED_BIT_ATI, GL_NONE, ATI_FFP_CONST_BUMPMAT(%d), GL_BLUE, =
GL_NONE)\n", stage);=0A=
-        GL_EXTCALL(glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_5_ATI, =
GL_RED_BIT_ATI, GL_NONE,=0A=
-                                         ATI_FFP_CONST_BUMPMAT(stage), =
GL_BLUE, GL_NONE));=0A=
-        TRACE("glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_5_ATI, =
GL_GREEN_BIT_ATI, GL_NONE, ATI_FFP_CONST_BUMPMAT(%d), GL_ALPHA, =
GL_NONE)\n", stage);=0A=
-        GL_EXTCALL(glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_5_ATI, =
GL_GREEN_BIT_ATI, GL_NONE,=0A=
-                                        ATI_FFP_CONST_BUMPMAT(stage), =
GL_ALPHA, GL_NONE));=0A=
-        TRACE("glColorFragmentOp3ATI(GL_DOT2_ADD_ATI, GL_REG_%d_ATI, =
GL_GREEN_BIT_ATI, GL_NONE, GL_REG_%d_ATI, GL_NONE, %s, GL_REG_5_ATI, =
GL_NONE, GL_NONE, GL_REG_%d_ATI, GL_GREEN, GL_NONE)\n",=0A=
-              stage + 1, stage, debug_argmod(argmodextra_y), stage + 1);=0A=
-        GL_EXTCALL(glColorFragmentOp3ATI(GL_DOT2_ADD_ATI, GL_REG_0_ATI =
+ stage + 1, GL_GREEN_BIT_ATI, GL_NONE,=0A=
-                                         GL_REG_0_ATI + stage, GL_NONE, =
argmodextra_y,=0A=
-                                         GL_REG_5_ATI, GL_NONE, =
GL_2X_BIT_ATI | GL_BIAS_BIT_ATI,=0A=
-                                         GL_REG_0_ATI + stage + 1, =
GL_GREEN, GL_NONE));=0A=
+        wrap_op1(gl_info, GL_MOV_ATI, GL_REG_5_ATI, GL_RED_BIT_ATI, =
GL_NONE,=0A=
+                 ATI_FFP_CONST_BUMPMAT(stage), GL_BLUE, GL_NONE);=0A=
+        wrap_op1(gl_info, GL_MOV_ATI, GL_REG_5_ATI, GL_GREEN_BIT_ATI, =
GL_NONE,=0A=
+                 ATI_FFP_CONST_BUMPMAT(stage), GL_ALPHA, GL_NONE);=0A=
+        wrap_op3(gl_info, GL_DOT2_ADD_ATI, GL_REG_0_ATI + stage + 1, =
GL_GREEN_BIT_ATI, GL_NONE,=0A=
+                 GL_REG_0_ATI + stage, GL_NONE, argmodextra_y,=0A=
+                 GL_REG_5_ATI, GL_NONE, GL_2X_BIT_ATI | GL_BIAS_BIT_ATI,=0A=
+                 GL_REG_0_ATI + stage + 1, GL_GREEN, GL_NONE);=0A=
     }=0A=
 =0A=
     /* Pass 3: Generate sampling instructions for regular textures */=0A=
@@ -439,12 +522,10 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
         if(op[stage].cop =3D=3D WINED3DTOP_DISABLE) {=0A=
             if(stage =3D=3D 0) {=0A=
                 /* Handle complete texture disabling gracefully */=0A=
-                TRACE("glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, =
GL_NONE, GL_NONE, GL_PRIMARY_COLOR, GL_NONE, GL_NONE)\n");=0A=
-                GL_EXTCALL(glColorFragmentOp1ATI(GL_MOV_ATI, =
GL_REG_0_ATI, GL_NONE, GL_NONE,=0A=
-                                                 GL_PRIMARY_COLOR, =
GL_NONE, GL_NONE));=0A=
-                TRACE("glAlphaFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, =
GL_NONE, GL_PRIMARY_COLOR, GL_NONE, GL_NONE)\n");=0A=
-                GL_EXTCALL(glAlphaFragmentOp1ATI(GL_MOV_ATI, =
GL_REG_0_ATI, GL_NONE,=0A=
-                                                 GL_PRIMARY_COLOR, =
GL_NONE, GL_NONE));=0A=
+                wrap_op1(gl_info, GL_MOV_ATI, GL_REG_0_ATI, GL_NONE, =
GL_NONE,=0A=
+                         GL_PRIMARY_COLOR, GL_NONE, GL_NONE);=0A=
+                wrap_op1(gl_info, GL_MOV_ATI, GL_REG_0_ATI, GL_ALPHA, =
GL_NONE,=0A=
+                         GL_PRIMARY_COLOR, GL_NONE, GL_NONE);=0A=
             }=0A=
             break;=0A=
         }=0A=
@@ -473,10 +554,8 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 argmod1 =3D argmod2;=0A=
                 rep1 =3D rep2;=0A=
             case WINED3DTOP_SELECTARG1:=0A=
-                TRACE("glColorFragmentOp1ATI(GL_MOV_ATI, %s, GL_NONE, =
GL_NONE, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg), debug_register(arg1), =
debug_rep(rep1), debug_argmod(argmod1));=0A=
-                GL_EXTCALL(glColorFragmentOp1ATI(GL_MOV_ATI, dstreg, =
GL_NONE, GL_NONE,=0A=
-                                                 arg1, rep1, argmod1));=0A=
+                wrap_op1(gl_info, GL_MOV_ATI, dstreg, GL_NONE, GL_NONE,=0A=
+                         arg1, rep1, argmod1);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_MODULATE4X:=0A=
@@ -485,13 +564,9 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 if(dstmod =3D=3D GL_NONE) dstmod =3D GL_2X_BIT_ATI;=0A=
                 dstmod |=3D GL_SATURATE_BIT_ATI;=0A=
             case WINED3DTOP_MODULATE:=0A=
-                TRACE("glColorFragmentOp2ATI(GL_MUL_ATI, %s, GL_NONE, =
%s, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg), debug_dstmod(dstmod),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2));=0A=
-                GL_EXTCALL(glColorFragmentOp2ATI(GL_MUL_ATI, dstreg, =
GL_NONE, dstmod,=0A=
-                                                 arg1, rep1, argmod1,=0A=
-                                                 arg2, rep2, argmod2));=0A=
+                wrap_op2(gl_info, GL_MUL_ATI, dstreg, GL_NONE, dstmod,=0A=
+                         arg1, rep1, argmod1,=0A=
+                         arg2, rep2, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_ADDSIGNED2X:=0A=
@@ -500,40 +575,27 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 argmodextra =3D GL_BIAS_BIT_ATI;=0A=
             case WINED3DTOP_ADD:=0A=
                 dstmod |=3D GL_SATURATE_BIT_ATI;=0A=
-                TRACE("glColorFragmentOp2ATI(GL_ADD_ATI, %s, GL_NONE, =
%s, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg), debug_dstmod(dstmod),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmodextra | argmod2));=0A=
-                GL_EXTCALL(glColorFragmentOp2ATI(GL_ADD_ATI, =
GL_REG_0_ATI, GL_NONE, dstmod,=0A=
-                                                 arg1, rep1, argmod1,=0A=
-                                                 arg2, rep2, =
argmodextra | argmod2));=0A=
+                wrap_op2(gl_info, GL_ADD_ATI, GL_REG_0_ATI, GL_NONE, =
dstmod,=0A=
+                         arg1, rep1, argmod1,=0A=
+                         arg2, rep2, argmodextra | argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_SUBTRACT:=0A=
                 dstmod |=3D GL_SATURATE_BIT_ATI;=0A=
-                TRACE("glColorFragmentOp2ATI(GL_SUB_ATI, %s, GL_NONE, =
%s, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg), debug_dstmod(dstmod),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2));=0A=
-                GL_EXTCALL(glColorFragmentOp2ATI(GL_SUB_ATI, dstreg, =
GL_NONE, dstmod,=0A=
-                                                 arg1, rep1, argmod1,=0A=
-                                                 arg2, rep2, argmod2));=0A=
+                wrap_op2(gl_info, GL_SUB_ATI, dstreg, GL_NONE, dstmod,=0A=
+                         arg1, rep1, argmod1,=0A=
+                         arg2, rep2, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_ADDSMOOTH:=0A=
                 argmodextra =3D argmod1 & GL_COMP_BIT_ATI ? argmod1 & =
~GL_COMP_BIT_ATI : argmod1 | GL_COMP_BIT_ATI;=0A=
-                TRACE("glColorFragmentOp3ATI(GL_MAD_ATI, %s, GL_NONE, =
GL_SATURATE_BIT_ATI, %s, %s, %s, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmodextra),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1));=0A=
                 /* Dst =3D arg1 + * arg2(1 -arg 1)=0A=
                  *     =3D arg2 * (1 - arg1) + arg1=0A=
                  */=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_NONE, GL_SATURATE_BIT_ATI,=0A=
-                                                 arg2, rep2, argmod2,=0A=
-                                                 arg1, rep1, =
argmodextra,=0A=
-                                                 arg1, rep1, argmod1));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_NONE, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg2, rep2, argmod2,=0A=
+                         arg1, rep1, argmodextra,=0A=
+                         arg1, rep1, argmod1);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_BLENDCURRENTALPHA:=0A=
@@ -544,28 +606,18 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 if(extrarg =3D=3D GL_NONE) extrarg =3D =
register_for_arg(WINED3DTA_TEXTURE, gl_info, stage, NULL, NULL, -1);=0A=
             case WINED3DTOP_BLENDDIFFUSEALPHA:=0A=
                 if(extrarg =3D=3D GL_NONE) extrarg =3D =
register_for_arg(WINED3DTA_DIFFUSE, gl_info, stage, NULL, NULL, -1);=0A=
-                TRACE("glColorFragmentOp3ATI(GL_LERP_ATI, %s, GL_NONE, =
GL_NONE, %s, GL_ALPHA, GL_NONE, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(extrarg),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2));=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_LERP_ATI, dstreg, =
GL_NONE, GL_NONE,=0A=
-                                                 extrarg, GL_ALPHA, =
GL_NONE,=0A=
-                                                 arg1, rep1, argmod1,=0A=
-                                                 arg2, rep2, argmod2));=0A=
+                wrap_op3(gl_info, GL_LERP_ATI, dstreg, GL_NONE, GL_NONE,=0A=
+                         extrarg, GL_ALPHA, GL_NONE,=0A=
+                         arg1, rep1, argmod1,=0A=
+                         arg2, rep2, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_BLENDTEXTUREALPHAPM:=0A=
                 arg0 =3D register_for_arg(WINED3DTA_TEXTURE, gl_info, =
stage, NULL, NULL, -1);=0A=
-                TRACE("glColorFragmentOp3ATI(GL_MAD_ATI, %s, GL_NONE, =
GL_NONE, %s, %s, %s, %s, GL_ALPHA, GL_COMP_BIT_ATI, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2),=0A=
-                      debug_register(arg0),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1));=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_NONE, GL_NONE,=0A=
-                                                 arg2, rep2,  argmod2,=0A=
-                                                 arg0, GL_ALPHA, =
GL_COMP_BIT_ATI,=0A=
-                                                 arg1, rep1,  argmod1));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_NONE, GL_NONE,=0A=
+                         arg2, rep2,  argmod2,=0A=
+                         arg0, GL_ALPHA, GL_COMP_BIT_ATI,=0A=
+                         arg1, rep1,  argmod1);=0A=
                 break;=0A=
 =0A=
             /* D3DTOP_PREMODULATE ???? */=0A=
@@ -574,63 +626,40 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 argmodextra =3D argmod1 & GL_COMP_BIT_ATI ? argmod1 & =
~GL_COMP_BIT_ATI : argmod1 | GL_COMP_BIT_ATI;=0A=
             case WINED3DTOP_MODULATEALPHA_ADDCOLOR:=0A=
                 if(!argmodextra) argmodextra =3D argmod1;=0A=
-                TRACE("glColorFragmentOp3ATI(GL_MAD_ATI, %s, GL_NONE, =
GL_SATURATE_BIT_ATI, %s, %s, %s, %s, GL_ALPHA, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2),=0A=
-                      debug_register(arg1), debug_argmod(argmodextra), =
debug_register(arg1), debug_rep(rep1), debug_argmod(arg1));=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_NONE, GL_SATURATE_BIT_ATI,=0A=
-                                                 arg2, rep2,  argmod2,=0A=
-                                                 arg1, GL_ALPHA, =
argmodextra,=0A=
-                                                 arg1, rep1,  argmod1));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_NONE, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg2, rep2,  argmod2,=0A=
+                         arg1, GL_ALPHA, argmodextra,=0A=
+                         arg1, rep1,  argmod1);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_MODULATEINVCOLOR_ADDALPHA:=0A=
                 argmodextra =3D argmod1 & GL_COMP_BIT_ATI ? argmod1 & =
~GL_COMP_BIT_ATI : argmod1 | GL_COMP_BIT_ATI;=0A=
             case WINED3DTOP_MODULATECOLOR_ADDALPHA:=0A=
                 if(!argmodextra) argmodextra =3D argmod1;=0A=
-                TRACE("glColorFragmentOp3ATI(GL_MAD_ATI, %s, GL_NONE, =
GL_SATURATE_BIT_ATI, %s, %s, %s, %s, %s, %s, %s, GL_ALPHA, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmodextra),=0A=
-                      debug_register(arg1), debug_argmod(argmod1));=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_NONE, GL_SATURATE_BIT_ATI,=0A=
-                                                 arg2, rep2,  argmod2,=0A=
-                                                 arg1, rep1,  =
argmodextra,=0A=
-                                                 arg1, GL_ALPHA, =
argmod1));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_NONE, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg2, rep2,  argmod2,=0A=
+                         arg1, rep1,  argmodextra,=0A=
+                         arg1, GL_ALPHA, argmod1);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_DOTPRODUCT3:=0A=
-                TRACE("glColorFragmentOp2ATI(GL_DOT3_ATI, %s, GL_NONE, =
GL_4X_BIT_ATI | GL_SATURATE_BIT_ATI, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1 | GL_BIAS_BIT_ATI),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2 | GL_BIAS_BIT_ATI));=0A=
-                GL_EXTCALL(glColorFragmentOp2ATI(GL_DOT3_ATI, dstreg, =
GL_NONE, GL_4X_BIT_ATI | GL_SATURATE_BIT_ATI,=0A=
-                                                 arg1, rep1, argmod1 | =
GL_BIAS_BIT_ATI,=0A=
-                                                 arg2, rep2, argmod2 | =
GL_BIAS_BIT_ATI));=0A=
+                wrap_op2(gl_info, GL_DOT3_ATI, dstreg, GL_NONE, =
GL_4X_BIT_ATI | GL_SATURATE_BIT_ATI,=0A=
+                         arg1, rep1, argmod1 | GL_BIAS_BIT_ATI,=0A=
+                         arg2, rep2, argmod2 | GL_BIAS_BIT_ATI);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_MULTIPLYADD:=0A=
-                TRACE("glColorFragmentOp3ATI(GL_MAD_ATI, %s, GL_NONE, =
GL_SATURATE_BIT_ATI, %s, %s, %s, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2),=0A=
-                      debug_register(arg0), debug_rep(rep0), =
debug_argmod(argmod0));=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_NONE, GL_SATURATE_BIT_ATI,=0A=
-                                                 arg1, rep1, argmod1,=0A=
-                                                 arg2, rep2, argmod2,=0A=
-                                                 arg0, rep0, argmod0));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_NONE, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg1, rep1, argmod1,=0A=
+                         arg2, rep2, argmod2,=0A=
+                         arg0, rep0, argmod0);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_LERP:=0A=
-                TRACE("glColorFragmentOp3ATI(GL_LERP_ATI, %s, GL_NONE, =
GL_NONE, %s, %s, %s, %s, %s, %s, %s, %s, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_rep(rep1), =
debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_rep(rep2), =
debug_argmod(argmod2),=0A=
-                      debug_register(arg0), debug_rep(rep0), =
debug_argmod(argmod0));=0A=
-                GL_EXTCALL(glColorFragmentOp3ATI(GL_LERP_ATI, dstreg, =
GL_NONE, GL_NONE,=0A=
-                                                 arg0, rep0, argmod0,=0A=
-                                                 arg1, rep1, argmod1,=0A=
-                                                 arg2, rep2, argmod2));=0A=
+                wrap_op3(gl_info, GL_LERP_ATI, dstreg, GL_NONE, GL_NONE,=0A=
+                         arg0, rep0, argmod0,=0A=
+                         arg1, rep1, argmod1,=0A=
+                         arg2, rep2, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_BUMPENVMAP:=0A=
@@ -652,9 +681,8 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
             case WINED3DTOP_DISABLE:=0A=
                 /* Get the primary color to the output if on stage 0, =
otherwise leave register 0 untouched */=0A=
                 if(stage =3D=3D 0) {=0A=
-                    TRACE("glAlphaFragmentOp1ATI(GL_MOV_ATI, =
GL_REG_0_ATI, GL_NONE, GL_PRIMARY_COLOR, GL_NONE, GL_NONE)\n");=0A=
-                    GL_EXTCALL(glAlphaFragmentOp1ATI(GL_MOV_ATI, =
GL_REG_0_ATI, GL_NONE,=0A=
-                               GL_PRIMARY_COLOR, GL_NONE, GL_NONE));=0A=
+                    wrap_op1(gl_info, GL_MOV_ATI, GL_REG_0_ATI, =
GL_ALPHA, GL_NONE,=0A=
+                             GL_PRIMARY_COLOR, GL_NONE, GL_NONE);=0A=
                 }=0A=
                 break;=0A=
 =0A=
@@ -662,11 +690,8 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 arg1 =3D arg2;=0A=
                 argmod1 =3D argmod2;=0A=
             case WINED3DTOP_SELECTARG1:=0A=
-                TRACE("glAlphaFragmentOp1ATI(GL_MOV_ATI, %s,          =
GL_NONE, %s, GL_NONE, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_argmod(argmod1));=0A=
-                GL_EXTCALL(glAlphaFragmentOp1ATI(GL_MOV_ATI, dstreg, =
GL_NONE,=0A=
-                                                 arg1, GL_NONE, =
argmod1));=0A=
+                wrap_op1(gl_info, GL_MOV_ATI, dstreg, GL_ALPHA, GL_NONE,=0A=
+                         arg1, GL_NONE, argmod1);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_MODULATE4X:=0A=
@@ -675,13 +700,9 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 if(dstmod =3D=3D GL_NONE) dstmod =3D GL_2X_BIT_ATI;=0A=
                 dstmod |=3D GL_SATURATE_BIT_ATI;=0A=
             case WINED3DTOP_MODULATE:=0A=
-                TRACE("glAlphaFragmentOp2ATI(GL_MUL_ATI, %s,          =
%s, %s, GL_NONE, %s, %s, GL_NONE, %s)\n",=0A=
-                      debug_register(dstreg), debug_dstmod(dstmod),=0A=
-                      debug_register(arg1), debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_argmod(argmod2));=0A=
-                GL_EXTCALL(glAlphaFragmentOp2ATI(GL_MUL_ATI, dstreg, =
dstmod,=0A=
-                                                 arg1, GL_NONE, argmod1,=0A=
-                                                 arg2, GL_NONE, =
argmod2));=0A=
+                wrap_op2(gl_info, GL_MUL_ATI, dstreg, GL_ALPHA, dstmod,=0A=
+                         arg1, GL_NONE, argmod1,=0A=
+                         arg2, GL_NONE, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_ADDSIGNED2X:=0A=
@@ -690,40 +711,27 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 argmodextra =3D GL_BIAS_BIT_ATI;=0A=
             case WINED3DTOP_ADD:=0A=
                 dstmod |=3D GL_SATURATE_BIT_ATI;=0A=
-                TRACE("glAlphaFragmentOp2ATI(GL_ADD_ATI, %s,          =
%s, %s, GL_NONE, %s, %s, GL_NONE, %s)\n",=0A=
-                      debug_register(dstreg), debug_dstmod(dstmod),=0A=
-                      debug_register(arg1), debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_argmod(argmodextra | =
argmod2));=0A=
-                GL_EXTCALL(glAlphaFragmentOp2ATI(GL_ADD_ATI, dstreg, =
dstmod,=0A=
-                                                 arg1, GL_NONE, argmod1,=0A=
-                                                 arg2, GL_NONE, =
argmodextra | argmod2));=0A=
+                wrap_op2(gl_info, GL_ADD_ATI, dstreg, GL_ALPHA, dstmod,=0A=
+                         arg1, GL_NONE, argmod1,=0A=
+                         arg2, GL_NONE, argmodextra | argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_SUBTRACT:=0A=
                 dstmod |=3D GL_SATURATE_BIT_ATI;=0A=
-                TRACE("glAlphaFragmentOp2ATI(GL_SUB_ATI, %s, GL_NONE, =
%s, %s, GL_NONE, %s, %s, GL_NONE, %s)\n",=0A=
-                      debug_register(dstreg), debug_dstmod(dstmod),=0A=
-                      debug_register(arg1), debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_argmod(argmod2));=0A=
-                GL_EXTCALL(glAlphaFragmentOp2ATI(GL_SUB_ATI, dstreg, =
dstmod,=0A=
-                                                 arg1, GL_NONE, argmod1,=0A=
-                                                 arg2, GL_NONE, =
argmod2));=0A=
+                wrap_op2(gl_info, GL_SUB_ATI, dstreg, GL_ALPHA, dstmod,=0A=
+                         arg1, GL_NONE, argmod1,=0A=
+                         arg2, GL_NONE, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_ADDSMOOTH:=0A=
                 argmodextra =3D argmod1 & GL_COMP_BIT_ATI ? argmod1 & =
~GL_COMP_BIT_ATI : argmod1 | GL_COMP_BIT_ATI;=0A=
-                TRACE("glAlphaFragmentOp3ATI(GL_MAD_ATI, %s,          =
GL_SATURATE_BIT_ATI, %s, GL_NONE, %s, %s, GL_NONE, %s, %s, GL_NONE, =
%s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg2), debug_argmod(argmod2),=0A=
-                      debug_register(arg1), debug_argmod(argmodextra),=0A=
-                      debug_register(arg1), debug_argmod(argmod1));=0A=
                 /* Dst =3D arg1 + * arg2(1 -arg 1)=0A=
                  *     =3D arg2 * (1 - arg1) + arg1=0A=
                  */=0A=
-                GL_EXTCALL(glAlphaFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_SATURATE_BIT_ATI,=0A=
-                                                 arg2, GL_NONE, argmod2,=0A=
-                                                 arg1, GL_NONE, =
argmodextra,=0A=
-                                                 arg1, GL_NONE, =
argmod1));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_ALPHA, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg2, GL_NONE, argmod2,=0A=
+                         arg1, GL_NONE, argmodextra,=0A=
+                         arg1, GL_NONE, argmod1);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_BLENDCURRENTALPHA:=0A=
@@ -734,64 +742,40 @@ static GLuint gen_ati_shader(const struct =
texture_stage_op op[MAX_TEXTURES], con=0A=
                 if(extrarg =3D=3D GL_NONE) extrarg =3D =
register_for_arg(WINED3DTA_TEXTURE, gl_info, stage, NULL, NULL, -1);=0A=
             case WINED3DTOP_BLENDDIFFUSEALPHA:=0A=
                 if(extrarg =3D=3D GL_NONE) extrarg =3D =
register_for_arg(WINED3DTA_DIFFUSE, gl_info, stage, NULL, NULL, -1);=0A=
-                TRACE("glAlphaFragmentOp3ATI(GL_LERP_ATI, %s,          =
GL_NONE, %s, GL_ALPHA, GL_NONE, %s, GL_NONE, %s, %s, GL_NONE, %s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(extrarg),=0A=
-                      debug_register(arg1), debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_argmod(argmod2));=0A=
-                GL_EXTCALL(glAlphaFragmentOp3ATI(GL_LERP_ATI, dstreg, =
GL_NONE,=0A=
-                                                 extrarg, GL_ALPHA, =
GL_NONE,=0A=
-                                                 arg1, GL_NONE, argmod1,=0A=
-                                                 arg2, GL_NONE, =
argmod2));=0A=
+                wrap_op3(gl_info, GL_LERP_ATI, dstreg, GL_ALPHA, =
GL_NONE,=0A=
+                         extrarg, GL_ALPHA, GL_NONE,=0A=
+                         arg1, GL_NONE, argmod1,=0A=
+                         arg2, GL_NONE, argmod2);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_BLENDTEXTUREALPHAPM:=0A=
                 arg0 =3D register_for_arg(WINED3DTA_TEXTURE, gl_info, =
stage, NULL, NULL, -1);=0A=
-                TRACE("glAlphaFragmentOp3ATI(GL_MAD_ATI, %s,          =
GL_NONE, %s, GL_NONE, %s, %s, GL_ALPHA, GL_COMP_BIT_ATI, %s, GL_NONE, =
%s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg2), debug_argmod(argmod2),=0A=
-                      debug_register(arg0),=0A=
-                      debug_register(arg1), debug_argmod(argmod1));=0A=
-                GL_EXTCALL(glAlphaFragmentOp3ATI(GL_MAD_ATI, dstreg, =
GL_NONE,=0A=
-                                                 arg2, GL_NONE,  =
argmod2,=0A=
-                                                 arg0, GL_ALPHA, =
GL_COMP_BIT_ATI,=0A=
-                                                 arg1, GL_NONE,  =
argmod1));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_ALPHA, GL_NONE,=0A=
+                         arg2, GL_NONE,  argmod2,=0A=
+                         arg0, GL_ALPHA, GL_COMP_BIT_ATI,=0A=
+                         arg1, GL_NONE,  argmod1);=0A=
                 break;=0A=
 =0A=
             /* D3DTOP_PREMODULATE ???? */=0A=
 =0A=
             case WINED3DTOP_DOTPRODUCT3:=0A=
-                TRACE("glAlphaFragmentOp2ATI(GL_DOT3_ATI, %s,          =
GL_4X_BIT_ATI | GL_SATURATE_BIT_ATI, %s, GL_NONE, %s, %s, GL_NONE, =
%s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_argmod(argmod1 | =
GL_BIAS_BIT_ATI),=0A=
-                      debug_register(arg2), debug_argmod(argmod2 | =
GL_BIAS_BIT_ATI));=0A=
-                GL_EXTCALL(glAlphaFragmentOp2ATI(GL_DOT3_ATI, dstreg, =
GL_4X_BIT_ATI | GL_SATURATE_BIT_ATI,=0A=
-                                                 arg1, GL_NONE, argmod1 =
| GL_BIAS_BIT_ATI,=0A=
-                                                 arg2, GL_NONE, argmod2 =
| GL_BIAS_BIT_ATI));=0A=
+                wrap_op2(gl_info, GL_DOT3_ATI, dstreg, GL_ALPHA, =
GL_4X_BIT_ATI | GL_SATURATE_BIT_ATI,=0A=
+                         arg1, GL_NONE, argmod1 | GL_BIAS_BIT_ATI,=0A=
+                         arg2, GL_NONE, argmod2 | GL_BIAS_BIT_ATI);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_MULTIPLYADD:=0A=
-                TRACE("glAlphaFragmentOp3ATI(GL_MAD_ATI, %s,          =
GL_SATURATE_BIT_ATI, %s, GL_NONE, %s, %s, GL_NONE, %s, %s, GL_NONE, =
%s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_argmod(argmod2),=0A=
-                      debug_register(arg0), debug_argmod(argmod0));=0A=
-                GL_EXTCALL(glAlphaFragmentOp3ATI(GL_MAD_ATI, dstreg,    =
      GL_SATURATE_BIT_ATI,=0A=
-                           arg1, GL_NONE, argmod1,=0A=
-                           arg2, GL_NONE, argmod2,=0A=
-                           arg0, GL_NONE, argmod0));=0A=
+                wrap_op3(gl_info, GL_MAD_ATI, dstreg, GL_ALPHA, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg1, GL_NONE, argmod1,=0A=
+                         arg2, GL_NONE, argmod2,=0A=
+                         arg0, GL_NONE, argmod0);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_LERP:=0A=
-                TRACE("glAlphaFragmentOp3ATI(GL_LERP_ATI, %s,          =
GL_SATURATE_BIT_ATI, %s, GL_NONE, %s, %s, GL_NONE, %s, %s, GL_NONE, =
%s)\n",=0A=
-                      debug_register(dstreg),=0A=
-                      debug_register(arg1), debug_argmod(argmod1),=0A=
-                      debug_register(arg2), debug_argmod(argmod2),=0A=
-                      debug_register(arg0), debug_argmod(argmod0));=0A=
-                GL_EXTCALL(glAlphaFragmentOp3ATI(GL_LERP_ATI, dstreg, =
GL_SATURATE_BIT_ATI,=0A=
-                                                 arg1, GL_NONE, argmod1,=0A=
-                                                 arg2, GL_NONE, argmod2,=0A=
-                                                 arg0, GL_NONE, =
argmod0));=0A=
+                wrap_op3(gl_info, GL_LERP_ATI, dstreg, GL_ALPHA, =
GL_SATURATE_BIT_ATI,=0A=
+                         arg1, GL_NONE, argmod1,=0A=
+                         arg2, GL_NONE, argmod2,=0A=
+                         arg0, GL_NONE, argmod0);=0A=
                 break;=0A=
 =0A=
             case WINED3DTOP_MODULATEINVALPHA_ADDCOLOR:=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_000F_01C95B87.3D3780D0--




More information about the wine-patches mailing list