Module: wine Branch: master Commit: 2be74048d6220a5439d41940c9870dac6ab5eb0c URL: http://source.winehq.org/git/wine.git/?a=commit;h=2be74048d6220a5439d41940c9...
Author: Paul Gofman gofmanp@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@gmail.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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: