Evan Stade : gdiplus: Updated GdipDrawRectangleI.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Jul 10 08:02:40 CDT 2007
Module: wine
Branch: master
Commit: 14e0df1fa0c0225d8de4d997b64aaec74963dd9a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=14e0df1fa0c0225d8de4d997b64aaec74963dd9a
Author: Evan Stade <estade at 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;
}
More information about the wine-cvs
mailing list