Hey..

my application used to use the glasspane for animations, following this simple 
scheme

- draw initial component state to an image
- draw final component state to an image
- set my own component as glasspane

- the draw the different animation stages in the glasspane component, calling 
repaint() on the glasspane component with a swing timer

- when the animation is done, re-install the original glasspane

The animation is supposed to last 300ms with 20ms increments. On current laptop 
hardware running OS X 10.9.2 and JDK 8, I get exactly *no* animation frames. At 
the same time this works fine on Windows, even running in a Parallels VM on the 
very same hardware.

Some testing reveals that it's the glasspane's fault. The same animation works 
(more or less) smoothly, when using a layered pane.
Now, I don't have to use the glasspane (and perhaps I shouldn't), the layered 
pane works just fine for me. So my initial problem is solved.

But, if I had to use the glasspane, I'd be in trouble. With the current 
performance, it's fairly unusable.

Looking at the code in JRootPane#setGlassPane(Component), the only thing that 
sticks out is:

AWTAccessor.getComponentAccessor().setMixingCutoutShape(glass,new Rectangle());

Anyhow. I couldn't find a corresponding bug, so I figured I bring this to your 
attention. Perhaps this is something you want to investigate further.

Cheers,

-hendrik

Reply via email to