Henri Verbeet : wined3d: Store the depth/ stencil attachment as IWineD3DSurfaceImpl pointer in struct fbo_entry.

Alexandre Julliard julliard at winehq.org
Fri Apr 16 10:56:01 CDT 2010


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

Author: Henri Verbeet <hverbeet at 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;
 };




More information about the wine-cvs mailing list