G
Gene
We have a medium-sized (abuot 40,000 SLOC) Swing Desktop+JOGL app.
The JOGL part of the system draws on a GLCanvas that's on an initially
hidden tab control. The normal pattern of use is to work in the Swing-
only part of the system and then select the GLCanvas tab to visualize
work so for.
When the user selects the GLCanvas tab, there is a delay of 2 to 20
seconds while the disk clatters and all window activity freezes. Then
all is perfect. Afterward switching among tabs is instantaneous.
So it looks like it's binding dynamic libraries upon the first tab
click when the GLCanvas is first made visible.
The effect is same on XP, Vista, Win 7, 32 and 64-bit and Mac Snow
Leopard (64-bit). We're using most recent versions of Java runtime,
JOGL v1, etc.
What is the best way to have this initialization done before the user
selects the GLCanvas tab? Ideally it should happen in the background
while the user is interacting with the non-JOGL (Swing-only) part of
the system.
I guess we could show a small GLCanvas during startup to force
initialization then, but that's such a horrible kludge, there must be
a better way.
All the best.
The JOGL part of the system draws on a GLCanvas that's on an initially
hidden tab control. The normal pattern of use is to work in the Swing-
only part of the system and then select the GLCanvas tab to visualize
work so for.
When the user selects the GLCanvas tab, there is a delay of 2 to 20
seconds while the disk clatters and all window activity freezes. Then
all is perfect. Afterward switching among tabs is instantaneous.
So it looks like it's binding dynamic libraries upon the first tab
click when the GLCanvas is first made visible.
The effect is same on XP, Vista, Win 7, 32 and 64-bit and Mac Snow
Leopard (64-bit). We're using most recent versions of Java runtime,
JOGL v1, etc.
What is the best way to have this initialization done before the user
selects the GLCanvas tab? Ideally it should happen in the background
while the user is interacting with the non-JOGL (Swing-only) part of
the system.
I guess we could show a small GLCanvas during startup to force
initialization then, but that's such a horrible kludge, there must be
a better way.
All the best.