Henri Verbeet : wined3d: Read the PBO back into the DIB section if we have one in surface_remove_pbo ().

Alexandre Julliard julliard at winehq.org
Thu Dec 8 13:43:38 CST 2011


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Dec  7 22:08:55 2011 +0100

wined3d: Read the PBO back into the DIB section if we have one in surface_remove_pbo().

---

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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index c49c0fb..e7ae65b 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1767,7 +1767,11 @@ HRESULT CDECL wined3d_surface_get_render_target_data(struct wined3d_surface *sur
 /* Context activation is done by the caller. */
 static void surface_remove_pbo(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info)
 {
-    if (!surface->resource.heapMemory)
+    if (surface->flags & SFLAG_DIBSECTION)
+    {
+        surface->resource.allocatedMemory = surface->dib.bitmap_data;
+    }
+    else if (!surface->resource.heapMemory)
     {
         surface->resource.heapMemory = HeapAlloc(GetProcessHeap(), 0, surface->resource.size + RESOURCE_ALIGNMENT);
         surface->resource.allocatedMemory = (BYTE *)(((ULONG_PTR)surface->resource.heapMemory




More information about the wine-cvs mailing list