Subsections

- 1.5.1 History
- 1.5.2 Our Work
- 1.5.3 Status
- 1.5.4 Targets

# 1.5 The Procedure

## 1.5.1 History

The OpenGL interface for Java work was started by Leo Chan[6]. He implements the library with Java 1.0.2 native calls and with an extra window for OpenGL-Rendering.

Leo Chan's works was continued by Adam King[7]. His OpenGL4Java is able to be compiled with Java 1.1 and the OpenGL-Rendering is done in the calling Java-Frame. He still uses the Java 1.0.2 native calls.

Tommy Reilly[8] participated to Adam King's work and the project's title changed to Jogl. Jogl's big points lies in it's powerfull autoconfig and in it's improved X-Window System functions - so mostly all Unices are supported. Another point is the Win32 support. Sources and a precompiled dll are distributed. Jogl still differs from the true OpenGL naming convention.

Because of newly communication results, we are thinking about joining the Jogl project. This does not means, that there will be no more GL4Java ! We still support the GL4Java, with the OpenGL like API (naming conventions) !

## 1.5.2 Our Work

We started developing GL4Java with Adam King's[7] OpenGL4Java. As a matter of asynchronise development, the changes from Java 1.0.2 to JNI 1.1 native calls were made within the Jogl and GL4Java project parallel - because we did not know of each others development.

Actual results and later changes in Jogl are ported and will be ported to GL4Java. Like Jogl, GL4Java uses the Java 1.1 Java-Native-Interface (JNI). Many incompatible changes to OpenGL4Java/Jogl were made, see the chapter 7.0.2 at page .

One big point of GL4Java is the used OpenGL naming convention, support for glu* and glut* functions (glut support in the near future).

GL4Java extends OpenGL's API with an own naming convention. Specialised known windowing functions, like glXSwapBuffers, have the prefix glj, like gljSwap.

Also the GLFrame class adds itself as a ComponentListener, so we have a event-handler in java, like reshape for glut !

If we uses a own created Color-Window as the GL-Window (not usefull for AIX, LINUX AND SOLARIS YET), gljResize will be called if the componentResized is called (ComponentListener) to resize the own created Window !

## 1.5.3 Status

We can announce the following stats about GL4Java Version 2.1.0.0

- Stable versions with precompiled librarys for Linux, SunOS (Solaris), Windows (95/NT) and Macintosh.
- Runs on Java 1.1.5 and higher, tested on:
  - JDK 1.1.7 (win32 (plus jit), linux (plus jit (tya v3.0)))
  - JDK 1.2 (Win32, Linux (Pre-V1,native,no-jit), Macintosh, ...)
  - Java2 (Java1.2) Plug-In on Netscape 4.5 (Win32)
  - Netscape 4.5 (Win32/Unix)
  - MS-JVM (build 3186) Win32
  - InternetExplorer4.0 with MS-JVM (build 3186) Win32
- AIX stable version with some multithreading difficulties
- Many demonstrations of GL4Java, which also uses many Java GUI features.
- A JavaDoc HTML-Documentation

## 1.5.4 Targets

If you use Mesa as your OpenGL driver, you should use Mesa Version 3.0 or higher !

The actual implementation of GL4Java supports the following UNICES

- AIX (RS/6000) 4.2 with JDK 1.1.5 (without JIT_COMPILER option)
- Linux (x86) 2.X with Mesa-3.0 and Metro-Link's GL and Xi's Accelerated OpenGL + JDK 1.1.7
- SunOS (Sparc) 5.X with Mesa-2.4 GL with JDK 1.1.5 (green threads)
- SGI-Irix
- Macintosh

but if you know about programming, i guess it only makes little afford to support your unix.

And the following Windows

- Windows NT 4.0 & 95/98 (x86) with MS OpenGL-Library + JDK 1.1.7
- Windows NT 4.0 & 95/98 (x86) with MS OpenGL-Library + MS-JVM (build 3186)