Module: wine Branch: master Commit: 9f3e6a20e81546979e6a2fae41d15897ade9aa46 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9f3e6a20e81546979e6a2fae41...
Author: Henri Verbeet hverbeet@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 */