Hi Thomas.

I’m trying to track down a bug with the renderer.  Basically, in a
JSVGCanvas, the renderer stops painting updates after the canvas resized
in some circurmstances.  On my machine I can reproduce this (if I’m
lucky) with this document:

  http://mcc.id.au/temp/2008/resize-renderer-bug.svg

It has animation that continually changes the position of the <rect>,
back and forth.  It prints to the console the current animated position
of the <rect> every so often.  If I load that document in Squiggle, and
resize the window quickly, it will sometimes get into a state where the
rendering is not updated, but the document is otherwise still running OK
(which can be seen by the changing values being printed to the console).

I’ve found that the rendering stops because a call to
WritableRaster.createWritableChild() inside DynamicRenderer.repaint()
throws an exception (which is swallowed up) because its arguments
indicate an area that lies outside the raster:

  
http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java?annotate=489226#l220

I have a feeling it has to do with the change that inflated dirty
rectangles by 1px to avoid rendering problems with anti-aliasing.  If I
change this line:

  
http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java?view=annotate#l79

to remove that extra pixel inflation, then I can’t reproduce the bug.  I
don’t know enough about the renderer to know what to change though.  Are
you able to give me a brief rundown on how the renderer works, including
what all the various raster objects are for?

Thanks,

Cameron

-- 
Cameron McCormack ≝ http://mcc.id.au/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to