mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
fix DeleteAttachedSurface and add some NULL checks
This commit is contained in:
parent
442b6c3f57
commit
63c4e6ff57
@ -14,14 +14,17 @@
|
|||||||
|
|
||||||
HRESULT dds_AddAttachedSurface(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWSURFACE lpDDSurface)
|
HRESULT dds_AddAttachedSurface(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWSURFACE lpDDSurface)
|
||||||
{
|
{
|
||||||
IDirectDrawSurface_AddRef(lpDDSurface);
|
if (lpDDSurface)
|
||||||
|
|
||||||
if (g_ddraw->backbuffer && !This->backbuffer)
|
|
||||||
{
|
{
|
||||||
IDirectDrawSurfaceImpl* surface = (IDirectDrawSurfaceImpl*)lpDDSurface;
|
IDirectDrawSurface_AddRef(lpDDSurface);
|
||||||
surface->caps |= DDSCAPS_BACKBUFFER;
|
|
||||||
|
|
||||||
This->backbuffer = surface;
|
if (g_ddraw->backbuffer && !This->backbuffer)
|
||||||
|
{
|
||||||
|
IDirectDrawSurfaceImpl* surface = (IDirectDrawSurfaceImpl*)lpDDSurface;
|
||||||
|
surface->caps |= DDSCAPS_BACKBUFFER;
|
||||||
|
|
||||||
|
This->backbuffer = surface;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
@ -611,7 +614,12 @@ HRESULT dds_BltFast(IDirectDrawSurfaceImpl *This, DWORD dst_x, DWORD dst_y, LPDI
|
|||||||
|
|
||||||
HRESULT dds_DeleteAttachedSurface(IDirectDrawSurfaceImpl *This, DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSurface)
|
HRESULT dds_DeleteAttachedSurface(IDirectDrawSurfaceImpl *This, DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSurface)
|
||||||
{
|
{
|
||||||
IDirectDrawSurface_Release(lpDDSurface);
|
if (lpDDSurface)
|
||||||
|
{
|
||||||
|
IDirectDrawSurface_Release(lpDDSurface);
|
||||||
|
This->backbuffer = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user