[1/3] WineD3D: Handle input modifiers in texcrd with arb shaders

Stefan Dösinger stefan at codeweavers.com
Sat Mar 24 17:03:10 CDT 2007


Resend of the patch from earlier today, this time using 
pshader_gen_input_modifier_line to handle the modifier.
-------------- next part --------------
From 7aa727147f81a1f1941a2759dfb6f77e414ddee0 Mon Sep 17 00:00:00 2001
From: Stefan Doesinger <stefan at codeweavers.com>
Date: Sat, 24 Mar 2007 16:08:22 +0100
Subject: [PATCH] WineD3D: Handle input modifiers in texcrd with arb shaders

---
 dlls/wined3d/arb_program_shader.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 2185455..e6106cd 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -663,7 +663,6 @@ void pshader_hw_texcoord(SHADER_OPCODE_ARG* arg) {
 
     IWineD3DPixelShaderImpl* This = (IWineD3DPixelShaderImpl*) arg->shader;
     DWORD dst = arg->dst;
-    DWORD* src = arg->src;
     SHADER_BUFFER* buffer = arg->buffer;
     DWORD hex_version = This->baseShader.hex_version;
 
@@ -674,8 +673,10 @@ void pshader_hw_texcoord(SHADER_OPCODE_ARG* arg) {
         shader_addline(buffer, "MOV_SAT T%u%s, fragment.texcoord[%u];\n", reg, tmp, reg);
     } else {
         DWORD reg1 = dst & WINED3DSP_REGNUM_MASK;
-        DWORD reg2 = src[0] & WINED3DSP_REGNUM_MASK;
-        shader_addline(buffer, "MOV R%u%s, fragment.texcoord[%u];\n", reg1, tmp, reg2);
+        char reg_src[40];
+
+        pshader_gen_input_modifier_line(buffer, arg->src[0], 0, reg_src);
+        shader_addline(buffer, "MOV R%u%s, %s;\n", reg1, tmp, reg_src);
    }
 }
 
-- 
1.4.4.3



More information about the wine-patches mailing list