JOGL Deployment

.. bundle .. deploy
JOGL Deployment

# New Applets

You may choose to use traditional Java Applets to deploy your in-browser applet and reference the JOGL resources.

This method simply requires a Java plugin and uses JogAmp's build-in method to automatically load the native JAR files.

AWT/JOGL NApplet Example:

                            <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
                                  width="600" height="400">
                               <param name="code" value="demos.applets.GearsApplet">
                               <param name="archive" value="../jar/gluegen-rt.jar,
                                                               ../jar/jogl-all.jar,
                                                               jar/jogl-demos.jar">
                               <comment>
                                 <embed code="demos.applets.GearsApplet"
                                      width="600" height="400"
                                      type="application/x-java-applet;version=1.6"
                                      pluginspage="http://java.sun.com/javase/downloads/ea.jsp"
                                      archive="../jar/gluegen-rt.jar,
                                               ../jar/jogl-all.jar,
                                               jar/jogl-demos.jar">
                                    <noembed>Sorry, no Java support detected.</noembed>
                                 </embed>
                               </comment>
                            </object>

NEWT/JOGL NApplet Examples:

- Demo on jausoft.com and modules on jogamp.org
- Demo and modules on jogamp.org

# JNLP Files

You may choose to use JNLP to deploy your application or in-browser applet and reference the JOGL resources.

You have the choice to use JNLP Applets or Java Webstart.

You might want to have a look at our Test page for JOGL Applets. Here is a documented example

Supported JNLP bases are:

- `http://jogamp.org/deployment/jogamp-current/` Current Version
- `http://jogamp.org/deployment/jogamp-next/` Next Version
- `http://jogamp.org/deployment/v2.0-rc10/` Specific Version

## Desktop All in One

### With AWT

- `jogl-all-awt.jnlp`
  - `gluegen-rt.jnlp`

### Without AWT

- `jogl-all-noawt.jnlp`
  - `gluegen-rt.jnlp`

### Mobile

- `jogl-all-mobile.jnlp`
  - `gluegen-rt.jnlp`

The above JNLP files will load the GlueGen JARs as well as the JOGL All-In-One JARs.

# JAR Files

## Native JAR Files

All JAR files containing platform dependent native libraries contain the string `natives` and the os.and.arch identifier in their name. The actual native library files are listed below.

### Naming Convention

JogAmp's build system has the notion of os.and.arch string identifier, to name platform dependent build artifacts.
Currently used and supported names are:

- freebsd-i586
- freebsd-amd64
- hpux-hppa
- linux-amd64
- linux-ia64
- linux-i586
- linux-armv6
- linux-armv6hf
- android-armv6
- macosx-universal
- solaris-sparc
- solaris-sparcv9
- solaris-amd64
- solaris-i586
- windows-amd64
- windows-i586

## Gluegen JARs - Mandatory

- `gluegen-rt.jar`
  - `gluegen-rt-natives-os.and.arch.jar`

### JOGL JARs - All-In-One

This might be the best solution for desktop (applets and webstart).
It is much faster to download a (maybe bigger) file once and cache it for most purposes, than to download tens of files where its cache might not be reuseable.

With AWT:

- `jogl-all.jar`
  - `jogl-all-natives-os.and.arch.jar`

Without AWT:

- `jogl-all-noawt.jar`
  - `jogl-all-natives-os.and.arch.jar`

Mobile:

- `jogl-all-mobile.jar`
  - `jogl-all-natives-os.and.arch.jar`

Android:

- `jogl-all-android.jar`
  - `jogl-all-natives-os.and.arch.jar`

### Atomic Deployment

This is a fine tuned solution where every byte counts.
It is also possible to use this strategy as a starting point for efficient manual deployment.

#### Cores

- Mandatory:
  - nativewindow.jar
  - jogl.jar
- Newt (optional):
  - newt.jar
  - newt-ogl.jar (to use NEWT with JOGL)

#### Platform (mandatory)

Chose the same platform for all picks :)

- NativeWindow [pick your platfrom, if available]:
  - nativewindow-os-x11.jar
- JOGL [pick your platform]:
  - jogl-os-x11.jar
  - jogl-os-win.jar
  - jogl-os-osx.jar
  - none
- Newt [pick your platform] (optional):
  - newt-driver-x11.jar
  - newt-driver-win.jar
  - newt-driver-osx.jar
  - newt-driver-kd.jar
  - newt-driver-bcm-vc.jar
  - newt-driver-bcm-old.jar
  - newt-driver-intelgdl.jar
  - none

#### OpenGL Profile (mandatory)

Pick as many as you like, at least 1:

- Embedded Device Profiles
  - jogl-glmobile.jar
    - jogl-glmobile-dbg.jar
- Desktop Profiles
  - jogl-gldesktop.jar
    - jogl-gldesktop-dbg.jar

#### JOGL Toolkits/Misc (optional)

- jogl-util.jar
- jogl-util-gldesktop.jar
- jogl-util-fixedfuncemu.jar

#### AWT (optional)

- nativewindow-awt.jar
- jogl-awt.jar
- jogl-util-awt.jar (if using jogl-util)
- newt-awt.jar (if using with NEWT)

#### GLU (optional)

- jogl-glu-tess.jar
- jogl-glu-mipmap.jar
- jogl-glu-gldesktop.jar

## Native Library Files

Gluegen native libraries:

- libgluegen-rt.so

NativeWindow native libraries

- libnativewindow_awt.so
- libnativewindow_jvm.so
- libnativewindow_x11.so

JOGL native libraries

- libjogl_desktop.so
- libjogl_mobile.so
- libjogl_cg.so

NEWT native libraries

- libnewt.so