Hi Andre,

André Ávila <[EMAIL PROTECTED]> wrote on 03/31/2006 01:37:04 PM:

> > André Ávila <[EMAIL PROTECTED]> wrote on 03/31/2006 11:48:06 AM:
> >
> > > Hi Thomas,
> > >
> > > I tried your approach. Much simpler than mine, indeed, but you 
actually
> > > lose the dynamic behavior of the interactors. Only after the mouse 
is
> > > released, the other layers are transformed.
> >
> >    Then you just need to do exactly the same thing with the
> > 'setPaintingTransform' method.  This will make them all move in 
unison.
> 
> Ha! You're the man!

    Are you setting the 'painting transform' on the 'child' canvases or 
the
rendering transform?

> > > So, I'm moving on to the overlay idea. I'm thinking, to do that I'll
> > have to rasterize the svgs first, right?
> >
> >    If you manipulate the setPaintingTransform this will happen
> > automatically. It will pan/scale/rotate/etc the offscreen bitmap 
> > rather than rerender the content.  Everything should be fairly 
> > quick unless you have huge canvases or many layers.
> 
> Yes, I'm afraid this is exactly the problem. The SVGs I deal with are 
really
> complex, and the smaller ones have around 100KB (the bigger ones have 
more
> than 10MB - enters the rendering with JGVTComponent). In fast machines 
the
> synch is probably acceptable, although far from perfect. But in less
> powerful ones, it gets really bad, even with only 2 layers of 100KB 
SVGs.

   If you are manipulating the just the painting transform on all the 
canvases
then you are simply compositing the bitmaps, the speed will be a function 
of the
size _in_pixels_ of the canvas (and number of canvas layers) - it doesn't 
matter 
how complex the SVG content is in this case.  It's just pushing bitmaps 
around.

> >    It might be made to work, but setPaintingTransform is the way to 
go...
> 
> setPaintingTransform seems to work really fine in the general case of
> decent-sized SVGs, but given the requirements I have I'll have to find
> another solution.

  I don't think you can do better than the setPaintingTransform approach,
unless you 'premerge' the layers at the start of the PaintingTransform
manipulation.  But I'm guessing that you are translating PaintingTransform
changes in the top canvas into Rendering transform changes in the lower 
layers...

> Thinking about the overlay, I just realized that will be
> very difficult to keep the vector lossless scaling, since I'll be 
dealing
> with a rasterization of an SVG. Oh, boy. Any other ideas are most 
welcome!

   The painting transform is already doing this, use the interactive 
'scale in'
command (shift mouse 2) and it will pixelate the content until it 
rerenders 
the canvas (if your lower canvas's don't pixelate then you aren't doing it 
right ;)


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

Reply via email to