blob: 43331d0832ff2d6983bffa682370de49115a1173 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
cairo-xlib-surface needs to do the Xlib register extension hack so
that it can listen for a Display close event. When it gets that, it
needs to run through its caches and eliminate anything associated with
that display.
--
cairo_image_surface_create should return a blank image
(eg. transparent black) instead of an image with random data in it.
--
The caches need to be invalidated at font destruction time.
--
cairo_clip is really slow, (with at least the Xlib and image
backends). An accelerated implementation of the IN operator would
probably help a lot here.
--
Splines are not dashed.
--
The polygon tessellation routine has problems. It appears that the
following paper has the right answers:
http://cm.bell-labs.com/cm/cs/doc/93/2-27.ps.gz
[Hobby93c] John D. Hobby, Practical Segment Intersection with
Finite Precision Output, Computation Geometry Theory and
Applications, 13(4), 1999.
Recent improvements to make the intersection code more robust (using
128-bit arithmetic where needed), have exposed some of the weakness in
the current tessellation implementation. So, for now, filling some
polygons will cause "leaking" until we implement Hobby's algorithm.
--
Stroking a self-intersecting path generates the wrong answer, (in
mostly subtle ways). The fix is to tessellate a giant polygon for the
entire stroke outline rather than incrementally generating trapezoids.
--
Cairo is crashing Xnest with the following message:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 72 (X_PutImage)
Serial number of failed request: 28
Current serial number in output stream: 29
confirmed on a quite default install of debian unstable.
--
cairo_show_text is not updating the current point by the string's advance values.
--
Caps are added only to the last subpath in a complex path.
--
ref_counts will go negative if destroy is called with ref_count ==
0. We noticed this in cairo_surface.c but it likely happens in several
places.
--
font-size="0" in an SVG file does very bad things.
--
cairo falls over with XFree86 4.2 (probably braindead depth handling
somewhere).
|