Henri Verbeet : wined3d: Handle unpack row length inside surface_upload_data().

Alexandre Julliard julliard at winehq.org
Fri Jun 10 11:16:19 CDT 2011


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu Jun  9 20:40:47 2011 +0200

wined3d: Handle unpack row length inside surface_upload_data().

---

 dlls/wined3d/surface.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index ad217fc..06f38b0 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2199,6 +2199,9 @@ static void surface_upload_data(struct wined3d_surface *surface, const struct wi
         data = NULL;
     }
 
+    /* Make sure the correct pitch is used */
+    glPixelStorei(GL_UNPACK_ROW_LENGTH, width);
+
     if (format->flags & WINED3DFMT_FLAG_COMPRESSED)
     {
         TRACE("Calling glCompressedTexSubImage2DARB.\n");
@@ -2216,6 +2219,9 @@ static void surface_upload_data(struct wined3d_surface *surface, const struct wi
         checkGLcall("glTexSubImage2D");
     }
 
+    /* Restore the default pitch */
+    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
+
     if (surface->flags & SFLAG_PBO)
     {
         GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0));
@@ -6159,19 +6165,9 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD flag, const
                 mem = surface->resource.allocatedMemory;
             }
 
-            /* Make sure the correct pitch is used */
-            ENTER_GL();
-            glPixelStorei(GL_UNPACK_ROW_LENGTH, width);
-            LEAVE_GL();
-
             if (mem || (surface->flags & SFLAG_PBO))
                 surface_upload_data(surface, gl_info, &format, srgb, mem);
 
-            /* Restore the default pitch */
-            ENTER_GL();
-            glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
-            LEAVE_GL();
-
             if (context) context_release(context);
 
             /* Don't delete PBO memory */




More information about the wine-cvs mailing list