=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Allocate "context-> texture_type" dynamically.

Alexandre Julliard julliard at winehq.org
Wed Feb 22 15:42:03 CST 2017


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Feb 22 13:19:29 2017 +0100

wined3d: Allocate "context->texture_type" dynamically.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/context.c         | 5 +++++
 dlls/wined3d/wined3d_private.h | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 67daded..d60248d 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1724,6 +1724,9 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
             ret->rev_tex_unit_map[s] = WINED3D_UNMAPPED_STAGE;
         }
     }
+    if (!(ret->texture_type = wined3d_calloc(gl_info->limits.combined_samplers,
+            sizeof(*ret->texture_type))))
+        goto out;
 
     if (!(hdc = GetDCEx(swapchain->win_handle, 0, DCX_USESTYLE | DCX_CACHE)))
     {
@@ -2018,6 +2021,7 @@ out:
     if (hdc) wined3d_release_dc(swapchain->win_handle, hdc);
     device->shader_backend->shader_free_context_data(ret);
     device->adapter->fragment_pipe->free_context_data(ret);
+    HeapFree(GetProcessHeap(), 0, ret->texture_type);
     HeapFree(GetProcessHeap(), 0, ret->free_event_queries);
     HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries);
     HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries);
@@ -2064,6 +2068,7 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont
 
     device->shader_backend->shader_free_context_data(context);
     device->adapter->fragment_pipe->free_context_data(context);
+    HeapFree(GetProcessHeap(), 0, context->texture_type);
     HeapFree(GetProcessHeap(), 0, context->fbo_key);
     HeapFree(GetProcessHeap(), 0, context->draw_buffers);
     HeapFree(GetProcessHeap(), 0, context->blit_targets);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 66c1002..c678f73 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1622,7 +1622,7 @@ struct wined3d_context
     UINT                    blit_w, blit_h;
     enum fogsource          fog_source;
     DWORD active_texture;
-    DWORD texture_type[MAX_COMBINED_SAMPLERS];
+    DWORD *texture_type;
 
     UINT instance_count;
 




More information about the wine-cvs mailing list