From 56e3e05e573f8952f2da1d3db3325ec5b29d22fb Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 7 Dec 2011 22:08:55 +0100 Subject: [PATCH] wined3d: Read the PBO back into the DIB section if we have one in surface_remove_pbo(). --- dlls/wined3d/surface.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index c49c0fb08c9..e7ae65b93e7 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