[GDI+: 3/5] added graphics implementation and tests
Evan Stade
estade at gmail.com
Sun Jun 10 21:12:40 CDT 2007
On 6/8/07, Dmitry Timoshkov <dmitry at codeweavers.com> wrote:
> "Evan Stade" <estade at gmail.com> wrote:
>
> > +GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1,
> > + INT y1, INT x2, INT y2)
> > +{
> > + HGDIOBJ old_obj;
> > +
> > + if(!pen || !graphics)
> > + return InvalidParameter;
> > +
> > + old_obj = SelectObject(graphics->hdc, pen->gdipen);
> > + MoveToEx(graphics->hdc, x1, y1, NULL);
> > + LineTo(graphics->hdc, x2, y2);
> > + SelectObject(graphics->hdc, old_obj);
> > +
> > + return Ok;
> > +}
> > +
> > +GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics *graphics, GpPen *pen, INT x,
> > + INT y, INT width, INT height)
> > +{
> > + LOGBRUSH lb;
> > + HPEN hpen;
> > + HGDIOBJ old_obj;
> > +
> > + 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);
>
> Any reason why are you creating a new pen in GdipDrawRectangleI, and while using
> an existing one in GdipDrawLineI?
>
> --
> Dmitry.
>
Yes, the reason for that is the passed pen can have any endcap style,
but to draw the rectangle the pen needs square endcaps. The same does
not apply to DrawLine.
More information about the wine-devel
mailing list