Alexandre Julliard : gdi32: Get rid of DC_GetDCPtr in the palette functions .
Alexandre Julliard
julliard at winehq.org
Wed Feb 6 07:27:45 CST 2008
Module: wine
Branch: master
Commit: 1e3c47eae9026e1b314ac693aac32022432e17e1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1e3c47eae9026e1b314ac693aac32022432e17e1
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Feb 5 21:57:35 2008 +0100
gdi32: Get rid of DC_GetDCPtr in the palette functions.
---
dlls/gdi32/palette.c | 39 ++++++++++++++++++---------------------
1 files changed, 18 insertions(+), 21 deletions(-)
diff --git a/dlls/gdi32/palette.c b/dlls/gdi32/palette.c
index 54d2d06..b55a6f8 100644
--- a/dlls/gdi32/palette.c
+++ b/dlls/gdi32/palette.c
@@ -515,11 +515,11 @@ UINT WINAPI GetSystemPaletteEntries(
TRACE("hdc=%p,start=%i,count=%i\n", hdc,start,count);
- if ((dc = DC_GetDCPtr( hdc )))
+ if ((dc = get_dc_ptr( hdc )))
{
if (dc->funcs->pGetSystemPaletteEntries)
ret = dc->funcs->pGetSystemPaletteEntries( dc->physDev, start, count, entries );
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
}
return ret;
}
@@ -584,18 +584,18 @@ COLORREF WINAPI GetNearestColor(
COLORREF nearest;
DC *dc;
- if (!(dc = DC_GetDCPtr( hdc ))) return CLR_INVALID;
+ if (!(dc = get_dc_ptr( hdc ))) return CLR_INVALID;
if (dc->funcs->pGetNearestColor)
{
nearest = dc->funcs->pGetNearestColor( dc->physDev, color );
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
return nearest;
}
if (!(GetDeviceCaps(hdc, RASTERCAPS) & RC_PALETTE))
{
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
return color;
}
@@ -618,14 +618,14 @@ COLORREF WINAPI GetNearestColor(
WARN("RGB(%x) : idx %d is out of bounds, assuming NULL\n", color, index );
if (!GetPaletteEntries( hpal, 0, 1, &entry ))
{
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
return CLR_INVALID;
}
}
color = RGB( entry.peRed, entry.peGreen, entry.peBlue );
}
nearest = color & 0x00ffffff;
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
TRACE("(%06x): returning %06x\n", color, nearest );
return nearest;
@@ -662,11 +662,9 @@ static BOOL PALETTE_UnrealizeObject( HGDIOBJ handle, void *obj )
palette->funcs = NULL;
}
- if (hLastRealizedPalette == handle)
- {
+ if (InterlockedCompareExchangePointer( (void **)&hLastRealizedPalette, 0, handle ) == handle)
TRACE("unrealizing palette %p\n", handle);
- hLastRealizedPalette = 0;
- }
+
return TRUE;
}
@@ -696,7 +694,7 @@ HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg)
WARN("invalid selected palette %p\n",hpal);
return 0;
}
- if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+ if (!(dc = get_dc_ptr( hdc ))) return 0;
ret = dc->hPalette;
if (dc->funcs->pSelectPalette) hpal = dc->funcs->pSelectPalette( dc->physDev, hpal, FALSE );
if (hpal)
@@ -705,7 +703,7 @@ HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg)
if (!wBkg) hPrimaryPalette = hpal;
}
else ret = 0;
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
return ret;
}
@@ -716,7 +714,7 @@ HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg)
UINT WINAPI GDIRealizePalette( HDC hdc )
{
UINT realized = 0;
- DC* dc = DC_GetDCPtr( hdc );
+ DC* dc = get_dc_ptr( hdc );
if (!dc) return 0;
@@ -727,7 +725,7 @@ UINT WINAPI GDIRealizePalette( HDC hdc )
if (dc->funcs->pRealizeDefaultPalette)
realized = dc->funcs->pRealizeDefaultPalette( dc->physDev );
}
- else if(dc->hPalette != hLastRealizedPalette )
+ else if (InterlockedExchangePointer( (void **)&hLastRealizedPalette, dc->hPalette ) != dc->hPalette)
{
if (dc->funcs->pRealizePalette)
{
@@ -740,11 +738,10 @@ UINT WINAPI GDIRealizePalette( HDC hdc )
GDI_ReleaseObj( dc->hPalette );
}
}
- hLastRealizedPalette = dc->hPalette;
}
else TRACE(" skipping (hLastRealizedPalette = %p)\n", hLastRealizedPalette);
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
TRACE(" realized %i colors.\n", realized );
return realized;
}
@@ -760,10 +757,10 @@ UINT16 WINAPI RealizeDefaultPalette16( HDC16 hdc )
TRACE("%04x\n", hdc );
- if (!(dc = DC_GetDCPtr( HDC_32(hdc) ))) return 0;
+ if (!(dc = get_dc_ptr( HDC_32(hdc) ))) return 0;
if (dc->funcs->pRealizeDefaultPalette) ret = dc->funcs->pRealizeDefaultPalette( dc->physDev );
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
return ret;
}
@@ -772,11 +769,11 @@ UINT16 WINAPI RealizeDefaultPalette16( HDC16 hdc )
*/
BOOL16 WINAPI IsDCCurrentPalette16(HDC16 hDC)
{
- DC *dc = DC_GetDCPtr( HDC_32(hDC) );
+ DC *dc = get_dc_ptr( HDC_32(hDC) );
if (dc)
{
BOOL bRet = dc->hPalette == hPrimaryPalette;
- DC_ReleaseDCPtr( dc );
+ release_dc_ptr( dc );
return bRet;
}
return FALSE;
More information about the wine-cvs
mailing list