From fcfbb46d2eedcb7b7059262fa1f7bf80ac02e230 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 8 Mar 2011 16:47:22 +0100 Subject: [PATCH] gdi32: GetDIBColorTable doesn't need to be part of the DC driver interface. --- dlls/gdi32/dib.c | 23 +++++++++-------------- dlls/gdi32/driver.c | 1 - dlls/gdi32/enhmfdrv/init.c | 1 - dlls/gdi32/gdi_private.h | 1 - dlls/gdi32/mfdrv/init.c | 1 - 5 files changed, 9 insertions(+), 18 deletions(-) diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c index 0abd8334fcd..0fc21971ee3 100644 --- a/dlls/gdi32/dib.c +++ b/dlls/gdi32/dib.c @@ -453,29 +453,24 @@ UINT WINAPI SetDIBColorTable( HDC hdc, UINT startpos, UINT entries, CONST RGBQUA UINT WINAPI GetDIBColorTable( HDC hdc, UINT startpos, UINT entries, RGBQUAD *colors ) { DC * dc; + BITMAPOBJ *bitmap; UINT result = 0; if (!(dc = get_dc_ptr( hdc ))) return 0; - if (dc->funcs->pGetDIBColorTable) - result = dc->funcs->pGetDIBColorTable(dc->physDev, startpos, entries, colors); - else + if ((bitmap = GDI_GetObjPtr( dc->hBitmap, OBJ_BITMAP ))) { - BITMAPOBJ *bitmap = GDI_GetObjPtr( dc->hBitmap, OBJ_BITMAP ); - if (bitmap) + /* Check if currently selected bitmap is a DIB */ + if (bitmap->color_table) { - /* Check if currently selected bitmap is a DIB */ - if (bitmap->color_table) + if (startpos < bitmap->nb_colors) { - if (startpos < bitmap->nb_colors) - { - if (startpos + entries > bitmap->nb_colors) entries = bitmap->nb_colors - startpos; - memcpy(colors, bitmap->color_table + startpos, entries * sizeof(RGBQUAD)); - result = entries; - } + if (startpos + entries > bitmap->nb_colors) entries = bitmap->nb_colors - startpos; + memcpy(colors, bitmap->color_table + startpos, entries * sizeof(RGBQUAD)); + result = entries; } - GDI_ReleaseObj( dc->hBitmap ); } + GDI_ReleaseObj( dc->hBitmap ); } release_dc_ptr( dc ); return result; diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c index 38c4942bcd0..7966c6434ea 100644 --- a/dlls/gdi32/driver.c +++ b/dlls/gdi32/driver.c @@ -110,7 +110,6 @@ static struct graphics_driver *create_driver( HMODULE module ) GET_FUNC(GdiComment); GET_FUNC(GetBitmapBits); GET_FUNC(GetCharWidth); - GET_FUNC(GetDIBColorTable); GET_FUNC(GetDIBits); GET_FUNC(GetDeviceCaps); GET_FUNC(GetDeviceGammaRamp); diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c index 8f0b9327cde..db04f509f8a 100644 --- a/dlls/gdi32/enhmfdrv/init.c +++ b/dlls/gdi32/enhmfdrv/init.c @@ -72,7 +72,6 @@ static const DC_FUNCTIONS EMFDRV_Funcs = EMFDRV_GdiComment, /* pGdiComment */ NULL, /* pGetBitmapBits */ NULL, /* pGetCharWidth */ - NULL, /* pGetDIBColorTable */ NULL, /* pGetDIBits */ EMFDRV_GetDeviceCaps, /* pGetDeviceCaps */ NULL, /* pGetDeviceGammaRamp */ diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h index 504b120d6fd..015660f5514 100644 --- a/dlls/gdi32/gdi_private.h +++ b/dlls/gdi32/gdi_private.h @@ -114,7 +114,6 @@ typedef struct tagDC_FUNCS BOOL (CDECL *pGdiComment)(PHYSDEV,UINT,CONST BYTE*); LONG (CDECL *pGetBitmapBits)(HBITMAP,void*,LONG); BOOL (CDECL *pGetCharWidth)(PHYSDEV,UINT,UINT,LPINT); - UINT (CDECL *pGetDIBColorTable)(PHYSDEV,UINT,UINT,RGBQUAD*); INT (CDECL *pGetDIBits)(PHYSDEV,HBITMAP,UINT,UINT,LPVOID,BITMAPINFO*,UINT); INT (CDECL *pGetDeviceCaps)(PHYSDEV,INT); BOOL (CDECL *pGetDeviceGammaRamp)(PHYSDEV,LPVOID); diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c index 553c363e068..436d8ec61cd 100644 --- a/dlls/gdi32/mfdrv/init.c +++ b/dlls/gdi32/mfdrv/init.c @@ -70,7 +70,6 @@ static const DC_FUNCTIONS MFDRV_Funcs = NULL, /* pGdiComment */ NULL, /* pGetBitmapBits */ NULL, /* pGetCharWidth */ - NULL, /* pGetDIBColorTable */ NULL, /* pGetDIBits */ MFDRV_GetDeviceCaps, /* pGetDeviceCaps */ NULL, /* pGetDeviceGammaRamp */