mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 14:14:47 +01:00
don't use HeapAlloc in EnumAttachedSurfaces
This commit is contained in:
parent
616bf915c4
commit
a4c30f7ad8
@ -623,12 +623,12 @@ HRESULT __stdcall ddraw_surface_EnumAttachedSurfaces(IDirectDrawSurfaceImpl *Thi
|
||||
printf("IDirectDrawSurface::EnumAttachedSurfaces(This=%p, lpContext=%p, lpEnumSurfacesCallback=%p)\n", This, lpContext, lpEnumSurfacesCallback);
|
||||
|
||||
/* this is not actually complete, but Carmageddon seems to call EnumAttachedSurfaces instead of GetSurfaceDesc to get the main surface description */
|
||||
static LPDDSURFACEDESC lpDDSurfaceDesc;
|
||||
lpDDSurfaceDesc = (LPDDSURFACEDESC)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDSURFACEDESC));
|
||||
ddraw_surface_GetSurfaceDesc(This, lpDDSurfaceDesc);
|
||||
static DDSURFACEDESC ddSurfaceDesc;
|
||||
memset(&ddSurfaceDesc, 0, sizeof(DDSURFACEDESC));
|
||||
|
||||
ddraw_surface_GetSurfaceDesc(This, &ddSurfaceDesc);
|
||||
This->caps |= DDSCAPS_BACKBUFFER; // Nox hack
|
||||
lpEnumSurfacesCallback((LPDIRECTDRAWSURFACE)This, lpDDSurfaceDesc, lpContext);
|
||||
HeapFree(GetProcessHeap(), 0, lpDDSurfaceDesc);
|
||||
lpEnumSurfacesCallback((LPDIRECTDRAWSURFACE)This, &ddSurfaceDesc, lpContext);
|
||||
|
||||
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && (This->caps & DDSCAPS_FLIP) && !(This->caps & DDSCAPS_BACKBUFFER))
|
||||
ddraw_surface_AddRef(This);
|
||||
|
Loading…
x
Reference in New Issue
Block a user