Module: wine Branch: master Commit: da1b459754d1c90442e884648cac39cb03cd81b6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=da1b459754d1c90442e884648c...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Apr 15 19:21:28 2010 +0200
wined3d: Store the depth/stencil attachment as IWineD3DSurfaceImpl pointer in struct fbo_entry.
---
dlls/wined3d/context.c | 12 ++++++------ dlls/wined3d/wined3d_private.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index d7f6b40..ffb2a8c 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -308,7 +308,7 @@ static void context_check_fbo_status(struct wined3d_context *context) attachment->pow2Width, attachment->pow2Height); } } - attachment = (IWineD3DSurfaceImpl *)context->current_fbo->depth_stencil; + attachment = context->current_fbo->depth_stencil; if (attachment) { FIXME("\tDepth attachment: (%p) %s %ux%u\n", @@ -327,7 +327,7 @@ static struct fbo_entry *context_create_fbo_entry(struct wined3d_context *contex entry = HeapAlloc(GetProcessHeap(), 0, sizeof(*entry)); entry->render_targets = HeapAlloc(GetProcessHeap(), 0, gl_info->limits.buffers * sizeof(*entry->render_targets)); memcpy(entry->render_targets, device->render_targets, gl_info->limits.buffers * sizeof(*entry->render_targets)); - entry->depth_stencil = device->stencilBufferTarget; + entry->depth_stencil = (IWineD3DSurfaceImpl *)device->stencilBufferTarget; entry->attached = FALSE; entry->id = 0;
@@ -344,7 +344,7 @@ static void context_reuse_fbo_entry(struct wined3d_context *context, struct fbo_ context_clean_fbo_attachments(gl_info);
memcpy(entry->render_targets, device->render_targets, gl_info->limits.buffers * sizeof(*entry->render_targets)); - entry->depth_stencil = device->stencilBufferTarget; + entry->depth_stencil = (IWineD3DSurfaceImpl *)device->stencilBufferTarget; entry->attached = FALSE; }
@@ -374,7 +374,7 @@ static struct fbo_entry *context_find_fbo_entry(struct wined3d_context *context) { if (!memcmp(entry->render_targets, device->render_targets, gl_info->limits.buffers * sizeof(*entry->render_targets)) - && entry->depth_stencil == device->stencilBufferTarget) + && entry->depth_stencil == (IWineD3DSurfaceImpl *)device->stencilBufferTarget) { list_remove(&entry->entry); list_add_head(&context->fbo_list, &entry->entry); @@ -629,7 +629,7 @@ void context_resource_released(IWineD3DDevice *iface, IWineD3DResource *resource { UINT j;
- if (entry->depth_stencil == (IWineD3DSurface *)resource) + if (entry->depth_stencil == (IWineD3DSurfaceImpl *)resource) { list_remove(&entry->entry); list_add_head(&context->fbo_destroy_list, &entry->entry); @@ -674,7 +674,7 @@ void context_surface_update(struct wined3d_context *context, IWineD3DSurfaceImpl } }
- if (surface == (IWineD3DSurfaceImpl *)entry->depth_stencil) + if (surface == entry->depth_stencil) { TRACE("Updated surface %p is bound as depth attachment to the current FBO.\n", surface); context->rebind_fbo = TRUE; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 2a6e3ee..31ed565 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2023,7 +2023,7 @@ struct fbo_entry { struct list entry; IWineD3DSurfaceImpl **render_targets; - IWineD3DSurface *depth_stencil; + IWineD3DSurfaceImpl *depth_stencil; BOOL attached; GLuint id; };