Module: wine Branch: master Commit: 15fabcdefe1de1aa62945a5625070cdb424bc7cf URL: http://source.winehq.org/git/wine.git/?a=commit;h=15fabcdefe1de1aa62945a5625...
Author: Huw Davies huw@codeweavers.com Date: Mon Nov 14 12:49:02 2011 +0000
gdi32: Keep track of the text pixel color.
---
dlls/gdi32/dibdrv/dc.c | 16 +++++++++++++++- dlls/gdi32/dibdrv/dibdrv.h | 3 +++ 2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/dibdrv/dc.c b/dlls/gdi32/dibdrv/dc.c index a91de78..274d586 100644 --- a/dlls/gdi32/dibdrv/dc.c +++ b/dlls/gdi32/dibdrv/dc.c @@ -319,6 +319,7 @@ static void update_fg_colors( dibdrv_physdev *pdev ) { pdev->pen_color = get_pixel_color( pdev, pdev->pen_colorref, TRUE ); pdev->brush_color = get_pixel_color( pdev, pdev->brush_colorref, TRUE ); + pdev->text_color = get_pixel_color( pdev, GetTextColor( pdev->dev.hdc ), TRUE ); }
static void update_masks( dibdrv_physdev *pdev, INT rop ) @@ -518,6 +519,19 @@ static INT dibdrv_SetROP2( PHYSDEV dev, INT rop ) return next->funcs->pSetROP2( next, rop ); }
+/*********************************************************************** + * dibdrv_SetTextColor + */ +static COLORREF dibdrv_SetTextColor( PHYSDEV dev, COLORREF color ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetTextColor ); + dibdrv_physdev *pdev = get_dibdrv_pdev(dev); + + pdev->text_color = get_pixel_color( pdev, color, TRUE ); + + return next->funcs->pSetTextColor( next, color ); +} + const struct gdi_dc_funcs dib_driver = { NULL, /* pAbortDoc */ @@ -638,7 +652,7 @@ const struct gdi_dc_funcs dib_driver = NULL, /* pSetStretchBltMode */ NULL, /* pSetTextAlign */ NULL, /* pSetTextCharacterExtra */ - NULL, /* pSetTextColor */ + dibdrv_SetTextColor, /* pSetTextColor */ NULL, /* pSetTextJustification */ NULL, /* pSetViewportExt */ NULL, /* pSetViewportOrg */ diff --git a/dlls/gdi32/dibdrv/dibdrv.h b/dlls/gdi32/dibdrv/dibdrv.h index 6ef0d94..93753aa 100644 --- a/dlls/gdi32/dibdrv/dibdrv.h +++ b/dlls/gdi32/dibdrv/dibdrv.h @@ -97,6 +97,9 @@ typedef struct dibdrv_physdev
/* background */ DWORD bkgnd_color, bkgnd_and, bkgnd_xor; + + /* text */ + DWORD text_color; } dibdrv_physdev;
#define DEFER_FORMAT 1