[cairo] cairo macros and public API

Chris Vine chris at cvine.freeserve.co.uk
Wed Sep 3 16:24:55 PDT 2008


On Tue, 02 Sep 2008 22:12:48 -0700
Carl Worth <cworth at cworth.org> wrote:

> 
> On Tue, 2008-08-26 at 00:49 +0100, Chris Vine wrote:
> 
> > If I have that part of it correct, then the cairoint.h header
> > provides a convenience CAIRO_BITSWAP8_IF_LITTLE_ENDIAN macro which
> > seems to be just what is required, but it is not listed in the
> > index of symbols in the cairo documentation. Does this mean that it
> > is for internal cairo use only and that I should not rely on it as
> > part of the public cairo API?
> 
> That's correct.
> 
> "cairoint.h" means "cairo internal" and is only for use by the
> implementation of cairo itself, not for users of cairo, (and it
> shouldn't be installed, etc.).
> 
> Note the following comment at the beginning of cairoint.h:
> 
> /*                                                                              
>  * These definitions are solely for use by the implementation of
> cairo          
>  * and constitute no kind of standard.  If you need any of
> these                
>  * functions, please drop me a note.  Either the library needs
> new              
>  * functionality, or there's a way to do what you need using
> the                
>  * existing published interfaces.
> cworth at cworth.org */
> 
> That said, if the macro does what you want, please feel free to copy
> its definition into your program, (though, preferably without a CAIRO_
> prefix).
> 
> Have fun with cairo!

Carl,

Thanks.

In the end I decided to use libtiff to convert the tiff input to raw
pixel data, and that has a TIFFReverseBits() function which will operate
on a whole buffer, and I have decided to use that.

It is working quite well, although after scaling the tiff pixel data
with cairo_scale() to the pixel size of the page printing area offered
by the GtkPrintContext object passed by the GTK+ printing functions, for
some reason there is some over-scaling (diminishing) of the image, even
when setting page margins to 0, but it is without the bounds of
usability.

Chris



More information about the cairo mailing list