summaryrefslogtreecommitdiff
path: root/src/win32/cdwin.c
diff options
context:
space:
mode:
authorscuri <scuri>2010-05-28 21:09:43 +0000
committerscuri <scuri>2010-05-28 21:09:43 +0000
commit3e4bae27558fd3bcec4bc54928b0a5d3145cd7c3 (patch)
treeef74219dd4e6b4e1e41036bdf495c1992de22fc8 /src/win32/cdwin.c
parent82d2c9cac84e284e9e232b8f46db5e66e38a0d09 (diff)
*** empty log message ***
Diffstat (limited to 'src/win32/cdwin.c')
-rw-r--r--src/win32/cdwin.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/win32/cdwin.c b/src/win32/cdwin.c
index 65c183a..37c4c0d 100644
--- a/src/win32/cdwin.c
+++ b/src/win32/cdwin.c
@@ -854,6 +854,7 @@ static void cdpoly(cdCtxCanvas* ctxcanvas, int mode, cdPoint* poly, int n)
switch(ctxcanvas->canvas->path[p])
{
case CD_PATH_NEW:
+ EndPath(ctxcanvas->hDC);
BeginPath(ctxcanvas->hDC);
break;
case CD_PATH_MOVETO:
@@ -899,20 +900,24 @@ static void cdpoly(cdCtxCanvas* ctxcanvas, int mode, cdPoint* poly, int n)
case CD_PATH_FILL:
sUpdateFill(ctxcanvas, 1);
SetPolyFillMode(ctxcanvas->hDC, ctxcanvas->canvas->fill_mode==CD_EVENODD?ALTERNATE:WINDING);
+ EndPath(ctxcanvas->hDC);
FillPath(ctxcanvas->hDC);
break;
case CD_PATH_STROKE:
sUpdateFill(ctxcanvas, 0);
+ EndPath(ctxcanvas->hDC);
StrokePath(ctxcanvas->hDC);
break;
case CD_PATH_FILLSTROKE:
sUpdateFill(ctxcanvas, 1);
sUpdateFill(ctxcanvas, 0);
SetPolyFillMode(ctxcanvas->hDC, ctxcanvas->canvas->fill_mode==CD_EVENODD?ALTERNATE:WINDING);
+ EndPath(ctxcanvas->hDC);
StrokeAndFillPath(ctxcanvas->hDC);
break;
case CD_PATH_CLIP:
SetPolyFillMode(ctxcanvas->hDC, ctxcanvas->canvas->fill_mode==CD_EVENODD?ALTERNATE:WINDING);
+ EndPath(ctxcanvas->hDC);
SelectClipPath(ctxcanvas->hDC, RGN_AND);
break;
}