From 9b60e63fd31877c7350c757bf4e005eb81f658e2 Mon Sep 17 00:00:00 2001 From: Jesse Allen Date: Tue, 20 Nov 2007 12:48:19 -0700 Subject: [PATCH] gdi32: Pass color table to drivers with SelectBitmap --- dlls/gdi32/bitmap.c | 3 ++- dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 3 ++- dlls/gdi32/enhmfdrv/objects.c | 2 +- dlls/gdi32/gdi_private.h | 2 +- dlls/gdi32/mfdrv/metafiledrv.h | 3 ++- dlls/gdi32/mfdrv/objects.c | 2 +- dlls/wineps.drv/objects.c | 3 ++- dlls/wineps.drv/wineps.drv.spec | 2 +- dlls/winex11.drv/bitmap.c | 3 ++- dlls/winex11.drv/winex11.drv.spec | 2 +- 10 files changed, 15 insertions(+), 10 deletions(-) diff --git a/dlls/gdi32/bitmap.c b/dlls/gdi32/bitmap.c index c9bbca4ebb5..cd000e77580 100644 --- a/dlls/gdi32/bitmap.c +++ b/dlls/gdi32/bitmap.c @@ -633,7 +633,8 @@ static HGDIOBJ BITMAP_SelectObject( HGDIOBJ handle, HDC hdc ) physDev = dc->physDev; } - if (funcs->pSelectBitmap) handle = funcs->pSelectBitmap( physDev, handle ); + if (funcs->pSelectBitmap) handle = funcs->pSelectBitmap( physDev, handle, bitmap->color_table, + bitmap->nb_colors ); if (handle) { diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h index f1c81a2cabe..7bd14018584 100644 --- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h +++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h @@ -117,7 +117,8 @@ extern INT EMFDRV_ScaleViewportExt( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom ) DECLSPEC_HIDDEN; extern INT EMFDRV_ScaleWindowExt( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom ) DECLSPEC_HIDDEN; -extern HBITMAP EMFDRV_SelectBitmap( PHYSDEV dev, HBITMAP handle ) DECLSPEC_HIDDEN; +extern HBITMAP EMFDRV_SelectBitmap( PHYSDEV dev, HBITMAP handle, + RGBQUAD *color_table, UINT nb_colors ) DECLSPEC_HIDDEN; extern HBRUSH EMFDRV_SelectBrush( PHYSDEV dev, HBRUSH handle ) DECLSPEC_HIDDEN; extern BOOL EMFDRV_SelectClipPath( PHYSDEV dev, INT iMode ) DECLSPEC_HIDDEN; extern HFONT EMFDRV_SelectFont( PHYSDEV dev, HFONT handle, HANDLE gdiFont ) DECLSPEC_HIDDEN; diff --git a/dlls/gdi32/enhmfdrv/objects.c b/dlls/gdi32/enhmfdrv/objects.c index 24a89340b2b..5d69565af33 100644 --- a/dlls/gdi32/enhmfdrv/objects.c +++ b/dlls/gdi32/enhmfdrv/objects.c @@ -99,7 +99,7 @@ BOOL EMFDRV_DeleteObject( PHYSDEV dev, HGDIOBJ obj ) /*********************************************************************** * EMFDRV_SelectBitmap */ -HBITMAP EMFDRV_SelectBitmap( PHYSDEV dev, HBITMAP hbitmap ) +HBITMAP EMFDRV_SelectBitmap( PHYSDEV dev, HBITMAP hbitmap, RGBQUAD *color_table, UINT nb_colors ) { return 0; } diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h index 1a271a60768..e25a0844bd9 100644 --- a/dlls/gdi32/gdi_private.h +++ b/dlls/gdi32/gdi_private.h @@ -175,7 +175,7 @@ typedef struct tagDC_FUNCS INT (*pSaveDC)(PHYSDEV); INT (*pScaleViewportExt)(PHYSDEV,INT,INT,INT,INT); INT (*pScaleWindowExt)(PHYSDEV,INT,INT,INT,INT); - HBITMAP (*pSelectBitmap)(PHYSDEV,HBITMAP); + HBITMAP (*pSelectBitmap)(PHYSDEV,HBITMAP,RGBQUAD*,UINT); HBRUSH (*pSelectBrush)(PHYSDEV,HBRUSH); BOOL (*pSelectClipPath)(PHYSDEV,INT); HFONT (*pSelectFont)(PHYSDEV,HFONT,HANDLE); diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h index 67c1d66cecb..a5e9166c6a0 100644 --- a/dlls/gdi32/mfdrv/metafiledrv.h +++ b/dlls/gdi32/mfdrv/metafiledrv.h @@ -120,7 +120,8 @@ extern INT MFDRV_ScaleViewportExt( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom ) DECLSPEC_HIDDEN; extern INT MFDRV_ScaleWindowExt( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom ) DECLSPEC_HIDDEN; -extern HBITMAP MFDRV_SelectBitmap( PHYSDEV dev, HBITMAP handle ) DECLSPEC_HIDDEN; +extern HBITMAP MFDRV_SelectBitmap( PHYSDEV dev, HBITMAP handle, + RGBQUAD *color_table, UINT nb_colors ) DECLSPEC_HIDDEN; extern HBRUSH MFDRV_SelectBrush( PHYSDEV dev, HBRUSH handle ) DECLSPEC_HIDDEN; extern BOOL MFDRV_SelectClipPath( PHYSDEV dev, INT iMode ) DECLSPEC_HIDDEN; extern HFONT MFDRV_SelectFont( PHYSDEV dev, HFONT handle, HANDLE gdiFont ) DECLSPEC_HIDDEN; diff --git a/dlls/gdi32/mfdrv/objects.c b/dlls/gdi32/mfdrv/objects.c index a43598bef5b..2d689e5e4c0 100644 --- a/dlls/gdi32/mfdrv/objects.c +++ b/dlls/gdi32/mfdrv/objects.c @@ -137,7 +137,7 @@ static BOOL MFDRV_SelectObject( PHYSDEV dev, INT16 index) /*********************************************************************** * MFDRV_SelectBitmap */ -HBITMAP MFDRV_SelectBitmap( PHYSDEV dev, HBITMAP hbitmap ) +HBITMAP MFDRV_SelectBitmap( PHYSDEV dev, HBITMAP hbitmap, RGBQUAD *color_table, UINT nb_colors ) { return 0; } diff --git a/dlls/wineps.drv/objects.c b/dlls/wineps.drv/objects.c index 274e7f9ddf1..253b581b158 100644 --- a/dlls/wineps.drv/objects.c +++ b/dlls/wineps.drv/objects.c @@ -26,7 +26,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv); /*********************************************************************** * SelectBitmap (WINEPS.@) */ -HBITMAP PSDRV_SelectBitmap( PSDRV_PDEVICE *physDev, HBITMAP hbitmap ) +HBITMAP PSDRV_SelectBitmap( PSDRV_PDEVICE *physDev, HBITMAP hbitmap, RGBQUAD *color_table, + UINT nb_colors ) { FIXME("stub\n"); return 0; diff --git a/dlls/wineps.drv/wineps.drv.spec b/dlls/wineps.drv/wineps.drv.spec index 1d3f20c7af3..d88424749ee 100644 --- a/dlls/wineps.drv/wineps.drv.spec +++ b/dlls/wineps.drv/wineps.drv.spec @@ -27,7 +27,7 @@ @ cdecl Rectangle(ptr long long long long) PSDRV_Rectangle @ cdecl ResetDC(ptr ptr) PSDRV_ResetDC @ cdecl RoundRect(ptr long long long long long long) PSDRV_RoundRect -@ cdecl SelectBitmap(ptr long) PSDRV_SelectBitmap +@ cdecl SelectBitmap(ptr long ptr long) PSDRV_SelectBitmap @ cdecl SelectBrush(ptr long) PSDRV_SelectBrush @ cdecl SelectFont(ptr long long) PSDRV_SelectFont @ cdecl SelectPen(ptr long) PSDRV_SelectPen diff --git a/dlls/winex11.drv/bitmap.c b/dlls/winex11.drv/bitmap.c index fffcab1727f..ce0559aefd9 100644 --- a/dlls/winex11.drv/bitmap.c +++ b/dlls/winex11.drv/bitmap.c @@ -69,7 +69,8 @@ void X11DRV_BITMAP_Init(void) /*********************************************************************** * SelectBitmap (X11DRV.@) */ -HBITMAP X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap ) +HBITMAP X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, RGBQUAD *color_table, + UINT nb_colors ) { X_PHYSBITMAP *physBitmap; BITMAP bitmap; diff --git a/dlls/winex11.drv/winex11.drv.spec b/dlls/winex11.drv/winex11.drv.spec index 87db8412d16..eb5b2fa4fb9 100644 --- a/dlls/winex11.drv/winex11.drv.spec +++ b/dlls/winex11.drv/winex11.drv.spec @@ -40,7 +40,7 @@ @ cdecl RealizePalette(ptr long long) X11DRV_RealizePalette @ cdecl Rectangle(ptr long long long long) X11DRV_Rectangle @ cdecl RoundRect(ptr long long long long long long) X11DRV_RoundRect -@ cdecl SelectBitmap(ptr long) X11DRV_SelectBitmap +@ cdecl SelectBitmap(ptr long ptr long) X11DRV_SelectBitmap @ cdecl SelectBrush(ptr long) X11DRV_SelectBrush @ cdecl SelectFont(ptr long long) X11DRV_SelectFont @ cdecl SelectPen(ptr long) X11DRV_SelectPen -- 2.11.4.GIT