Updated cairo bindings on dsource

Daniel Keep daniel.keep.lists at gmail.com
Thu May 18 20:27:28 PDT 2006


I've just updated the cairo bindings on dsource.  Changes included:

* Several bugfixes.
* Addition of the Glitz and Xlib backends.
* New OO layer called cairooo.
* cairooo snippets.
* A very *very* basic cairooo tutorial.
* A neat little demo program, which renders one of FunkyM's D logos in
  various styles.
* D scripts for building import libraries.

http://dsource.org/projects/bindings/browser/trunk/cairo

Also, if anyone is interested, I'd like to get some eyes other than my
own on to the design of the OO layer; this is my first attempt at
putting together something this large.

Specifically, I have a few classes that can't decide between using
constructors or static methods.  The problem is this:

* Certain objects can be constructed in different ways.  For example:
SolidPattern can be created using an RGB or RGBA colour.

* However, the cairo developers have said NOT to overload these methods,
since RGBA using premultiplied alpha might be added; and what if CMYK
gets added as well?

* Thus, my choices are to make a ludicrous number of subclasses so that
I can have distinct constructors,

* OR I can use static createXXX methods (which is basically what
cairomm, C++'s binding does).

For example:

	Pattern red = new SolidPatternRGB(1,0,0);

versus:

	Pattern red = SolidPattern.createRGB(1,0,0);

I'm leaning towards using the createXXX functions since it creates less
clutter and useless "constructor" classes, but I'm worried that this
will make the library inconsistent.  Or maybe I should keep as much of
it using constructors and only use createXXX where neccecary.

Ideas?  Opinions?  Suggestions?

	-- Daniel Keep

-- 

v1sw5+8Yhw5ln4+5pr6OFma8u6+7Lw4Tm6+7l6+7D
a2Xs3MSr2e4/6+7t4TNSMb6HTOp5en5g6RAHCP    http://hackerkey.com/



More information about the Digitalmars-d-announce mailing list