- 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 - Default clip region should be the full image