Commit fcfbb46d authored by Alexandre Julliard's avatar Alexandre Julliard

gdi32: GetDIBColorTable doesn't need to be part of the DC driver interface.

parent e6d94864
......@@ -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;
......
......@@ -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);
......
......@@ -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 */
......
......@@ -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);
......
......@@ -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 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment