summaryrefslogtreecommitdiff
path: root/BUGS
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).