[PATCH 1/5] wined3d: Read the PBO back into the DIB section if we have one in surface_remove_pbo().

Henri Verbeet hverbeet at codeweavers.com
Wed Dec 7 15:08:55 CST 2011


---
 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
-- 
1.7.3.4




More information about the wine-patches mailing list