Paul Gofman : d3dx9: Reference top level parameter instead of dirty flag.

Alexandre Julliard julliard at winehq.org
Tue Apr 25 16:22:36 CDT 2017


Module: wine
Branch: master
Commit: 2be74048d6220a5439d41940c9870dac6ab5eb0c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2be74048d6220a5439d41940c9870dac6ab5eb0c

Author: Paul Gofman <gofmanp at gmail.com>
Date:   Mon Apr 24 14:36:47 2017 +0300

d3dx9: Reference top level parameter instead of dirty flag.

Signed-off-by: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d3dx9_36/d3dx9_private.h |  4 ++--
 dlls/d3dx9_36/effect.c        | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/dlls/d3dx9_36/d3dx9_private.h b/dlls/d3dx9_36/d3dx9_private.h
index 145ab80..da4564d 100644
--- a/dlls/d3dx9_36/d3dx9_private.h
+++ b/dlls/d3dx9_36/d3dx9_private.h
@@ -218,12 +218,12 @@ struct d3dx_parameter
     struct d3dx_parameter *referenced_param;
     struct d3dx_param_eval *param_eval;
 
-    DWORD *dirty_flag_ptr;
+    struct d3dx_parameter *top_level_param;
 };
 
 static inline BOOL is_param_dirty(struct d3dx_parameter *param)
 {
-    return *param->dirty_flag_ptr & PARAMETER_FLAG_DIRTY;
+    return param->top_level_param->runtime_flags & PARAMETER_FLAG_DIRTY;
 }
 
 struct d3dx9_base_effect;
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index 8dc4738..8861a05 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -1332,7 +1332,7 @@ static BOOL walk_parameter_tree(struct d3dx_parameter *param, walk_parameter_dep
 
 static void set_dirty(struct d3dx_parameter *param)
 {
-    *param->dirty_flag_ptr |= PARAMETER_FLAG_DIRTY;
+    param->top_level_param->runtime_flags |= PARAMETER_FLAG_DIRTY;
 }
 
 static void clear_dirty_params(struct d3dx9_base_effect *base)
@@ -1340,7 +1340,7 @@ static void clear_dirty_params(struct d3dx9_base_effect *base)
     unsigned int i;
 
     for (i = 0; i < base->parameter_count; ++i)
-        *base->parameters[i].dirty_flag_ptr &= ~PARAMETER_FLAG_DIRTY;
+        base->parameters[i].runtime_flags &= ~PARAMETER_FLAG_DIRTY;
 }
 
 static HRESULT d3dx9_base_effect_set_value(struct d3dx9_base_effect *base,
@@ -5878,9 +5878,9 @@ static HRESULT d3dx9_parse_resource(struct d3dx9_base_effect *base, const char *
     return hr;
 }
 
-static BOOL param_set_dirty_flag_ptr(void *dirty_flag_ptr, struct d3dx_parameter *param)
+static BOOL param_set_top_level_param(void *top_level_param, struct d3dx_parameter *param)
 {
-    param->dirty_flag_ptr = (DWORD *)dirty_flag_ptr;
+    param->top_level_param = top_level_param;
     return FALSE;
 }
 
@@ -5992,8 +5992,8 @@ static HRESULT d3dx9_parse_effect(struct d3dx9_base_effect *base, const char *da
     }
 
     for (i = 0; i < base->parameter_count; ++i)
-        walk_parameter_tree(&base->parameters[i], param_set_dirty_flag_ptr,
-                &base->parameters[i].runtime_flags);
+        walk_parameter_tree(&base->parameters[i], param_set_top_level_param,
+                &base->parameters[i]);
     return D3D_OK;
 
 err_out:




More information about the wine-cvs mailing list