Henri Verbeet : wined3d: Only report a broken pitch in wined3d_surface_map( ).

Alexandre Julliard julliard at winehq.org
Tue Nov 8 12:23:08 CST 2011


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Nov  7 21:19:57 2011 +0100

wined3d: Only report a broken pitch in wined3d_surface_map().

We'd like the correct pitch for internal calls to wined3d_surface_get_pitch().

---

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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 1a44f72..4529ad0 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3096,7 +3096,7 @@ DWORD CDECL wined3d_surface_get_pitch(const struct wined3d_surface *surface)
 
     TRACE("surface %p.\n", surface);
 
-    if ((format->flags & (WINED3DFMT_FLAG_BLOCKS | WINED3DFMT_FLAG_BROKEN_PITCH)) == WINED3DFMT_FLAG_BLOCKS)
+    if (format->flags & WINED3DFMT_FLAG_BLOCKS)
     {
         /* Since compressed formats are block based, pitch means the amount of
          * bytes to the next row of block rather than the next row of pixels. */
@@ -3743,7 +3743,10 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
 
     surface->surface_ops->surface_map(surface, rect, flags);
 
-    locked_rect->Pitch = wined3d_surface_get_pitch(surface);
+    if (format->flags & WINED3DFMT_FLAG_BROKEN_PITCH)
+        locked_rect->Pitch = surface->resource.width * format->byte_count;
+    else
+        locked_rect->Pitch = wined3d_surface_get_pitch(surface);
 
     if (!rect)
     {




More information about the wine-cvs mailing list