gdi32: Pass the full brush contents in the SelectBrush driver entry point.
This commit is contained in:
parent
20ecd97bee
commit
24ac8c66bb
|
@ -365,6 +365,10 @@ static HGDIOBJ BRUSH_SelectObject( HGDIOBJ handle, HDC hdc )
|
|||
if ((brush = GDI_GetObjPtr( handle, OBJ_BRUSH )))
|
||||
{
|
||||
PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSelectBrush );
|
||||
HBITMAP bitmap = brush->bitmap;
|
||||
BITMAPINFO *info = brush->info;
|
||||
void *bits = brush->bits.ptr;
|
||||
UINT usage = brush->usage;
|
||||
|
||||
if (brush->logbrush.lbStyle == BS_PATTERN)
|
||||
{
|
||||
|
@ -380,7 +384,7 @@ static HGDIOBJ BRUSH_SelectObject( HGDIOBJ handle, HDC hdc )
|
|||
GDI_inc_ref_count( handle );
|
||||
GDI_ReleaseObj( handle );
|
||||
|
||||
if (!physdev->funcs->pSelectBrush( physdev, handle ))
|
||||
if (!physdev->funcs->pSelectBrush( physdev, handle, bitmap, info, bits, usage ))
|
||||
{
|
||||
GDI_dec_ref_count( handle );
|
||||
}
|
||||
|
|
|
@ -117,7 +117,8 @@ extern DWORD dibdrv_PutImage( PHYSDEV dev, HBITMAP hbitmap, HRGN clip, BITMAP
|
|||
const struct gdi_image_bits *bits, struct bitblt_coords *src,
|
||||
struct bitblt_coords *dst, DWORD rop ) DECLSPEC_HIDDEN;
|
||||
extern BOOL dibdrv_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage ) DECLSPEC_HIDDEN;
|
||||
extern HPEN dibdrv_SelectPen( PHYSDEV dev, HPEN hpen ) DECLSPEC_HIDDEN;
|
||||
extern COLORREF dibdrv_SetDCBrushColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
|
||||
extern COLORREF dibdrv_SetDCPenColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -1336,7 +1336,8 @@ void update_brush_rop( dibdrv_physdev *pdev, INT rop )
|
|||
/***********************************************************************
|
||||
* dibdrv_SelectBrush
|
||||
*/
|
||||
HBRUSH dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
|
||||
HBRUSH dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage )
|
||||
{
|
||||
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSelectBrush );
|
||||
dibdrv_physdev *pdev = get_dibdrv_pdev(dev);
|
||||
|
@ -1420,7 +1421,7 @@ HBRUSH dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
|
|||
break;
|
||||
}
|
||||
|
||||
return next->funcs->pSelectBrush( next, hbrush );
|
||||
return next->funcs->pSelectBrush( next, hbrush, bitmap, info, bits, usage );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
|
|
@ -534,7 +534,8 @@ static HBITMAP nulldrv_SelectBitmap( PHYSDEV dev, HBITMAP bitmap )
|
|||
return bitmap;
|
||||
}
|
||||
|
||||
static HBRUSH nulldrv_SelectBrush( PHYSDEV dev, HBRUSH brush )
|
||||
static HBRUSH nulldrv_SelectBrush( PHYSDEV dev, HBRUSH brush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage )
|
||||
{
|
||||
return brush;
|
||||
}
|
||||
|
|
|
@ -108,7 +108,8 @@ extern BOOL EMFDRV_ScaleViewportExtEx( PHYSDEV dev, INT xNum, INT xDenom,
|
|||
extern BOOL EMFDRV_ScaleWindowExtEx( PHYSDEV dev, INT xNum, INT xDenom,
|
||||
INT yNum, INT yDenom, SIZE *size ) DECLSPEC_HIDDEN;
|
||||
extern HBITMAP EMFDRV_SelectBitmap( PHYSDEV dev, HBITMAP handle ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH EMFDRV_SelectBrush( PHYSDEV dev, HBRUSH handle ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH EMFDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage ) DECLSPEC_HIDDEN;
|
||||
extern BOOL EMFDRV_SelectClipPath( PHYSDEV dev, INT iMode ) DECLSPEC_HIDDEN;
|
||||
extern HFONT EMFDRV_SelectFont( PHYSDEV dev, HFONT handle ) DECLSPEC_HIDDEN;
|
||||
extern HPEN EMFDRV_SelectPen( PHYSDEV dev, HPEN handle ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -230,7 +230,8 @@ DWORD EMFDRV_CreateBrushIndirect( PHYSDEV dev, HBRUSH hBrush )
|
|||
/***********************************************************************
|
||||
* EMFDRV_SelectBrush
|
||||
*/
|
||||
HBRUSH EMFDRV_SelectBrush(PHYSDEV dev, HBRUSH hBrush )
|
||||
HBRUSH EMFDRV_SelectBrush( PHYSDEV dev, HBRUSH hBrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage )
|
||||
{
|
||||
EMFDRV_PDEVICE *physDev = (EMFDRV_PDEVICE*)dev;
|
||||
EMRSELECTOBJECT emr;
|
||||
|
|
|
@ -103,7 +103,8 @@ extern INT MFDRV_SaveDC( PHYSDEV dev ) DECLSPEC_HIDDEN;
|
|||
extern BOOL MFDRV_ScaleViewportExtEx( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size ) DECLSPEC_HIDDEN;
|
||||
extern BOOL MFDRV_ScaleWindowExtEx( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size ) DECLSPEC_HIDDEN;
|
||||
extern HBITMAP MFDRV_SelectBitmap( PHYSDEV dev, HBITMAP handle ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH MFDRV_SelectBrush( PHYSDEV dev, HBRUSH handle ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH MFDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage ) DECLSPEC_HIDDEN;
|
||||
extern BOOL MFDRV_SelectClipPath( PHYSDEV dev, INT iMode ) DECLSPEC_HIDDEN;
|
||||
extern HFONT MFDRV_SelectFont( PHYSDEV dev, HFONT handle ) DECLSPEC_HIDDEN;
|
||||
extern HPEN MFDRV_SelectPen( PHYSDEV dev, HPEN handle ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -270,7 +270,8 @@ done:
|
|||
/***********************************************************************
|
||||
* MFDRV_SelectBrush
|
||||
*/
|
||||
HBRUSH MFDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
|
||||
HBRUSH MFDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage )
|
||||
{
|
||||
INT16 index;
|
||||
|
||||
|
|
|
@ -27,7 +27,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
|
|||
/***********************************************************************
|
||||
* SelectBrush (WINEPS.@)
|
||||
*/
|
||||
HBRUSH PSDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
|
||||
HBRUSH PSDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage )
|
||||
{
|
||||
PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
|
||||
LOGBRUSH logbrush;
|
||||
|
|
|
@ -455,8 +455,8 @@ extern DWORD PSDRV_PutImage( PHYSDEV dev, HBITMAP hbitmap, HRGN clip, BITMAPINFO
|
|||
extern BOOL PSDRV_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) DECLSPEC_HIDDEN;
|
||||
extern BOOL PSDRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right,
|
||||
INT bottom, INT ell_width, INT ell_height ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH PSDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH PSDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH PSDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage ) DECLSPEC_HIDDEN;
|
||||
extern HFONT PSDRV_SelectFont( PHYSDEV dev, HFONT hfont ) DECLSPEC_HIDDEN;
|
||||
extern HPEN PSDRV_SelectPen( PHYSDEV dev, HPEN hpen ) DECLSPEC_HIDDEN;
|
||||
extern COLORREF PSDRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -280,7 +280,8 @@ static BOOL BRUSH_SelectDIBPatternBrush( X11DRV_PDEVICE *physDev, const BITMAPIN
|
|||
/***********************************************************************
|
||||
* SelectBrush (X11DRV.@)
|
||||
*/
|
||||
HBRUSH X11DRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
|
||||
HBRUSH X11DRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage )
|
||||
{
|
||||
X11DRV_PDEVICE *physDev = get_x11drv_dev( dev );
|
||||
LOGBRUSH logbrush;
|
||||
|
|
|
@ -220,7 +220,8 @@ extern BOOL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bott
|
|||
extern BOOL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
|
||||
INT ell_width, INT ell_height ) DECLSPEC_HIDDEN;
|
||||
extern HBITMAP X11DRV_SelectBitmap( PHYSDEV dev, HBITMAP hbitmap ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH X11DRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH X11DRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush, HBITMAP bitmap,
|
||||
const BITMAPINFO *info, void *bits, UINT usage ) DECLSPEC_HIDDEN;
|
||||
extern HFONT X11DRV_SelectFont( PHYSDEV dev, HFONT hfont ) DECLSPEC_HIDDEN;
|
||||
extern HPEN X11DRV_SelectPen( PHYSDEV dev, HPEN hpen ) DECLSPEC_HIDDEN;
|
||||
extern COLORREF X11DRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -146,7 +146,7 @@ struct gdi_dc_funcs
|
|||
BOOL (*pScaleViewportExtEx)(PHYSDEV,INT,INT,INT,INT,SIZE*);
|
||||
BOOL (*pScaleWindowExtEx)(PHYSDEV,INT,INT,INT,INT,SIZE*);
|
||||
HBITMAP (*pSelectBitmap)(PHYSDEV,HBITMAP);
|
||||
HBRUSH (*pSelectBrush)(PHYSDEV,HBRUSH);
|
||||
HBRUSH (*pSelectBrush)(PHYSDEV,HBRUSH,HBITMAP,const BITMAPINFO*,void*,UINT);
|
||||
BOOL (*pSelectClipPath)(PHYSDEV,INT);
|
||||
HFONT (*pSelectFont)(PHYSDEV,HFONT);
|
||||
HPALETTE (*pSelectPalette)(PHYSDEV,HPALETTE,BOOL);
|
||||
|
@ -204,7 +204,7 @@ struct gdi_dc_funcs
|
|||
};
|
||||
|
||||
/* increment this when you change the DC function table */
|
||||
#define WINE_GDI_DRIVER_VERSION 17
|
||||
#define WINE_GDI_DRIVER_VERSION 18
|
||||
|
||||
static inline PHYSDEV get_physdev_entry_point( PHYSDEV dev, size_t offset )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue