[PATCH 3/5] wined3d: Handle unpack row length inside surface_upload_data().
Henri Verbeet
hverbeet at codeweavers.com
Thu Jun 9 13:40:47 CDT 2011
---
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 */
--
1.7.3.4
More information about the wine-patches
mailing list