Henri Verbeet : wined3d: Get rid of context_set_depth_stencil_fbo().

Alexandre Julliard julliard at winehq.org
Fri Sep 19 07:14:41 CDT 2008


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu Sep 18 14:57:53 2008 +0200

wined3d: Get rid of context_set_depth_stencil_fbo().

Integrate clearing the depth stencil attachment in context_attach_depth_stencil_fbo().

---

 dlls/wined3d/context.c |   40 ++++++++++++++++------------------------
 1 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 4d70d1d..6e93970 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -137,15 +137,23 @@ void context_attach_depth_stencil_fbo(IWineD3DDeviceImpl *This, GLenum fbo_targe
 {
     IWineD3DSurfaceImpl *depth_stencil_impl = (IWineD3DSurfaceImpl *)depth_stencil;
 
-    if (use_render_buffer && depth_stencil_impl->current_renderbuffer)
+    TRACE("Attach depth stencil %p\n", depth_stencil);
+
+    if (depth_stencil)
     {
-        GL_EXTCALL(glFramebufferRenderbufferEXT(fbo_target, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_stencil_impl->current_renderbuffer->id));
-        checkGLcall("glFramebufferRenderbufferEXT()");
-    } else {
-        context_apply_attachment_filter_states((IWineD3DDevice *)This, depth_stencil, TRUE);
+        if (use_render_buffer && depth_stencil_impl->current_renderbuffer)
+        {
+            GL_EXTCALL(glFramebufferRenderbufferEXT(fbo_target, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_stencil_impl->current_renderbuffer->id));
+            checkGLcall("glFramebufferRenderbufferEXT()");
+        } else {
+            context_apply_attachment_filter_states((IWineD3DDevice *)This, depth_stencil, TRUE);
 
-        GL_EXTCALL(glFramebufferTexture2DEXT(fbo_target, GL_DEPTH_ATTACHMENT_EXT, depth_stencil_impl->glDescription.target,
-                    depth_stencil_impl->glDescription.textureName, depth_stencil_impl->glDescription.level));
+            GL_EXTCALL(glFramebufferTexture2DEXT(fbo_target, GL_DEPTH_ATTACHMENT_EXT, depth_stencil_impl->glDescription.target,
+                        depth_stencil_impl->glDescription.textureName, depth_stencil_impl->glDescription.level));
+            checkGLcall("glFramebufferTexture2DEXT()");
+        }
+    } else {
+        GL_EXTCALL(glFramebufferTexture2DEXT(fbo_target, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, 0, 0));
         checkGLcall("glFramebufferTexture2DEXT()");
     }
 }
@@ -169,22 +177,6 @@ void context_attach_surface_fbo(IWineD3DDeviceImpl *This, GLenum fbo_target, DWO
     }
 }
 
-/* TODO: Handle stencil attachments */
-static void context_set_depth_stencil_fbo(IWineD3DDevice *iface, IWineD3DSurface *depth_stencil)
-{
-    IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
-
-    TRACE("Set depth stencil to %p\n", depth_stencil);
-
-    if (depth_stencil)
-    {
-        context_attach_depth_stencil_fbo(This, GL_FRAMEBUFFER_EXT, depth_stencil, TRUE);
-    } else {
-        GL_EXTCALL(glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, 0, 0));
-        checkGLcall("glFramebufferTexture2DEXT()");
-    }
-}
-
 static void context_check_fbo_status(IWineD3DDevice *iface)
 {
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
@@ -267,7 +259,7 @@ void context_apply_fbo_state(IWineD3DDevice *iface)
             {
                 surface_set_compatible_renderbuffer(This->stencilBufferTarget, w, h);
             }
-            context_set_depth_stencil_fbo(iface, This->stencilBufferTarget);
+            context_attach_depth_stencil_fbo(This, GL_FRAMEBUFFER_EXT, This->stencilBufferTarget, TRUE);
             context->fbo_depth_attachment = This->stencilBufferTarget;
         }
 




More information about the wine-cvs mailing list