Henri Verbeet : wined3d: Don' t change the draw buffer in IWineD3DDeviceImpl_SetFrontBackBuffers().

Alexandre Julliard julliard at winehq.org
Wed Mar 17 12:19:04 CDT 2010


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Mar 16 19:02:19 2010 +0100

wined3d: Don't change the draw buffer in IWineD3DDeviceImpl_SetFrontBackBuffers().

This should be handled by the context's draw buffer management.

---

 dlls/wined3d/device.c |   25 +++----------------------
 1 files changed, 3 insertions(+), 22 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 4df5399..3d4a48b 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -5743,28 +5743,9 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetFrontBackBuffers(IWineD3DDevice *ifa
     if(Swapchain->backBuffer[0] != Back) {
         TRACE("Changing the back buffer from %p to %p\n", Swapchain->backBuffer, Back);
 
-        /* What to do about the context here in the case of multithreading? Not sure.
-         * This function is called by IDirect3D7::CreateDevice so in theory its initialization code
-         */
-        WARN("No active context?\n");
-
-        ENTER_GL();
-        if(!Swapchain->backBuffer[0]) {
-            /* GL was told to draw to the front buffer at creation,
-             * undo that
-             */
-            glDrawBuffer(GL_BACK);
-            checkGLcall("glDrawBuffer(GL_BACK)");
-            /* Set the backbuffer count to 1 because other code uses it to fing the back buffers */
-            Swapchain->presentParms.BackBufferCount = 1;
-        } else if (!Back) {
-            /* That makes problems - disable for now */
-            /* glDrawBuffer(GL_FRONT); */
-            checkGLcall("glDrawBuffer(GL_FRONT)");
-            /* We have lost our back buffer, set this to 0 to avoid confusing other code */
-            Swapchain->presentParms.BackBufferCount = 0;
-        }
-        LEAVE_GL();
+        /* Update the backbuffer count. */
+        if (!Swapchain->backBuffer[0]) Swapchain->presentParms.BackBufferCount = 1;
+        else if (!Back) Swapchain->presentParms.BackBufferCount = 0;
 
         if(Swapchain->backBuffer[0])
         {




More information about the wine-cvs mailing list