Commit 29788075 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Send sampler object desctruction through the command stream.

parent a4a8693e
......@@ -33,23 +33,28 @@ ULONG CDECL wined3d_sampler_incref(struct wined3d_sampler *sampler)
return refcount;
}
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
static void wined3d_sample_destroy_object(void *object)
{
ULONG refcount = InterlockedDecrement(&sampler->refcount);
struct wined3d_sampler *sampler = object;
const struct wined3d_gl_info *gl_info;
struct wined3d_context *context;
context = context_acquire(sampler->device, NULL);
gl_info = context->gl_info;
GL_EXTCALL(glDeleteSamplers(1, &sampler->name));
context_release(context);
HeapFree(GetProcessHeap(), 0, sampler);
}
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
{
ULONG refcount = InterlockedDecrement(&sampler->refcount);
TRACE("%p decreasing refcount to %u.\n", sampler, refcount);
if (!refcount)
{
context = context_acquire(sampler->device, NULL);
gl_info = context->gl_info;
GL_EXTCALL(glDeleteSamplers(1, &sampler->name));
context_release(context);
HeapFree(GetProcessHeap(), 0, sampler);
}
wined3d_cs_emit_destroy_object(sampler->device->cs, wined3d_sample_destroy_object, sampler);
return refcount;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment