https://git.reactos.org/?p=reactos.git;a=commitdiff;h=773ed3502e4fc5e863a8404b954b167bc8e76148

commit 773ed3502e4fc5e863a8404b954b167bc8e76148
Author:     winesync <[email protected]>
AuthorDate: Mon Sep 21 22:40:25 2020 +0200
Commit:     Jérôme Gardou <[email protected]>
CommitDate: Thu Feb 4 16:37:01 2021 +0100

    [WINESYNC] d3dx9: Move parameter_count out of struct d3dx9_base_effect.
    
    Signed-off-by: Michael Stefaniuc <[email protected]>
    Signed-off-by: Matteo Bruni <[email protected]>
    Signed-off-by: Alexandre Julliard <[email protected]>
    
    wine commit id 58b87b0f3eb156718e297df6a64b96ff1f4e8621 by Michael 
Stefaniuc <[email protected]>
---
 dll/directx/wine/d3dx9_36/effect.c | 32 ++++++++++++++++----------------
 sdk/tools/winesync/d3dx9.cfg       |  2 +-
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/dll/directx/wine/d3dx9_36/effect.c 
b/dll/directx/wine/d3dx9_36/effect.c
index 61baa3b778e..e350b2dd58c 100644
--- a/dll/directx/wine/d3dx9_36/effect.c
+++ b/dll/directx/wine/d3dx9_36/effect.c
@@ -156,7 +156,6 @@ struct d3dx9_base_effect
 {
     struct d3dx_effect *effect;
 
-    UINT parameter_count;
     UINT technique_count;
     UINT object_count;
 
@@ -180,6 +179,7 @@ struct d3dx_effect
     LONG ref;
 
     struct d3dx9_base_effect base_effect;
+    unsigned int parameter_count;
 
     struct ID3DXEffectStateManager *manager;
     struct IDirect3DDevice9 *device;
@@ -695,7 +695,7 @@ static void d3dx9_base_effect_cleanup(struct 
d3dx9_base_effect *base)
 
     if (base->parameters)
     {
-        for (i = 0; i < base->parameter_count; ++i)
+        for (i = 0; i < base->effect->parameter_count; ++i)
             free_top_level_parameter(&base->parameters[i]);
         HeapFree(GetProcessHeap(), 0, base->parameters);
         base->parameters = NULL;
@@ -3281,7 +3281,7 @@ static HRESULT WINAPI d3dx_effect_GetDesc(ID3DXEffect 
*iface, D3DXEFFECT_DESC *d
     /* TODO: add creator and function count. */
     desc->Creator = NULL;
     desc->Functions = 0;
-    desc->Parameters = effect->base_effect.parameter_count;
+    desc->Parameters = effect->parameter_count;
     desc->Techniques = effect->base_effect.technique_count;
 
     return D3D_OK;
@@ -3333,7 +3333,7 @@ static D3DXHANDLE WINAPI 
d3dx_effect_GetParameter(ID3DXEffect *iface, D3DXHANDLE
 
     if (!parameter)
     {
-        if (index < effect->base_effect.parameter_count)
+        if (index < effect->parameter_count)
         {
             TRACE("Returning parameter %p.\n", 
&effect->base_effect.parameters[index]);
             return 
get_parameter_handle(&effect->base_effect.parameters[index].param);
@@ -3387,7 +3387,7 @@ static D3DXHANDLE WINAPI 
d3dx_effect_GetParameterBySemantic(ID3DXEffect *iface,
 
     if (!parameter)
     {
-        for (i = 0; i < effect->base_effect.parameter_count; ++i)
+        for (i = 0; i < effect->parameter_count; ++i)
         {
             temp_param = &effect->base_effect.parameters[i].param;
 
@@ -3446,7 +3446,7 @@ static D3DXHANDLE WINAPI 
d3dx_effect_GetParameterElement(ID3DXEffect *iface, D3D
 
     if (!param)
     {
-        if (index < effect->base_effect.parameter_count)
+        if (index < effect->parameter_count)
         {
             TRACE("Returning parameter %p.\n", 
&effect->base_effect.parameters[index]);
             return 
get_parameter_handle(&effect->base_effect.parameters[index].param);
@@ -4367,7 +4367,7 @@ static HRESULT WINAPI 
d3dx_effect_OnLostDevice(ID3DXEffect *iface)
 
     TRACE("iface %p.\n", iface);
 
-    for (i = 0; i < base->parameter_count; ++i)
+    for (i = 0; i < effect->parameter_count; ++i)
         walk_parameter_tree(&base->parameters[i].param, param_on_lost_device, 
NULL);
 
     return D3D_OK;
@@ -6147,9 +6147,9 @@ static HRESULT d3dx_parse_resource(struct d3dx_effect 
*effect, const char *data,
         struct d3dx_parameter *parameter;
         struct d3dx_sampler *sampler;
 
-        if (index >= base->parameter_count)
+        if (index >= effect->parameter_count)
         {
-            FIXME("Index out of bounds: index %u >= parameter_count %u\n", 
index, base->parameter_count);
+            FIXME("Index out of bounds: index %u >= parameter_count %u\n", 
index, effect->parameter_count);
             return E_FAIL;
         }
 
@@ -6312,8 +6312,8 @@ static HRESULT d3dx_parse_effect(struct d3dx_effect 
*effect, const char *data, U
     HRESULT hr;
     UINT i;
 
-    read_dword(&ptr, &base->parameter_count);
-    TRACE("Parameter count: %u.\n", base->parameter_count);
+    read_dword(&ptr, &effect->parameter_count);
+    TRACE("Parameter count: %u.\n", effect->parameter_count);
 
     read_dword(&ptr, &base->technique_count);
     TRACE("Technique count: %u.\n", base->technique_count);
@@ -6332,10 +6332,10 @@ static HRESULT d3dx_parse_effect(struct d3dx_effect 
*effect, const char *data, U
     }
 
     wine_rb_init(&base->param_tree, param_rb_compare);
-    if (base->parameter_count)
+    if (effect->parameter_count)
     {
         base->parameters = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
-                sizeof(*base->parameters) * base->parameter_count);
+                sizeof(*base->parameters) * effect->parameter_count);
         if (!base->parameters)
         {
             ERR("Out of memory.\n");
@@ -6343,7 +6343,7 @@ static HRESULT d3dx_parse_effect(struct d3dx_effect 
*effect, const char *data, U
             goto err_out;
         }
 
-        for (i = 0; i < base->parameter_count; ++i)
+        for (i = 0; i < effect->parameter_count; ++i)
         {
             param_set_magic_number(&base->parameters[i].param);
             hr = d3dx_parse_effect_parameter(effect, &base->parameters[i], 
data, &ptr, base->objects);
@@ -6416,7 +6416,7 @@ static HRESULT d3dx_parse_effect(struct d3dx_effect 
*effect, const char *data, U
         }
     }
 
-    for (i = 0; i < base->parameter_count; ++i)
+    for (i = 0; i < effect->parameter_count; ++i)
     {
         if (FAILED(hr = d3dx_pool_sync_shared_parameter(base->pool, 
&base->parameters[i])))
             goto err_out;
@@ -6439,7 +6439,7 @@ err_out:
 
     if (base->parameters)
     {
-        for (i = 0; i < base->parameter_count; ++i)
+        for (i = 0; i < effect->parameter_count; ++i)
         {
             free_top_level_parameter(&base->parameters[i]);
         }
diff --git a/sdk/tools/winesync/d3dx9.cfg b/sdk/tools/winesync/d3dx9.cfg
index d497f60f37a..ffd069c7bb9 100644
--- a/sdk/tools/winesync/d3dx9.cfg
+++ b/sdk/tools/winesync/d3dx9.cfg
@@ -15,4 +15,4 @@ files: {include/d3dx9.h: sdk/include/dxsdk/d3dx9.h, 
include/d3dx9anim.h: sdk/inc
   include/d3dx9mesh.h: sdk/include/dxsdk/d3dx9mesh.h, include/d3dx9of.h: 
sdk/include/dxsdk/d3dx9of.h,
   include/d3dx9shader.h: sdk/include/dxsdk/d3dx9shader.h, 
include/d3dx9shape.h: sdk/include/dxsdk/d3dx9shape.h,
   include/d3dx9tex.h: sdk/include/dxsdk/d3dx9tex.h, include/d3dx9xof.h: 
sdk/include/dxsdk/d3dx9xof.h}
-tags: {wine: 3899e79fc429b0c668166ccc98efbd60f5c63aa4}
+tags: {wine: 58b87b0f3eb156718e297df6a64b96ff1f4e8621}

Reply via email to