gdiplus: Implemented GdipDrawBezier.
This commit is contained in:
parent
b8d1560ac3
commit
8b9f5342b4
|
@ -144,7 +144,7 @@
|
||||||
@ stub GdipDisposeImageAttributes
|
@ stub GdipDisposeImageAttributes
|
||||||
@ stub GdipDrawArc
|
@ stub GdipDrawArc
|
||||||
@ stub GdipDrawArcI
|
@ stub GdipDrawArcI
|
||||||
@ stub GdipDrawBezier
|
@ stdcall GdipDrawBezier(ptr ptr long long long long long long long long)
|
||||||
@ stub GdipDrawBezierI
|
@ stub GdipDrawBezierI
|
||||||
@ stub GdipDrawBeziers
|
@ stub GdipDrawBeziers
|
||||||
@ stub GdipDrawBeziersI
|
@ stub GdipDrawBeziersI
|
||||||
|
|
|
@ -27,6 +27,11 @@
|
||||||
#include "gdiplus_private.h"
|
#include "gdiplus_private.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
|
static inline INT roundr(REAL x)
|
||||||
|
{
|
||||||
|
return (INT) floor(x+0.5);
|
||||||
|
}
|
||||||
|
|
||||||
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
|
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
|
||||||
{
|
{
|
||||||
if(hdc == NULL)
|
if(hdc == NULL)
|
||||||
|
@ -66,6 +71,25 @@ GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *graphics)
|
||||||
return Ok;
|
return Ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1,
|
||||||
|
REAL y1, REAL x2, REAL y2, REAL x3, REAL y3, REAL x4, REAL y4)
|
||||||
|
{
|
||||||
|
HGDIOBJ old_pen;
|
||||||
|
POINT pt[4] = {{roundr(x1), roundr(y1)}, {roundr(x2), roundr(y2)},
|
||||||
|
{roundr(x3), roundr(y3)}, {roundr(x4), roundr(y4)}};
|
||||||
|
|
||||||
|
if(!graphics || !pen)
|
||||||
|
return InvalidParameter;
|
||||||
|
|
||||||
|
old_pen = SelectObject(graphics->hdc, pen->gdipen);
|
||||||
|
|
||||||
|
PolyBezier(graphics->hdc, pt, 4);
|
||||||
|
|
||||||
|
SelectObject(graphics->hdc, old_pen);
|
||||||
|
|
||||||
|
return Ok;
|
||||||
|
}
|
||||||
|
|
||||||
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1,
|
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1,
|
||||||
INT y1, INT x2, INT y2)
|
INT y1, INT x2, INT y2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,6 +31,8 @@ GpStatus WINGDIPAPI GdipDeletePen(GpPen*);
|
||||||
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**);
|
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**);
|
||||||
GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**);
|
GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**);
|
||||||
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *);
|
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *);
|
||||||
|
GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,
|
||||||
|
REAL,REAL,REAL);
|
||||||
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
||||||
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT);
|
||||||
GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
|
GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL);
|
||||||
|
|
Loading…
Reference in New Issue