Stefan Dösinger : wined3d: Don' t check WGL depth stencil limitations with FBOs.

Alexandre Julliard julliard at winehq.org
Fri Mar 26 12:11:48 CDT 2010


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu Mar 25 16:55:26 2010 +0100

wined3d: Don't check WGL depth stencil limitations with FBOs.

---

 dlls/wined3d/directx.c |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 82b2029..cc3bb55 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3196,15 +3196,24 @@ static BOOL CheckDepthStencilCapability(struct wined3d_adapter *adapter,
 
     /* Only allow depth/stencil formats */
     if (!(ds_format_desc->depth_size || ds_format_desc->stencil_size)) return FALSE;
-    /* Walk through all WGL pixel formats to find a match */
-    for (it = 0; it < adapter->nCfgs; ++it)
+
+    if (wined3d_settings.offscreen_rendering_mode == ORM_FBO)
+    {
+        /* With FBOs WGL limitations do not apply, but the format needs to be FBO attachable */
+        if (ds_format_desc->Flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) return TRUE;
+    }
+    else
     {
-        WineD3D_PixelFormat *cfg = &adapter->cfgs[it];
-        if (IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt(&adapter->gl_info, cfg, display_format_desc))
+        /* Walk through all WGL pixel formats to find a match */
+        for (it = 0; it < adapter->nCfgs; ++it)
         {
-            if (IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt(&adapter->gl_info, cfg, ds_format_desc))
+            WineD3D_PixelFormat *cfg = &adapter->cfgs[it];
+            if (IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt(&adapter->gl_info, cfg, display_format_desc))
             {
-                return TRUE;
+                if (IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt(&adapter->gl_info, cfg, ds_format_desc))
+                {
+                    return TRUE;
+                }
             }
         }
     }




More information about the wine-cvs mailing list