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
|
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.
--
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_scale_font modifies objects that the user expects to not change. For example:
cairo_font_t *font;
cairo_select_font (cr, "fixed", 0, 0);
font = cairo_current_font (cr);
cairo_scale_font (cr, 10);
cairo_show_text (cr, "all is good");
cairo_set_font (cr, font);
cairo_scale_font (cr, 10);
cairo_show_text (cr, "WAY TOO BIG!!);
We could fix this by not storing the scale in the font object. Or
maybe we could just force the size to its default after set_font. Need
to think about this in more detail.
--
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 is cairo_surface.c but it likely happens in several
places.
|