mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-24 23:00:09 +01:00
Fixed holes in self-intersecting splines, (from change to winding rule parameter interface)
This commit is contained in:
parent
7f49b9ee83
commit
cdae3ba615
6 changed files with 27 additions and 9 deletions
10
ChangeLog
10
ChangeLog
|
|
@ -1,3 +1,13 @@
|
|||
2002-12-03 Carl Worth <cworth@isi.edu>
|
||||
|
||||
* 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 <cworth@isi.edu>
|
||||
|
||||
* xrtransform.c (_XrTransformBoundingBox): Added support for
|
||||
|
|
|
|||
14
TODO
14
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
|
||||
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ _XrPenStrokeSpline(XrPen *pen,
|
|||
return status;
|
||||
|
||||
_XrPolygonClose(&polygon);
|
||||
_XrTrapsTessellatePolygon(traps, &polygon, 1);
|
||||
_XrTrapsTessellatePolygon(traps, &polygon, XrFillRuleWinding);
|
||||
_XrPolygonDeinit(&polygon);
|
||||
|
||||
return XrStatusSuccess;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
2
xrpen.c
2
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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue