Fix introduced regression in shader_glsl_mnxn and vshader_hw_mnxn

Kovács András andras at csevego.net
Mon Oct 30 13:27:01 CST 2006


Fix introduced regression in shader_glsl_mnxn and vshader_hw_mnxn
This patch fixes the regression, that my previous (D3DSIO_MOVA) patch
caused. Flatout 2 is working now as before.
-- 
------------------
andras
NetClub
Lamarr
csevego.net
andras at csevego.net
------------------
-------------- next part --------------
From 98d8f1e11d4bfc4350d099e6f5c36ddb59c1d5c1 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A1s_Kov=C3=A1cs?= <andras at debian.sth.sze.hu>
Date: Mon, 30 Oct 2006 20:12:58 +0100
Subject: [PATCH] Fix introduced regression in shader_glsl_mnxn and vshader_hw_mnxn
---
 dlls/wined3d/arb_program_shader.c |   10 +++++-----
 dlls/wined3d/glsl_shader.c        |   10 +++++-----
 dlls/wined3d/vertexshader.c       |    3 ++-
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index abc9c5c..736edde 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -854,23 +854,23 @@ void vshader_hw_mnxn(SHADER_OPCODE_ARG* 
     switch(arg->opcode->opcode) {
     case WINED3DSIO_M4x4:
         nComponents = 4;
-        tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP4];
+        tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP4);
         break;
     case WINED3DSIO_M4x3:
         nComponents = 3;
-        tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP4];
+        tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP4);
         break;
     case WINED3DSIO_M3x4:
         nComponents = 4;
-        tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];
+        tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP3);
         break;
     case WINED3DSIO_M3x3:
         nComponents = 3;
-        tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];
+        tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP3);
         break;
     case WINED3DSIO_M3x2:
         nComponents = 2;
-        tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];
+        tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP3);
         break;
     default:
         break;
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 0eb8847..86d9fc9 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -1140,23 +1140,23 @@ void shader_glsl_mnxn(SHADER_OPCODE_ARG*
     switch(arg->opcode->opcode) {
         case WINED3DSIO_M4x4:
             nComponents = 4;
-            tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP4];
+            tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP4);
             break;
         case WINED3DSIO_M4x3:
             nComponents = 3;
-            tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP4];
+            tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP4);
             break;
         case WINED3DSIO_M3x4:
             nComponents = 4;
-            tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];
+            tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP3);
             break;
         case WINED3DSIO_M3x3:
             nComponents = 3;
-            tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];
+            tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP3);
             break;
         case WINED3DSIO_M3x2:
             nComponents = 2;
-            tmpArg.opcode = &IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];
+            tmpArg.opcode = shader_get_opcode(arg->shader, WINED3DSIO_DP3);
             break;
         default:
             break;
diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c
index d7fcc96..4dac214 100644
--- a/dlls/wined3d/vertexshader.c
+++ b/dlls/wined3d/vertexshader.c
@@ -473,7 +473,8 @@ static void vshader_texldl(WINED3DSHADER
 }
 
 CONST SHADER_OPCODE IWineD3DVertexShaderImpl_shader_ins[] = {
-
+    /* This table is not order or position dependent. */
+    
     /* Arithmetic */ 
     {WINED3DSIO_NOP,  "nop",  "NOP", 0, 0, vshader_nop,  vshader_hw_map2gl, NULL, 0, 0},
     {WINED3DSIO_MOV,  "mov",  "MOV", 1, 2, vshader_mov,  vshader_hw_map2gl, shader_glsl_mov, 0, 0},
-- 
1.4.1.1



More information about the wine-patches mailing list