Henri Verbeet : wined3d: Let the context handle the draw buffer in flush_to_framebuffer_drawpixels( ).

Alexandre Julliard julliard at winehq.org
Mon Dec 14 09:51:13 CST 2009


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Sun Dec 13 22:03:59 2009 +0100

wined3d: Let the context handle the draw buffer in flush_to_framebuffer_drawpixels().

---

 dlls/wined3d/surface.c |   27 +++++++--------------------
 1 files changed, 7 insertions(+), 20 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 3d2a337..6c8bb36 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1435,16 +1435,15 @@ static void flush_to_framebuffer_drawpixels(IWineD3DSurfaceImpl *This, GLenum fm
 
     if (SUCCEEDED(IWineD3DSurface_GetContainer((IWineD3DSurface *)This, &IID_IWineD3DSwapChain, (void **)&swapchain))) {
         GLenum buffer = surface_get_gl_buffer((IWineD3DSurface *) This, (IWineD3DSwapChain *)swapchain);
-        TRACE("Unlocking %#x buffer\n", buffer);
-        glDrawBuffer(buffer);
-        checkGLcall("glDrawBuffer");
-
         IWineD3DSwapChain_Release((IWineD3DSwapChain *)swapchain);
-    } else {
+        TRACE("Unlocking %#x buffer.\n", buffer);
+        context_set_draw_buffer(context, buffer);
+    }
+    else
+    {
         /* Primary offscreen render target */
-        TRACE("Offscreen render target\n");
-        glDrawBuffer(myDevice->offscreenBuffer);
-        checkGLcall("glDrawBuffer(myDevice->offscreenBuffer)");
+        TRACE("Offscreen render target.\n");
+        context_set_draw_buffer(context, myDevice->offscreenBuffer);
     }
 
     glGetIntegerv(GL_PACK_SWAP_BYTES, &prev_store);
@@ -1511,20 +1510,8 @@ static void flush_to_framebuffer_drawpixels(IWineD3DSurfaceImpl *This, GLenum fm
     glPixelStorei(GL_UNPACK_ROW_LENGTH, skipBytes);
     checkGLcall("glPixelStorei(GL_UNPACK_ROW_LENGTH)");
 
-    if(!swapchain) {
-        glDrawBuffer(myDevice->offscreenBuffer);
-        checkGLcall("glDrawBuffer(myDevice->offscreenBuffer)");
-    } else if(swapchain->backBuffer) {
-        glDrawBuffer(GL_BACK);
-        checkGLcall("glDrawBuffer(GL_BACK)");
-    } else {
-        glDrawBuffer(GL_FRONT);
-        checkGLcall("glDrawBuffer(GL_FRONT)");
-    }
     LEAVE_GL();
     context_release(context);
-
-    return;
 }
 
 static HRESULT WINAPI IWineD3DSurfaceImpl_UnlockRect(IWineD3DSurface *iface) {




More information about the wine-cvs mailing list