Module: wine Branch: master Commit: 14e0df1fa0c0225d8de4d997b64aaec74963dd9a URL: http://source.winehq.org/git/wine.git/?a=commit;h=14e0df1fa0c0225d8de4d997b6...
Author: Evan Stade estade@gmail.com Date: Mon Jul 9 20:54:18 2007 -0700
gdiplus: Updated GdipDrawRectangleI.
---
dlls/gdiplus/gdiplus_private.h | 2 +- dlls/gdiplus/graphics.c | 26 +++++++------------------- 2 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 7c5195a..d036057 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -22,7 +22,7 @@ #include "windef.h" #include "gdiplus.h"
-#define GP_DEFAULT_PENSTYLE (PS_GEOMETRIC | PS_ENDCAP_FLAT) +#define GP_DEFAULT_PENSTYLE (PS_GEOMETRIC | PS_ENDCAP_FLAT | PS_JOIN_MITER)
COLORREF ARGB2COLORREF(ARGB color);
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 1040009..06a5dad 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -590,31 +590,19 @@ GpStatus WINGDIPAPI GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x, GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height) { - LOGBRUSH lb; - HPEN hpen; - HGDIOBJ old_obj; + INT save_state;
if(!pen || !graphics) return InvalidParameter;
- lb.lbStyle = BS_SOLID; - lb.lbColor = pen->color; - lb.lbHatch = 0; - - hpen = ExtCreatePen(PS_GEOMETRIC | PS_ENDCAP_SQUARE, (INT) pen->width, - &lb, 0, NULL); - - old_obj = SelectObject(graphics->hdc, hpen); + save_state = SaveDC(graphics->hdc); + EndPath(graphics->hdc); + SelectObject(graphics->hdc, pen->gdipen); + SelectObject(graphics->hdc, GetStockObject(NULL_BRUSH));
- /* assume pen aligment centered */ - MoveToEx(graphics->hdc, x, y, NULL); - LineTo(graphics->hdc, x+width, y); - LineTo(graphics->hdc, x+width, y+height); - LineTo(graphics->hdc, x, y+height); - LineTo(graphics->hdc, x, y); + Rectangle(graphics->hdc, x, y, x + width, y + height);
- SelectObject(graphics->hdc, old_obj); - DeleteObject(hpen); + RestoreDC(graphics->hdc, save_state);
return Ok; }