[cairo] Re: Making Cairo friendlier for embedded use

Damian Dixon Damian.Dixon at tenet.co.uk
Tue Mar 28 05:28:37 PST 2006

> -----Original Message-----
> From: Leon Woestenberg [mailto:leonw at mailcan.com]
> Sent: Tuesday, March 28, 2006 1:51 PM
> To: Damian Dixon
> Cc: cairo at cairographics.org
> Subject: Re: [cairo] Re: Making Cairo friendlier for embedded use
> Hello all,
> good to see there is interest in using Cairo (and friends) to embedded
> platforms. Maybe we should first define what our goals are exactly and
> then see if we can work together on them?
> I will draft up an initial collection of stuff I have seen on the
> Damian Dixon wrote:
> > I've also been lurking on the list.
> >
> > I do embedded development on quite low powered ARM and PowerPC
> > so floating point can quickly become an issue.
> >
> I assume that "low powered" means having no FPU then, instead of the
> wattage your targets are consuming :-)

No FPU or very limited with CPU clock speeds starting at 350MHz.

OS's include VxWorks 5.4, 5.5 & 6, as well as Linux and M$.

We also provide support for M$ Windows (Desktop, Server and Embedded).

Smallest memory target is 32MB with OS and Graphics taking up 12MB of
the available memory.

> > We only use GTK+ for raster drawing rather then anything else so I
> > not concerned too much with GTK+ using floating point arithmetic
> > Cario).
> >
> > Currently Cario does not give us the performance we require, though
> > continue to lurk as the glitz backend is of interest to us as we
> > currently mix X11/Win32 and OpenGL/DirectX and Cario would
> > allow us to reduce the complexity.
> >
> So your embedded targets do have hardware OpenGL/DirectX support?

Normally our embedded targets have OpenGL/X11 (we have used Microwindows
for a trade show demo).

At present we use X11 & GDI for 2D drawing and OpenGL for 3D drawing. We
drape the 2D drawing over the 3D.

You can not mix X11/GDI calls with OpenGL which is a big performance
hit. You can mix GDI/GDI+ and DirectX calls.

To make porting easier we abstract the calls to the graphics library
using C++ templates. We do all our own transformations of drawing points
because our coordinate range is greater then either X11 or M$ can

With M$ Vista crippling OpenGL we have had to look at DirectX/GDI+ to
support our customers rather then offering just OpenGL. However given
our time frame the situation may change (probably not do anything for a
year or two).

Ideally we would like to just deal with OpenGL for 3D and 2D drawing. If
there is a cross platform 2D graphics library with supports OpenGL and
DirectX (or GDI+) then life becomes a lot easier for us (render to

We don't require anything too fancy, we provide libraries for displaying
maps in realtime or near-realtime in both 2D and 3D. We do sometimes use
alpha blending but if it's missing it's not a problem. We do need to
support fast raster drawing.

> > The strategy we have taken in our vector rendering engine is to use
> > integer's upto the point we detect that we need to drop to
> > float/double's. Hopefully a similar strategy will be adopted when
> > look at performance in Cario.
> >
> > Regards
> > Damian
> >
> >
> >>On Thu, 2006-03-23 at 16:25 -0500, Sean Kelley wrote:
> >>
> >>>I was wondering if anyone has been considering the long-term impact
> >
> > of
> >
> >>>the floating point intensive Cairo on embedded products wishing to
> >>>make use of Gtk+?  In general, resource limited processors like ARM
> >>>lack an fpu.  Recent improvements such as softfloat in gcc have
> >>>helped.  But just curious if there are other developers on this
> >>>who have a long term interest in staying in step with Gtk+
> >>>improvements beyond 2.6.  Currently I am doing an embedded design
> >>>based on Gtk+ 2.6.10.  I just was curious if there are other
> >>>developers on this list.
> >>
> >>I lurk on this list keeping half an eye on cairo development.
> >>
> >>We use GTK+ (2.4.x right now) in an embedded product and hope to be
> >
> > able
> >
> >>to continue to use GTK+ on that platform, as well as cairo in its
> >>right. Our "embedded" platform (a Geode GX2) is really very
> >
> > so
> >
> >>fpu support isn't itself a problem, but we have a general interest
> >>cairo and GTK+ staying slim and fast so that our products are
> >>responsive.
> >>
> >>kind regards,
> >>
> >>Seb James
> >>
> >
> >
> > --
> > Damian Dixon, BSc(Hons), BSc(Hons), FRGS.
> > TENET Defence Ltd., North Heath Lane, Horsham, West Sussex, RH12
> > 5UX,United Kingdom
> > Tel: +44 1403 273173  Fax: +44 1403 273123
> > Email: damian.dixon at tenet.co.uk
> > http://www.tenet.co.uk, http://www.tenetdefence.com
> >
> > *
> > Any views expressed in this message are those of the individual
> > except where the sender specifically states them to be the views of
> > Defence Ltd.
> >
> > This email and any attachments may contain confidential information
> > and/or
> > copyright material. It is intended for the use of the addressee only
> > any unauthorised use may be unlawful. If you receive this email by
> > mistake, please advise the sender by using the reply facility in
> > email software.
> >
> > *
> >
> > _______________________________________________
> > cairo mailing list
> > cairo at cairographics.org
> > http://cairographics.org/cgi-bin/mailman/listinfo/cairo

More information about the cairo mailing list