summaryrefslogtreecommitdiff
path: root/TODO
blob: d1beb740559afdd31f92696b283258605c9f0ad3 (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
  - Remove the warning suppression in the ACCESS_MEM macro and fix the
    warnings that are real

  - It probably makes sense to move the more strange X region API
    into pixman as well, but guarded with PIXMAN_XORG_COMPATIBILITY

  - Go through things marked FIXME

  - Test if pseudo color still works. It does, but it also shows that
    copying a pixman_indexed_t on every composite operation is not
    going to fly. So, for now set_indexed() does not copy the 
    indexed table. 

    Also just the malloc() to allocate a pixman image shows up pretty
    high.

    Options include

      - Make all the setters not copy their arguments

      - Possibly combined with going back to the stack allocated 
        approach that we already use for regions.

      - Keep a cached pixman_image_t around for every picture. It would
        have to be kept uptodate every time something changes about the
        picture.

      - Break the X server ABI and simply have the relevant parameter
        stored in the pixman image. This would have the additional benefits
        that:

          - We can get rid of the annoying repeat field which is duplicated
            elsewhere.

          - We can use pixman_color_t and pixman_gradient_stop_t
            etc. instead of the types that are defined in
            renderproto.h

  - Reinstate the FbBits conditional typedef? At the moment we don't
    even have the FbBits type; we just use uint32_t everywhere.

    Keith says in bug 2335:

        The 64-bit code in fb (pixman) is probably broken; it hasn't been
        used in quite some time as PCI (and AGP) is 32-bits wide, so
        doing things 64-bits at a time is a net loss.  To quickly fix
        this, I suggest just using 32-bit datatypes by setting
        IC_SHIFT to 5 for all machines.

- Consider whether calling regions region16 is really such a great idea

- Right now we _always_ have a clip region, which is empty by default.
  Why does this work at all? It probably doesn't. The server
  distinguishes two cases, one where nothing is clipped (CT_NONE), and
  one where there is a clip region (CT_REGION).

- The rectangles in a region probably shouldn't be returned const as
  the X server will be changing them.

- Make sure the endian-ness macros are defined correctly.

- Run cairo test suite; fix bugs
	- one bug in source-scale-clip


done:

- Default clip region should be the full image