diff --git a/ChangeLog b/ChangeLog index 9f5344858..5d3245b89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2002-12-03 Carl Worth + + * xrstroker.c (_XrStrokerJoin): + (_XrStrokerCap): Fixed to track change in winding rule parameter + to XrTrapsTessellatePolygon, (otherwise self-intersecting splines + suddenly had holes). + + * xrpen.c (_XrPenStrokeSpline): Fixed to track change in winding + rule parameter to XrTrapsTessellatePolygon. + 2002-11-11 Carl Worth * xrtransform.c (_XrTransformBoundingBox): Added support for diff --git a/TODO b/TODO index 2ed23c258..10150bb10 100644 --- a/TODO +++ b/TODO @@ -11,14 +11,22 @@ scalefont transformfont (not in postscript) Perhaps needed? ---------------- +=============== + +Relative Offsets +---------------- ashow show with x/y displacement added to each character widthshow show with x/y displacement added to specified character -xyshow show with array of x/y displacements substituted +awidthshow same as ashow plus widthshow + + glyphshow show with name-based rather than encoded lookup of glyph cshow show with a callback for drawing each glyph kshow show with a callback between drawing each glyph -awidthshow same as ashow plus widthshow + +Absolute offsets +---------------- +xyshow show with array of x/y displacements substituted xshow same as xyshow with y==0 yshow same as xyshow with x==0 diff --git a/src/xrpen.c b/src/xrpen.c index 9f71eff25..3c434993b 100644 --- a/src/xrpen.c +++ b/src/xrpen.c @@ -327,7 +327,7 @@ _XrPenStrokeSpline(XrPen *pen, return status; _XrPolygonClose(&polygon); - _XrTrapsTessellatePolygon(traps, &polygon, 1); + _XrTrapsTessellatePolygon(traps, &polygon, XrFillRuleWinding); _XrPolygonDeinit(&polygon); return XrStatusSuccess; diff --git a/src/xrstroker.c b/src/xrstroker.c index 60120bf98..28cdaa685 100644 --- a/src/xrstroker.c +++ b/src/xrstroker.c @@ -183,7 +183,7 @@ _XrStrokerJoin(XrStroker *stroker, XrStrokeFace *in, XrStrokeFace *out) } } - status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, 1); + status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, XrFillRuleWinding); _XrPolygonDeinit (&polygon); return status; @@ -231,7 +231,7 @@ _XrStrokerCap(XrStroker *stroker, XrStrokeFace *f) } } - status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, 1); + status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, XrFillRuleWinding); _XrPolygonDeinit (&polygon); return status; diff --git a/xrpen.c b/xrpen.c index 9f71eff25..3c434993b 100644 --- a/xrpen.c +++ b/xrpen.c @@ -327,7 +327,7 @@ _XrPenStrokeSpline(XrPen *pen, return status; _XrPolygonClose(&polygon); - _XrTrapsTessellatePolygon(traps, &polygon, 1); + _XrTrapsTessellatePolygon(traps, &polygon, XrFillRuleWinding); _XrPolygonDeinit(&polygon); return XrStatusSuccess; diff --git a/xrstroker.c b/xrstroker.c index 60120bf98..28cdaa685 100644 --- a/xrstroker.c +++ b/xrstroker.c @@ -183,7 +183,7 @@ _XrStrokerJoin(XrStroker *stroker, XrStrokeFace *in, XrStrokeFace *out) } } - status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, 1); + status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, XrFillRuleWinding); _XrPolygonDeinit (&polygon); return status; @@ -231,7 +231,7 @@ _XrStrokerCap(XrStroker *stroker, XrStrokeFace *f) } } - status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, 1); + status = _XrTrapsTessellatePolygon (stroker->traps, &polygon, XrFillRuleWinding); _XrPolygonDeinit (&polygon); return status;