addref on GetClipper and GetPalette
This commit is contained in:
parent
e5652ba849
commit
a8359e8e77
1 changed files with 14 additions and 10 deletions
|
@ -776,7 +776,15 @@ HRESULT dds_GetClipper(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWCLIPPER FAR* lp
|
|||
if (lpClipper)
|
||||
*lpClipper = (LPDIRECTDRAWCLIPPER)This->clipper;
|
||||
|
||||
if (This->clipper)
|
||||
{
|
||||
IDirectDrawClipper_AddRef(This->clipper);
|
||||
return DD_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
return DDERR_NOCLIPPERATTACHED;
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT dds_GetColorKey(IDirectDrawSurfaceImpl *This, DWORD flags, LPDDCOLORKEY colorKey)
|
||||
|
@ -826,10 +834,12 @@ HRESULT dds_GetDC(IDirectDrawSurfaceImpl *This, HDC FAR *lpHDC)
|
|||
|
||||
HRESULT dds_GetPalette(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWPALETTE FAR *lplpDDPalette)
|
||||
{
|
||||
if (lplpDDPalette)
|
||||
*lplpDDPalette = (LPDIRECTDRAWPALETTE)This->palette;
|
||||
|
||||
if (This->palette)
|
||||
{
|
||||
IDirectDrawPalette_AddRef(This->palette);
|
||||
return DD_OK;
|
||||
}
|
||||
else
|
||||
|
@ -919,20 +929,14 @@ HRESULT dds_SetClipper(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWCLIPPER lpClipp
|
|||
|
||||
HRESULT dds_SetPalette(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWPALETTE lpDDPalette)
|
||||
{
|
||||
if (!lpDDPalette)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
if (lpDDPalette)
|
||||
IDirectDrawPalette_AddRef(lpDDPalette);
|
||||
|
||||
if (This->palette)
|
||||
{
|
||||
IDirectDrawPalette_Release(This->palette);
|
||||
}
|
||||
|
||||
EnterCriticalSection(&g_ddraw->cs);
|
||||
|
||||
This->palette = (IDirectDrawPaletteImpl*)lpDDPalette;
|
||||
|
||||
LeaveCriticalSection(&g_ddraw->cs);
|
||||
|
||||
return DD_OK;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue