[PATCH] WineD3D: Handle projected+bump mapped textures in atifs=0A=

Stefan Doesinger stefan at codeweavers.com
Thu Aug 21 13:47:41 CDT 2008


=0A=
---=0A=
 dlls/wined3d/ati_fragment_shader.c |   11 ++++++++---=0A=
 1 files changed, 8 insertions(+), 3 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/ati_fragment_shader.c =
b/dlls/wined3d/ati_fragment_shader.c=0A=
index 667a95c..7707a2a 100644=0A=
--- a/dlls/wined3d/ati_fragment_shader.c=0A=
+++ b/dlls/wined3d/ati_fragment_shader.c=0A=
@@ -312,11 +312,16 @@ static GLuint gen_ati_shader(struct =
texture_stage_op op[MAX_TEXTURES], WineD3D_G=0A=
         GL_EXTCALL(glSampleMapATI(GL_REG_0_ATI + stage,=0A=
                    GL_TEXTURE0_ARB + stage,=0A=
                    GL_SWIZZLE_STR_ATI));=0A=
-        TRACE("glPassTexCoordATI(GL_REG_%d_ATI, GL_TEXTURE_%d_ARB, =
GL_SWIZZLE_STR_ATI)\n",=0A=
-              stage + 1, stage + 1);=0A=
+        if(op[stage + 1].projected =3D=3D proj_none) {=0A=
+            swizzle =3D GL_SWIZZLE_STR_ATI;=0A=
+        } else {=0A=
+            swizzle =3D GL_SWIZZLE_STQ_DQ_ATI;=0A=
+        }=0A=
+        TRACE("glPassTexCoordATI(GL_REG_%d_ATI, GL_TEXTURE_%d_ARB, =
%s)\n",=0A=
+              stage + 1, stage + 1, debug_swizzle(swizzle));=0A=
         GL_EXTCALL(glPassTexCoordATI(GL_REG_0_ATI + stage + 1,=0A=
                    GL_TEXTURE0_ARB + stage + 1,=0A=
-                   GL_SWIZZLE_STR_ATI));=0A=
+                   swizzle));=0A=
 =0A=
         /* We need GL_REG_5_ATI as a temporary register to swizzle the =
bump matrix. So we run into=0A=
          * issues if we're bump mapping on stage 4 or 5=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_001F_01C90844.81A62F00--




More information about the wine-patches mailing list