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

This commit is contained in:
Henri Verbeet 2011-12-07 22:08:55 +01:00 committed by Alexandre Julliard
parent fd230c5d15
commit 56e3e05e57
1 changed files with 5 additions and 1 deletions

View File

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