[WINED3D 9] Trace ABS/ABSNEG modifiers.

Ivan Gyurdiev ivg231 at gmail.com
Fri Jul 7 01:29:39 CDT 2006


-------------- next part --------------
>From 1b775501b10c55446ac6ddc786805303e1b893ea Mon Sep 17 00:00:00 2001
From: root <root at shark.bluenet>
Date: Thu, 6 Jul 2006 23:32:07 -0600
Subject: [PATCH] Trace ABS/ABSNEG modifiers.
---
 dlls/wined3d/baseshader.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index b7aa45f..84c86c7 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -436,6 +436,7 @@ void shader_dump_param(
 
     DWORD reg = param & D3DSP_REGNUM_MASK;
     DWORD regtype = shader_get_regtype(param);
+    DWORD modifier = param & D3DSP_SRCMOD_MASK;
 
     /* There are some minor differences between pixel and vertex shaders */
     char pshader = shader_is_pshader_version(This->baseShader.hex_version);
@@ -449,15 +450,19 @@ void shader_dump_param(
     swizzle_reg_chars[3] = pshader? 'a': 'w';
 
     if (input) {
-        if ( ((param & D3DSP_SRCMOD_MASK) == D3DSPSM_NEG) ||
-             ((param & D3DSP_SRCMOD_MASK) == D3DSPSM_BIASNEG) ||
-             ((param & D3DSP_SRCMOD_MASK) == D3DSPSM_SIGNNEG) ||
-             ((param & D3DSP_SRCMOD_MASK) == D3DSPSM_X2NEG) )
+        if ( (modifier == D3DSPSM_NEG) ||
+             (modifier == D3DSPSM_BIASNEG) ||
+             (modifier == D3DSPSM_SIGNNEG) ||
+             (modifier == D3DSPSM_X2NEG) ||
+             (modifier == D3DSPSM_ABSNEG) )
             TRACE("-");
-        else if ((param & D3DSP_SRCMOD_MASK) == D3DSPSM_COMP)
+        else if (modifier == D3DSPSM_COMP)
             TRACE("1-");
-        else if ((param & D3DSP_SRCMOD_MASK) == D3DSPSM_NOT)
+        else if (modifier == D3DSPSM_NOT)
             TRACE("!");
+
+        if (modifier == D3DSPSM_ABS || modifier == D3DSPSM_ABSNEG) 
+            TRACE("abs(");
     }
 
     switch (regtype) {
@@ -546,9 +551,8 @@ void shader_dump_param(
         DWORD swizzle_b = (swizzle >> 4) & 0x03;
         DWORD swizzle_a = (swizzle >> 6) & 0x03;
 
-        if (0 != (param & D3DSP_SRCMOD_MASK)) {
-            DWORD mask = param & D3DSP_SRCMOD_MASK;
-            switch (mask) {
+        if (0 != modifier) {
+            switch (modifier) {
                 case D3DSPSM_NONE:    break;
                 case D3DSPSM_NEG:     break;
                 case D3DSPSM_NOT:     break;
@@ -561,8 +565,10 @@ void shader_dump_param(
                 case D3DSPSM_X2NEG:   TRACE("_x2"); break;
                 case D3DSPSM_DZ:      TRACE("_dz"); break;
                 case D3DSPSM_DW:      TRACE("_dw"); break;
+                case D3DSPSM_ABSNEG:  TRACE(")"); break;
+                case D3DSPSM_ABS:     TRACE(")"); break;
                 default:
-                    TRACE("_unknown_modifier(%#lx)", mask >> D3DSP_SRCMOD_SHIFT);
+                    TRACE("_unknown_modifier(%#lx)", modifier >> D3DSP_SRCMOD_SHIFT);
             }
         }
 
-- 
1.4.0



More information about the wine-patches mailing list