[cairo] Cairo and ISO C++

Michael McLaughlin mikebmcl at gmail.com
Mon Feb 3 02:03:06 PST 2014


Hi Rob,

That was definitely an interesting read and well worth the time. I plan to
read it again in the morning when my brain is fresh. I think the
best lesson I took from it so far comes in the form of a confirmation. When
SG13 (the ISO C++ 2D Graphics Study Group) formed, we decided that for "V1"
we would focus on an immediate mode API (i.e. a relatively stateful,
low-level drawing API) and leave a retained mode API (i.e. something with a
scene graph, along the lines of the scenes that can be composed by parsing
SVG, XAML, or HTML) for later if there was a demand for it. I had strong
suspicions (gleaned from my own perspective as a user of such technologies
along with some very simple creations of scene graphs for various internal
tools) that creating, maintaining, and allowing the manipulation of a scene
graph was complex. Your article very much confirms that suspicion and makes
me extremely glad that we decided to choose a very narrow scope to begin
with.

Thanks for the interesting read and the insight that it, and your
comments, provide!

-Mike



On Sun, Feb 2, 2014 at 5:27 PM, Robert O'Callahan <robert at ocallahan.org>wrote:

> On Tue, Jan 21, 2014 at 8:17 PM, Jeff Muizelaar <jeff at infidigm.net> wrote:
>
>> The work we've done on the Moz2D API may also be of some interest to you.
>> It aims to be an efficient C++ wrapper around cairo, CoreGraphics, Skia and
>> Direct2D. The API is not as polished as cairo but it aims to expose a
>> common subset of functionality. Because of this it has been much easier to
>> support different backends than it has been in cairo. You can see it here:
>> http://dxr.mozilla.org/mozilla-central/source/gfx/2d/2D.h
>>
>
> Some of the motivation behind Moz2D is given here:
> http://robert.ocallahan.org/2011/09/graphics-api-design.html. I think
> that's worth reading, not because I wrote it :-), but because it
> crystallizes some lessons from using cairo in Firefox for many years.
>
> Even given the disadvantages of cairo discussed there, it might still be
> the best choice for a C++ standard library. If you want the standard
> library to be convenient for building specific graphical applications, and
> care less about using it to build browser-like application frameworks ---
> and you don't care about squeezing out every last drop of performance ---
> it's probably fine.
>
> Rob
> --
> Jtehsauts  tshaei dS,o n" Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
> le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o  Whhei csha iids  teoa
> stiheer :p atroa lsyazye,d  'mYaonu,r  "sGients  uapr,e  tfaokreg iyvoeunr,
> 'm aotr  atnod  sgaoy ,h o'mGee.t"  uTph eann dt hwea lmka'n?  gBoutt  uIp
> waanndt  wyeonut  thoo mken.o w
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20140203/113ce0b7/attachment.html>


More information about the cairo mailing list