All this sounds great.  There has been some (off-list) discussion 
recently about making it easier to support third-party backends (i.e. 
backends that are maintained separately from the rest of the matplotlib 
tree).  This Quartz backend may be a good test candidate for that 
(though I wouldn't worry about the details of that until some progress 
is made on making that possible).  It seems like a natural fit for 
something that lives "a bit outside" since it is platform-specific.

Your list of advantages sound interesting.  It will be great to see such 
things in action.

One minor comment --->

 > ability to offload rendering and/or coordinate
 > transformation to the graphics card

One of the desired goals of the transforms branch was to offload 
coordinate transformations to external renderers, for example, for PDF 
to offload it to Acrobat Reader via the PDF file.  As it turns out, most 
of these systems (at least PDF, PS, SVG) all want to transform the 
stroke width using the same transform as the vertices of the object 
itself.  So if you zoom in on the data, the line width becomes enormous. 
  As it turned out, we weren't really able to take advantage of that, 
and end up transforming most things within matplotlib itself anyway (in 
a C extension).

But coordinate transformation is not a significant part of the runtime 
of the current software-only approaches anyway.

 > ability to easily produce output
 > in any of the CoreImage supported formats,

As an alternative, you may want to look at how the GtkAgg backend 
outputs to any of GtkPixbuf's supported formats, while using Agg as the 
renderer.  Something analogous is likely possible with Quartz.

Personally, I'm curious to see how Quartz backend performs at producing 
PDF output, particularly with respect to fonts.  That was a difficult 
thing to get right (and it still has room for improvement) in mpl's own 
PDF backend.

Cheers,
Mike

Barry Wark wrote:
> Michael,
> 
> I'm sorry. I just realized I hadn't replied to you yet; sorry for the
> delay. John also pointed us to the transforms branch and that's where
> we'll start. Thanks! There's no real advantage to CoreAnimation per se
> (except eye candy), but going "native" for rendering would allow mpl
> to integrate more smoothly with the rest of the 2D and 3D (much of
> Quartz, and CoreImage the 2D rendering and filtering systems in OS X
> are actually rendered on the graphics card as OpenGL) rendering system
> in OS X. Some advantages, off the top of my head are resolution
> independence, ability to offload rendering and/or coordinate
> transformation to the graphics card, ability to easily produce output
> in any of the CoreImage supported formats, ability to incorporate
> transparency and alpha blending within the view hierarchy, ability to
> combine media (QuickTime, OpenGL, and Quartz) in layers (the real
> purpose of the CoreAnimation engine), ability to piggy back on
> improvements in Apple's rendering engine (things like anti-aliasing
> etc.), ColorSync support, and _maybe_ some speed improvements by
> taking a layer or two out of the rendering process. All of these are
> just speculation, at this time... we're just getting started but will
> share our results as soon as they're ready.
> 
> barry
> 
> 
> On 12/5/07, Michael Droettboom <[EMAIL PROTECTED]> wrote:
>> Barry Wark wrote:
>>> We (at my work) are just starting to think about writing a more direct
>>> Quartz backend for mpl. A native backend would let a matplotlib view
>>> participate in newer Cocoa technologies, such as resolution
>>> independence and CoreAnimation (it's possible with the current backend
>>> method, but not quite as flexible).
>> I'm curious what Cocoa and CoreAnimation might enable...
>>
>> If you are looking into writing a Quartz rendering backend, you may want
>> to start with the matplotlib transforms branch (which should become the
>> trunk shortly, once the 0.91 release bugs get shaken out.)  The number
>> of methods that a backend writer must provide has been greatly reduced
>> on that branch.
>>
>> Cheers,
>> Mike
>>
>> --
>> Michael Droettboom
>> Science Software Branch
>> Operations and Engineering Division
>> Space Telescope Science Institute
>> Operated by AURA for NASA
>>

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to