Module: wine Branch: master Commit: 3961491d15f64f10f583a974c2672a669c6f541a URL: http://source.winehq.org/git/wine.git/?a=commit;h=3961491d15f64f10f583a974c2... Author: Stefan Dösinger <stefandoesinger(a)gmx.at> Date: Fri Sep 14 17:46:19 2007 +0200 wined3d: Do not invalidate the sysmem copy if a pbo exists. --- dlls/wined3d/surface.c | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index fd0a94b..d9a4e29 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -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 */ }