Module: wine Branch: master Commit: 0e93387d9bc7cab85631efcc4dbc00c810c0221a URL: http://source.winehq.org/git/wine.git/?a=commit;h=0e93387d9bc7cab85631efcc4d...
Author: Huw Davies huw@codeweavers.com Date: Mon Jul 4 09:05:43 2016 +0100
gdi32: Use the add_rect() helper to add a rectangle.
Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/region.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/dlls/gdi32/region.c b/dlls/gdi32/region.c index 47daab9..55bd04d 100644 --- a/dlls/gdi32/region.c +++ b/dlls/gdi32/region.c @@ -2592,18 +2592,15 @@ static BOOL REGION_PtsToRegion( struct point_block *FirstPtBlock, WINEREGION *re RECT *rects; POINT *pts; struct point_block *pb; - int i; + int i, size; RECT *extents; - INT numRects;
extents = ®->extents;
- for (pb = FirstPtBlock, numRects = 0; pb; pb = pb->next) numRects += pb->count; - if (!init_region( reg, numRects )) return FALSE; + for (pb = FirstPtBlock, size = 0; pb; pb = pb->next) size += pb->count; + if (!init_region( reg, size )) return FALSE;
- reg->size = numRects; rects = reg->rects - 1; - numRects = 0; extents->left = LARGE_COORDINATE, extents->right = SMALL_COORDINATE;
for (pb = FirstPtBlock; pb; pb = pb->next) @@ -2613,34 +2610,31 @@ static BOOL REGION_PtsToRegion( struct point_block *FirstPtBlock, WINEREGION *re for (pts = pb->pts; i--; pts += 2) { if (pts->x == pts[1].x) continue; - if (numRects && pts->x == rects->left && pts->y == rects->bottom && + if (reg->numRects && pts->x == rects->left && pts->y == rects->bottom && pts[1].x == rects->right && - (numRects == 1 || rects[-1].top != rects->top) && + (reg->numRects == 1 || rects[-1].top != rects->top) && (i && pts[2].y > pts[1].y)) { rects->bottom = pts[1].y + 1; continue; } - numRects++; + add_rect( reg, pts[0].x, pts[0].y, pts[1].x, pts[1].y + 1 ); rects++; - rects->left = pts->x; rects->top = pts->y; - rects->right = pts[1].x; rects->bottom = pts[1].y + 1; - if (rects->left < extents->left) - extents->left = rects->left; - if (rects->right > extents->right) - extents->right = rects->right; + if (pts[0].x < extents->left) + extents->left = pts[0].x; + if (pts[1].x > extents->right) + extents->right = pts[1].x; } }
- if (numRects) { - extents->top = reg->rects->top; - extents->bottom = rects->bottom; + if (reg->numRects) { + extents->top = reg->rects[0].top; + extents->bottom = reg->rects[reg->numRects-1].bottom; } else { extents->left = 0; extents->top = 0; extents->right = 0; extents->bottom = 0; } - reg->numRects = numRects;
return(TRUE); }