Implement D3DSIO_MOVA in ARB backend

Kovács András andras at csevego.net
Tue Oct 24 21:32:12 CDT 2006


Implement D3DSIO_MOVA in ARB backend. This is needed if we want to play with 
psiops with ARB backend.
-- 
------------------
andras
NetClub
Lamarr
csevego.net
andras at csevego.net
------------------
-------------- next part --------------
From f7bccb2b86c8d2182365bb95e728e6df9e723b95 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A1s_Kov=C3=A1cs?= <andras at debian.sth.sze.hu>
Date: Wed, 25 Oct 2006 04:28:06 +0200
Subject: [PATCH] Implement D3DSIO_MOVA in ARB backend
---
 dlls/wined3d/arb_program_shader.c |    2 +-
 dlls/wined3d/vertexshader.c       |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index d57706b..abc9c5c 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -896,7 +896,7 @@ void vshader_hw_map2gl(SHADER_OPCODE_ARG
     char tmpLine[256];
     unsigned int i;
 
-    if (curOpcode->opcode == WINED3DSIO_MOV && dst_regtype == WINED3DSPR_ADDR)
+    if ((curOpcode->opcode == WINED3DSIO_MOV && dst_regtype == WINED3DSPR_ADDR) || curOpcode->opcode == WINED3DSIO_MOVA)
         strcpy(tmpLine, "ARL");
     else
         strcpy(tmpLine, curOpcode->glname);
diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c
index d48be44..c157c39 100644
--- a/dlls/wined3d/vertexshader.c
+++ b/dlls/wined3d/vertexshader.c
@@ -477,6 +477,7 @@ CONST SHADER_OPCODE IWineD3DVertexShader
     /* 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},
+    {WINED3DSIO_MOVA, "mova",  NULL, 1, 2, vshader_mova, vshader_hw_map2gl, shader_glsl_mov, WINED3DVS_VERSION(2,0), -1},
     {WINED3DSIO_ADD,  "add",  "ADD", 1, 3, vshader_add,  vshader_hw_map2gl, shader_glsl_arith, 0, 0},
     {WINED3DSIO_SUB,  "sub",  "SUB", 1, 3, vshader_sub,  vshader_hw_map2gl, shader_glsl_arith, 0, 0},
     {WINED3DSIO_MAD,  "mad",  "MAD", 1, 4, vshader_mad,  vshader_hw_map2gl, shader_glsl_mad, 0, 0},
@@ -550,7 +551,6 @@ CONST SHADER_OPCODE IWineD3DVertexShader
     {WINED3DSIO_ENDLOOP,  "endloop",  NULL, 0, 0, vshader_endloop, NULL, shader_glsl_end,    WINED3DVS_VERSION(2,0), -1},
     {WINED3DSIO_LABEL,    "label",    NULL, 0, 1, vshader_label,   NULL, shader_glsl_label,  WINED3DVS_VERSION(2,0), -1},
 
-    {WINED3DSIO_MOVA,     "mova",     GLNAME_REQUIRE_GLSL, 1, 2, vshader_mova,    NULL, shader_glsl_mov, 0, 0},
     {WINED3DSIO_SETP,     "setp",     GLNAME_REQUIRE_GLSL, 1, 3, vshader_setp,    NULL, NULL, 0, 0},
     {WINED3DSIO_TEXLDL,   "texdl",    GLNAME_REQUIRE_GLSL, 1, 2, vshader_texldl,  NULL, NULL, 0, 0},
     {0,               NULL,       NULL,   0, 0, NULL,            NULL, 0, 0}
-- 
1.4.1.1



More information about the wine-patches mailing list