Module: wine Branch: master Commit: 87bf26c34419b412a97d1654dca220fabf057f74 URL: http://source.winehq.org/git/wine.git/?a=commit;h=87bf26c34419b412a97d1654dc...
Author: Józef Kucia jkucia@codeweavers.com Date: Wed Feb 22 13:19:29 2017 +0100
wined3d: Allocate "context->texture_type" dynamically.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;