[cairo] libpixman - libpixregion, libic and slim merged; cairo built with it

Carl Worth cworth at east.isi.edu
Tue Dec 9 12:01:49 PST 2003

On Dec 8, Dave Beckett wrote:
 > and did that.  So I've taken the CVS versions of libpixregion, libic
 > and slim and made a new library libpixman version 0.1.0 which
 > exports a header pixman.h (merge of pixregion.h and ic.h).

Thanks Dave!

This is a great start. Next, we just need to give everything
consistent names. So:

	PixRegion -> pixman_region_t
	PixRegionCreate -> pixman_region_create

	IcFormat -> pixman_format_t
	IcFormatCreate -> pixman_format_create

	IcImage -> pixman_image_t
	IcImageCreate -> pixman_image_create

We should probably take this chance to clean up the worst warts in the
interface too. For example, PixRegion is inconsistent with respect to
box vs. rect(s). My recommendation would be:

	PixRegionBox -> pixman_rectangle_t
	PixRegionPointInRegion -> pixman_region_contains_point
	PixRegionRectIn -> pixman_region_contains_rectangle
	PixRegionNumRects+PixRegionRects -> pixman_region_to_rectangles

which can then be merged with the old IcRectangle type, (though that
will require some code changes to deal with x2,y2
vs. width,height).

Much worse is the disgusting fact that PixRegionAppend leaves an
invalid region. The call to PixRegionValidate should be absorbed into
the implementation of PixRegionAppend, and PixRegionValidate can be
removed from the interface.

Feel free to shove this all into CVS. I would recommend doing a
repository copy to preserve history, but I already botched that and
lost history when I copied all of this code from the X server. (That
is, unless someone wants to go back and recover that for us).


More information about the cairo mailing list