wined3d: Do not invalidate the sysmem copy if a pbo exists.

This commit is contained in:
Stefan Dösinger 2007-09-14 17:46:19 +02:00 committed by Alexandre Julliard
parent f42f228621
commit 3961491d15
1 changed files with 5 additions and 6 deletions

View File

@ -750,12 +750,11 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LockRect(IWineD3DSurface *iface, WINED
/* Mark the surface locked */
This->Flags |= SFLAG_LOCKED;
/* Whatever surface we have, make sure that there is memory allocated for the downloaded copy */
if(!This->resource.allocatedMemory) {
/* In case of PBOs allocatedMemory should be zero. */
if(!(This->Flags & SFLAG_PBO))
This->resource.allocatedMemory = HeapAlloc(GetProcessHeap() ,0 , This->resource.size + 4);
/* Whatever surface we have, make sure that there is memory allocated for the downloaded copy,
* or a pbo to map
*/
if(!(This->resource.allocatedMemory || This->Flags & SFLAG_PBO)) {
This->resource.allocatedMemory = HeapAlloc(GetProcessHeap() ,0 , This->resource.size + 4);
This->Flags &= ~SFLAG_INSYSMEM; /* This is the marker that surface data has to be downloaded */
}