On 10/19/07, Darren Dale <[EMAIL PROTECTED]> wrote:

> A while back I put in quite a bit of effort into enabling draw_markers in the
> postscript backend. This is an efficient RendererPS function both in terms of
> speed and file size, but it seems to not be used any more in favor of the
> less efficient draw_polygon. Does anyone know why?

Which artist is triggering this call?  The RendererPS defines
draw_markers, and this is the test Line2D uses to determine which
function to call:

  self._newstyle = hasattr(renderer, 'draw_markers')

thus newstyle will be True for PS.  Then, in the Line2D marker drawing
function, eg

def _draw_square(...):

        if self._newstyle:
            path = agg.path_storage()
            path.move_to(-offset, -offset)
            path.line_to(-offset, offset)
            path.line_to(offset, offset)
            path.line_to(offset, -offset)
            path.end_poly()
            renderer.draw_markers(gc, path, rgbFace, xt, yt,
self.get_transform())
        else:

so my guess is Line2D *is* using draw_markers for backend_ps.
Patches.Polygon and derived will still be using the old draw_polygon,
but there is no speed bottleneck here since one normally just adds a
few Polygon instances manually (else use a Collection).  The case we
were trying to optimize with draw_markers was

  ax.plot(x, y, 'o')

and related, where a 10,000 marker plot was triggering 10,000 calls to
draw_polygon, and now triggers one call to draw_markers for backends
that define it.

Note that in Michael's branch, this is mostly moot.  He has completely
rewritten the transforms module in python and migrated to a path based
drawing model, overhauling Line2D, Patch and Collections in the
process.    His branch is passing 75% or more of the examples and he
is hammering away at the rest -- so far he has been concentrating on
Agg but has recently begun the postscript work.  It is will worth a
look, as this will be merged back into the trunk, probably after the
next major release.

svn co 
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/transforms
mgd

JDH

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to