summaryrefslogtreecommitdiff
path: root/ROADMAP
blob: 3dfdd3335257be5d47ee0b35de78935526cd49ca (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
80
81
82
83
84
85
86
Here are some quick notes as far as a cairo roadmap goes.

See also the TODO file for a different view, (less organized, but
often in more detail, particularly for the API Shakeup work in
progress).

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: otaylor has drafted a plan or two on the list

API Issues (more detail in TODO file)
-------------------------------------

✓A1. Add cairo_paint
	Difficulty: moderate or moderate to minor
	Dependencies: much easier after [I1]. needs some cleanups from [A4]
	Status: Done

✓A2. Add cairo_mask
	Difficulty: moderate
	Status: Done

 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 sent API proposal to the list
	        (still some unresolved API issues)

✓A4. Make set_source consistent
	Difficulty: easy
	Dependencies: needs [A2,A3] to avoid losing functionality,
		      (but we may just live with that as we've now got
		       a circular dependency)
	Status: Done.

✓A5. Add cairo_clip/fill/stroke_preserve
	Difficulty: easy
	Status: Done.

✓A6. Just eliminate a bunch of functions:

	✓ cairo_set_target_*
	✓ cairo_copy
	✓ cairo_surface_set_repeat/matrix/filter
	✓ cairo_show_surface

	Difficulty: trivial
	Dependencies: eliminating cairo_show_surface depends on [A1]
	Status: Done.

 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

 A8. cairo_format_t:
        Difficulty: moderate. It's just going through and examining 
                    each use of cairo_format_t, but there are a lot
                    of them.
        Status: not started, there is a rough plan in TODO

 A9. consistent error handling for all objects
	Difficulty: Easy to implement to get the API right. Hard to test.
	Status: Done for cairo_t, cairo_path_t, and cairo_pattern_t.
	        Still need to do cairo_font_face_t,
		cairo_scaled_font_t, and cairo_surface_t.

Performance work
----------------
✓P1. Make pixel-aligned rectangle compositing fast
	Difficulty: moderate to easy
	Status: Done.

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