Bug 306 - Split JARs for JOGLAppletLauncher
Summary: Split JARs for JOGLAppletLauncher
Alias: None
Product: Jogl
Classification: JogAmp
Component: core (show other bugs)
Version: 1
Hardware: All all
: P3 normal
Assignee: Sven Gothel
Depends on:
Reported: 2007-07-04 07:03 CEST by Sven Gothel
Modified: 2015-09-27 03:14 CEST (History)
0 users

See Also:
SCM Refs:
Workaround: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2010-03-24 07:50:40 CET

---- Reported by corthbandt 2007-07-04 07:03:46 ----

The JOGL jar has become quite big (1 MB). For a better user experience we'd 
like to display sort of a splash screen and a custom progress bar.
But there's one JOGL component I can't delay-load: JOGLAppletLauncher. And 
since it sits inside that big jogl.jar the browser has to fetch quite a lot 
before my applet has a chance to run.
If the JOGLAppletLauncher was available (including it's JOGL dependencies of 
course) as a separate, smaller JAR file I could have this init order:
fetch JOGLAppletLauncher.jar -> fetch MyApplet.jar -> [Init Splashscreen] -> 
fetch MyRsc1.jar -> fetch MyRsc2.jar -> fetch jogl.jar... -> fetch 
MyGameCode.jar -> [Run Game]

That way I'd have control over what gets loaded when and could display my 
progress bar.

An alternative (and probably easier) approach would be to separate optional 
JOGL components into an extra JAR. Looking at the contents and sizes of 
jogl.jar my candidates would be:
- Debug helpers (javax.media.opengl.TraceGL, javax.media.opengl.DebugGL)
- Font data (com.sun.opengl.util.GLUTBitmap*)
- CG stuff (com.sun.opengl.cg.*)
- possibly com.sun.opengl.impl parts

This would reduce the initial download size quite a bit (~300 kB).

But really I'd prefer if only the stuff needed for startup was packaged 

On a side note: AFAICS, JOGLAppletLauncher is supposed to load the DLLs/SOs in 
parallel. My experiments at least indicate that those binary modules are still 
loaded before my code gets any chance to run.

---- Additional Comments From corthbandt 2007-07-04 07:20:38 ----

Two points of clarification might be useful:
1st: The loading screen would be stock AWT of course, no OGL there
2nd: Yes I could package these JARs myself but I'd like to keep the benefit of 
a widely trusted signing authority (Sun) instead of signing them myself.

---- Additional Comments From kbr 2007-07-04 14:52:52 ----

A new JNLPAppletLauncher has been released today which should address your
primary concern of initial download size. It is available at
http://applet-launcher.dev.java.net/ and a version of JOGL (1.1.1-rc3) was
released today which supports it. Please try it and post on the JOGL forum with
any feedback. We don't intend to split up jogl.jar, as DebugGL and TraceGL
actually do not add that much space above the base GL class. Also, the Pack200
compressed version of jogl.jar, which will be downloaded automatically if the
client is JDK 1.5 or above, is about 300K, or about 1/3 the size of the
uncompressed jogl.jar.

--- Bug imported by sgothel@jausoft.com 2010-03-24 07:50 EDT  ---

This bug was previously known as _bug_ 306 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=306