summaryrefslogtreecommitdiff
path: root/ROADMAP
blob: 7c2d049bee4e6913b3212d25d8c24aab781ef519 (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 0.6 release requirements
==============================
The cairo 0.6 snapshot is intended to intended to have the last of the
API _changes_ prior to cairo 1.0. Here they are:

API changes
-----------
✓ A9. consistent error handling for all objects
	Difficulty: Easy to implement to get the API right. Hard to test.
	Status: Done.

✓ A10. cairo_font_options_t
	Difficulty: Moderate
	Status: Done.

✓ A11. cairo_xlib_surface_create needs to be screen-aware
	Difficulty: Easy
	Status: Done.

cairo 1.0 release requirements
==============================
Implementation work
-------------------
 I1. Fix clipping to be sane
	Dificulty: moderate
	Status: cworth has started looking at this

 I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t)
	Difficulty: hard
	Status: krh has committed cairo_meta_surface_t and a preliminary
		version of cairo_ps_surface_t that uses it.

✓I3. Add support for sub-pixel (ARGB) rendering of text.
	Status: Done.

 I4. Fix the cache lock deadlocking problems.
	Difficulty: Hard
	Status: The cache code was ugly enough that I ended up doing a
		major rewrite rather than just reviewing the
		locking. The upside is that the rewrite should also
		add the missing metrics caches which will fix some
		performance problems with text measurement. Almost
		done now.

 I5. Finish the workaround for Render's overlapping source/dest bug
	(Copy the source as needed)

 I6. Fix all expected failures (XFAIL) in the test suite. Either
     there's a bug that needs to be fixed, or there are illegitimate
     tests that should be removed.

API additions (more detail in TODO file)
----------------------------------------
 A3. Add cairo_begin/end/get_group
	Difficulty: easy to hard (depending on how sophisticated an
	            implementation is acceptable, and whether the
		    cairo_meta_surface_t mentioned in [I2] is done)

	Status: cworth has a posted a preliminary patch, and keithp,
		krh, and otaylor answered all the tough questions it
		raised. There's not much work left to finish this one.

 A7. cairo_surface_mark_dirty
	Difficulty: trivial to add API, moderate to actually optimize
		    based on it
	Status: cworth has sent API proposal to list

✓A12. cairo_xlib_surface_set_drawable
	Difficulty: Easy
	Status: Done.

Performance work
----------------
 P2. Generate better trapezoids to go easier on the rasterizer
	Difficulty: moderate to hard
	Status: cworth drafted a plan to the list

 P3. Glyph measurement needs to be sped up.
	Status: Now planned as part of I4 above ("cache lock deadlock")