Stefan Dösinger : wined3d: Release the memory in IWineGDISurface::PrivateSetup before calling GetDC.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 30 05:56:45 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 21218c8587be416f6bf4c6d546351961f14239b7
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=21218c8587be416f6bf4c6d546351961f14239b7
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Mon May 29 10:53:43 2006 +0200
wined3d: Release the memory in IWineGDISurface::PrivateSetup before calling GetDC.
---
dlls/wined3d/surface_gdi.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/surface_gdi.c b/dlls/wined3d/surface_gdi.c
index 3b25ff4..b84bc25 100644
--- a/dlls/wined3d/surface_gdi.c
+++ b/dlls/wined3d/surface_gdi.c
@@ -1459,13 +1459,20 @@ IWineGDISurfaceImpl_PrivateSetup(IWineD3
HRESULT hr;
HDC hdc;
+ /* Sysmem textures have memory already allocated -
+ * release it, this avoids an unnecessary memcpy
+ */
+ HeapFree(GetProcessHeap(), 0, This->resource.allocatedMemory);
+ This->resource.allocatedMemory = NULL;
+
/* We don't mind the nonpow2 stuff in GDI */
+ This->resource.size = This->currentDesc.Width * D3DFmtGetBpp(This->resource.wineD3DDevice, This->resource.format) * This->currentDesc.Width;
This->pow2Size = This->resource.size;
This->pow2Width = This->currentDesc.Width;
This->pow2Height = This->currentDesc.Height;
This->Flags &= ~SFLAG_NONPOW2;
- /* Call GetDC to create a DIB section. We will use that
+ /* Call GetDC to create a DIB section. We will use that
* DIB section for rendering
*
* Release the DC afterwards to allow the app to use it
More information about the wine-cvs
mailing list