Hi Thomas,

Thank you for taking the time to reply to my difficult questions.

>   My guess is that you see the old top canvas contents until the 
> top canvas can complete it's rendering?  I guess my question is 
> what do you want to have happen?  Do you want all repaints to 
> block until the top canvas rendering is complete? 

No, I only want any rendered content of other lower objects that would
normally be behind the top canvas to always be behind, even when the top
canvas is "busy".  I am not sure what I am requesting is possible but I am
sure that it is desirable.

>   This is probably a similar problem, when you drag we have to 
> re-render the old and new positions for the object.  While that 
> is happening, if a swing repaint request comes in we fulfill it 
> with the current contents of the offscreen buffer (and it should 
> get fixed when the dragged object is finished being updated). 

OK, that sounds logical.

>    When you translate with the left and right arrow keys we update 
> the 'painting transform' so that the un-updated offscreen buffer 
> is correctly positioned, but you will notice that there is 'blank 
> space' where that buffer has moved away from the edge of the window. 
> You may not be aware that if you use 'shift mouse-2' we will scale 
> in a similar manner, and 'ctrl mouse-2' will rotate with painting 
> transform update. 

These seem to work perfectly!  Why can't everything be like this?

>> So why can’t the top object paint itself while it is being resized 
>> or dragged?  Is something else going on? 
>
>   It can't paint itself with the updated rendering because 
> it's busy making that updated rendering.  So the question is what 
> do you want to have happen while it's making that updated rendering?

As my knowledge of the intimate inner workings of the rendering engine is
incomplete, I can only tell you what I would like to see from the user's
perspective.  Objects which are rendered in canvasses behind those rendered
in "higher level" (closer to the top) canvasses should *always* be behind
those on the top.  There should be no battle to display themselves, the top
objects should be declared the winner always.  So when I request a resize,
no lower objects should show through the top object either before, during or
after the top object's resize (unless of course it is translucent!).  The
same applies when I drag the top object.  Basically, the Z-order of all
objects should be honoured at all times.  Is this possible?

Thanks,

John


Attachment: PGP.sig
Description: PGP signature

Reply via email to