Module: wine Branch: master Commit: 802907025717dd11e7cc8307fc1a92958869043d URL: https://source.winehq.org/git/wine.git/?a=commit;h=802907025717dd11e7cc8307f...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Aug 3 12:56:21 2021 +0200
gdi32: Store brush origin in DC_ATTR.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/brush.c | 6 +++--- dlls/gdi32/dc.c | 20 +++----------------- dlls/gdi32/dibdrv/bitblt.c | 2 +- dlls/gdi32/dibdrv/graphics.c | 4 ++-- dlls/gdi32/gdidc.c | 11 +++++++++++ dlls/gdi32/ntgdi_private.h | 2 -- include/ntgdi.h | 1 + 7 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/dlls/gdi32/brush.c b/dlls/gdi32/brush.c index 638e7fc7fed..a59fee700ce 100644 --- a/dlls/gdi32/brush.c +++ b/dlls/gdi32/brush.c @@ -390,10 +390,10 @@ BOOL WINAPI SetBrushOrgEx( HDC hdc, INT x, INT y, LPPOINT oldorg )
if (!dc) return FALSE; if (oldorg) - *oldorg = dc->brush_org; + *oldorg = dc->attr->brush_org;
- dc->brush_org.x = x; - dc->brush_org.y = y; + dc->attr->brush_org.x = x; + dc->attr->brush_org.y = y; release_dc_ptr( dc ); return TRUE; } diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 8c2ac20fb49..8c03392c513 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -91,8 +91,8 @@ static void set_initial_dc_state( DC *dc ) dc->attr->brush_color = RGB( 255, 255, 255 ); dc->attr->pen_color = RGB( 0, 0, 0 ); dc->attr->text_color = RGB( 0, 0, 0 ); - dc->brush_org.x = 0; - dc->brush_org.y = 0; + dc->attr->brush_org.x = 0; + dc->attr->brush_org.y = 0; dc->mapperFlags = 0; dc->attr->text_align = TA_LEFT | TA_TOP | TA_NOUPDATECP; dc->charExtra = 0; @@ -410,7 +410,7 @@ BOOL CDECL nulldrv_RestoreDC( PHYSDEV dev, INT level ) dc->attr->text_color = dcs->attr->text_color; dc->attr->brush_color = dcs->attr->brush_color; dc->attr->pen_color = dcs->attr->pen_color; - dc->brush_org = dcs->brush_org; + dc->attr->brush_org = dcs->attr->brush_org; dc->mapperFlags = dcs->mapperFlags; dc->attr->text_align = dcs->attr->text_align; dc->charExtra = dcs->charExtra; @@ -544,7 +544,6 @@ INT WINAPI NtGdiSaveDC( HDC hdc ) newdc->hFont = dc->hFont; newdc->hBitmap = dc->hBitmap; newdc->hPalette = dc->hPalette; - newdc->brush_org = dc->brush_org; newdc->mapperFlags = dc->mapperFlags; newdc->charExtra = dc->charExtra; newdc->breakExtra = dc->breakExtra; @@ -1274,19 +1273,6 @@ UINT WINAPI NtGdiSetBoundsRect( HDC hdc, const RECT *rect, UINT flags ) }
-/*********************************************************************** - * GetBrushOrgEx (GDI32.@) - */ -BOOL WINAPI GetBrushOrgEx( HDC hdc, LPPOINT pt ) -{ - DC * dc = get_dc_ptr( hdc ); - if (!dc) return FALSE; - *pt = dc->brush_org; - release_dc_ptr( dc ); - return TRUE; -} - - /*********************************************************************** * SetLayout (GDI32.@) * diff --git a/dlls/gdi32/dibdrv/bitblt.c b/dlls/gdi32/dibdrv/bitblt.c index 35413ccb942..dabdf01a591 100644 --- a/dlls/gdi32/dibdrv/bitblt.c +++ b/dlls/gdi32/dibdrv/bitblt.c @@ -1030,7 +1030,7 @@ DWORD CDECL dibdrv_PutImage( PHYSDEV dev, HRGN clip, BITMAPINFO *info, } else ret = execute_rop( pdev, &dst->visrect, &src_dib, &src->visrect, &clipped_rects, - &dc->brush_org, rop ); + &dc->attr->brush_org, rop ); free_clipped_rects( &clipped_rects ); } free_dib_info( &src_dib ); diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c index e4e2de8f99f..c6f11ae6a69 100644 --- a/dlls/gdi32/dibdrv/graphics.c +++ b/dlls/gdi32/dibdrv/graphics.c @@ -73,7 +73,7 @@ static BOOL brush_rect( dibdrv_physdev *pdev, dib_brush *brush, const RECT *rect
if (!get_clipped_rects( &pdev->dib, rect, clip, &clipped_rects )) return TRUE; ret = brush->rects( pdev, brush, &pdev->dib, clipped_rects.count, clipped_rects.rects, - &dc->brush_org, dc->attr->rop_mode ); + &dc->attr->brush_org, dc->attr->rop_mode ); free_clipped_rects( &clipped_rects ); return ret; } @@ -1203,7 +1203,7 @@ BOOL CDECL dibdrv_PatBlt( PHYSDEV dev, struct bitblt_coords *dst, DWORD rop ) break; default: ret = brush->rects( pdev, brush, &pdev->dib, clipped_rects.count, clipped_rects.rects, - &dc->brush_org, rop2 ); + &dc->attr->brush_org, rop2 ); break; } free_clipped_rects( &clipped_rects ); diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c index e2138508d87..a0af23c169d 100644 --- a/dlls/gdi32/gdidc.c +++ b/dlls/gdi32/gdidc.c @@ -330,6 +330,17 @@ INT WINAPI GetStretchBltMode( HDC hdc ) return dc_attr ? dc_attr->stretch_blt_mode : 0; }
+/*********************************************************************** + * GetBrushOrgEx (GDI32.@) + */ +BOOL WINAPI GetBrushOrgEx( HDC hdc, POINT *point ) +{ + DC_ATTR *dc_attr; + if (!(dc_attr = get_dc_attr( hdc ))) return FALSE; + *point = dc_attr->brush_org; + return TRUE; +} + /*********************************************************************** * GetDCOrgEx (GDI32.@) */ diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h index 5dd685e07ec..c3ae797ddf6 100644 --- a/dlls/gdi32/ntgdi_private.h +++ b/dlls/gdi32/ntgdi_private.h @@ -110,8 +110,6 @@ typedef struct tagDC const struct font_gamma_ramp *font_gamma_ramp;
UINT font_code_page; - POINT brush_org; - DWORD mapperFlags; /* Font mapper flags */ INT charExtra; /* Spacing from SetTextCharacterExtra() */ INT breakExtra; /* breakTotalExtra / breakCount */ diff --git a/include/ntgdi.h b/include/ntgdi.h index 38a2dfd3835..1698aa17054 100644 --- a/include/ntgdi.h +++ b/include/ntgdi.h @@ -116,6 +116,7 @@ typedef struct DC_ATTR INT map_mode; RECT vis_rect; /* visible rectangle in screen coords */ FLOAT miter_limit; + POINT brush_org; /* brush origin */ POINT wnd_org; /* window origin */ SIZE wnd_ext; /* window extent */ POINT vport_org; /* viewport origin */