Re: Cairo Ada binding questions



My trouble is with a thick Ada API.
...
There is also another solution, that would consist in hiding the Surface
concept, providing only the Surface_Handle one.
How about letting the user deal with Surfaces, ie, his problem space,
and you deal with handles and reference counts in the computer-centric
view. It will be more work for you, but you did say you're trying to
make a thick binding.
With the CLAW thick binding to MS Windows, for instance, we have
type Root_Window_Type is abstract new Ada.Finalization.Controlled with private;
and the user works with various descendants of Root_Window_Type while CLAW
uses dispatching to call the routines specific to that child, and
typically uses inherited routines for things in common like reference
counting.

Any advice would be appreciated !
You might want to read:
http://www.rrsoftware.com/html/prodinf/triadapaper/triada.docsrc.html
.