Fixes several bugs in gdi path handling.
Adds *Path functions to dc funcs table + add EnhMetaFile recording.
Separate out Polylne/PolylineTo and PolyBezier/PolyBezierTo in dc
funcs table to enable proper enhmetafile recording.
The current position update in *To functions is now handled by the
main function and not in the drivers.
Move USER functions from graphics/painting.c -> windows/painting.c
diff --git a/graphics/psdrv/init.c b/graphics/psdrv/init.c
index f7d104d..ed0daed 100644
--- a/graphics/psdrv/init.c
+++ b/graphics/psdrv/init.c
@@ -24,10 +24,15 @@
static const DC_FUNCTIONS PSDRV_Funcs =
{
NULL, /* pAbortDoc */
+ NULL, /* pAbortPath */
+ NULL, /* pAngleArc */
PSDRV_Arc, /* pArc */
+ NULL, /* pArcTo */
+ NULL, /* pBeginPath */
NULL, /* pBitBlt */
NULL, /* pBitmapBits */
PSDRV_Chord, /* pChord */
+ NULL, /* pCloseFigure */
NULL, /* pCreateBitmap */
PSDRV_CreateDC, /* pCreateDC */
NULL, /* pCreateDIBSection */
@@ -38,13 +43,16 @@
PSDRV_Ellipse, /* pEllipse */
PSDRV_EndDoc, /* pEndDoc */
PSDRV_EndPage, /* pEndPage */
+ NULL, /* pEndPath */
PSDRV_EnumDeviceFonts, /* pEnumDeviceFonts */
PSDRV_Escape, /* pEscape */
NULL, /* pExcludeClipRect */
PSDRV_ExtDeviceMode, /* pExtDeviceMode */
NULL, /* pExtFloodFill */
PSDRV_ExtTextOut, /* pExtTextOut */
+ NULL, /* pFillPath */
NULL, /* pFillRgn */
+ NULL, /* pFlattenPath */
NULL, /* pFrameRgn */
PSDRV_GetCharWidth, /* pGetCharWidth */
NULL, /* pGetPixel */
@@ -54,18 +62,21 @@
NULL, /* pInvertRgn */
PSDRV_LineTo, /* pLineTo */
NULL, /* pLoadOEMResource */
- PSDRV_MoveToEx, /* pMoveToEx */
+ NULL, /* pMoveToEx */
NULL, /* pOffsetClipRgn */
NULL, /* pOffsetViewportOrg (optional) */
NULL, /* pOffsetWindowOrg (optional) */
NULL, /* pPaintRgn */
PSDRV_PatBlt, /* pPatBlt */
PSDRV_Pie, /* pPie */
+ NULL, /* pPolyBezier */
+ NULL, /* pPolyBezierTo */
+ NULL, /* pPolyDraw */
PSDRV_PolyPolygon, /* pPolyPolygon */
PSDRV_PolyPolyline, /* pPolyPolyline */
PSDRV_Polygon, /* pPolygon */
PSDRV_Polyline, /* pPolyline */
- NULL, /* pPolyBezier */
+ NULL, /* pPolylineTo */
NULL, /* pRealizePalette */
PSDRV_Rectangle, /* pRectangle */
NULL, /* pRestoreDC */
@@ -73,6 +84,7 @@
NULL, /* pSaveDC */
NULL, /* pScaleViewportExt (optional) */
NULL, /* pScaleWindowExt (optional) */
+ NULL, /* pSelectClipPath */
NULL, /* pSelectClipRgn */
PSDRV_SelectObject, /* pSelectObject */
NULL, /* pSelectPalette */
@@ -98,7 +110,10 @@
PSDRV_StartDoc, /* pStartDoc */
PSDRV_StartPage, /* pStartPage */
NULL, /* pStretchBlt */
- PSDRV_StretchDIBits /* pStretchDIBits */
+ PSDRV_StretchDIBits, /* pStretchDIBits */
+ NULL, /* pStrokeAndFillPath */
+ NULL, /* pStrokePath */
+ NULL /* pWidenPath */
};