Stefan Dösinger : wined3d: Don' t render single buffered swapchains to a FBO.

Alexandre Julliard julliard at winehq.org
Wed Dec 16 09:41:36 CST 2009


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Dec 15 20:16:19 2009 +0100

wined3d: Don't render single buffered swapchains to a FBO.

---

 dlls/wined3d/device.c    |    9 +++++++--
 dlls/wined3d/swapchain.c |    1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 8e97fb7..9d603d5 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -6527,8 +6527,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRE
         RECT client_rect;
         GetClientRect(swapchain->win_handle, &client_rect);
 
-        if(swapchain->presentParms.BackBufferWidth != client_rect.right ||
-           swapchain->presentParms.BackBufferHeight != client_rect.bottom)
+        if(!swapchain->presentParms.BackBufferCount)
+        {
+            TRACE("Single buffered rendering\n");
+            swapchain->render_to_fbo = FALSE;
+        }
+        else if(swapchain->presentParms.BackBufferWidth  != client_rect.right  ||
+                swapchain->presentParms.BackBufferHeight != client_rect.bottom )
         {
             TRACE("Rendering to FBO. Backbuffer %ux%u, window %ux%u\n",
                     swapchain->presentParms.BackBufferWidth,
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 7e6c71e..d2c7ef2 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -739,6 +739,7 @@ HRESULT swapchain_init(IWineD3DSwapChainImpl *swapchain, WINED3DSURFTYPE surface
     swapchain->presentParms = *present_parameters;
 
     if (wined3d_settings.offscreen_rendering_mode == ORM_FBO
+            && present_parameters->BackBufferCount
             && (present_parameters->BackBufferWidth != client_rect.right
             || present_parameters->BackBufferHeight != client_rect.bottom))
     {




More information about the wine-cvs mailing list