#
5.2 C2J Version 1.0

As decribed in chapter 3.2.1 on page , we use C2J as our OpenGL wrapper functions generator. C2J is our JNI and MSJDirect file generator. C2J creates the java native function declarations and the C functions. C2J gets a modified Mesa-OpenGL header file as it's input and generates the java native declarations in one file, and the complete C functions in another file. C2J is written in an Extended Backus Naur Form (EBNF) of the JavaCC[9]parser generator. We modified the C parser provided with the JavaCC to write C2J.

The C2J syntax can seen in GL4Java/C2J/C2J.jj !

The C2J output files are glued with the other parts needed by the java class and the C definition-file to the complete sources.

The new C2J Version supports the following new features:

1. Only the glGetString, gluGetString and gluErrorString functions must be written manualy now !!!!

2. Better compatibility with GLvoid * arguments. This means

       	"byte[]", "short[]", "int[]",
       	"float[]", "double[]", "boolean[]", "long[]"

   functions are generated !

3. Better MS-JDirect (MS-JVM) integeration !

The source files are:

`C2J/C2J.jj` | the parser definition (input for JavaCC)
`C2J/makefile` | the lokal makefile
`C2J/gl-enum-auto.orig` | the OpenGL enumeration part, C2J input
`C2J/gl-proto-auto.orig` | the OpenGL declaration part, C2J input
`C2J/glu-enum-auto.orig` | the GLU enumeration part
`C2J/glu-proto-auto.orig` | the GLU declarartion part
`C2J/manual/gl-manualCoded.orig` | the GL manual coded C2J input
`C2J/manual/glu-manualCoded.orig` | the GL manual coded C2J input part
`C2J/manual/gl-enum-manualCoded.java` | the GL manual coded java part
`C2J/manual/glu-enum-manualCoded.java` | the GLU manual coded java part
`C2J/manual/glu-manualCodedImplJNI.c` | the GLU manual coded c part
`C2J/manual/glu-manualCodedImplJNI.h` | the GLU manual coded c part
`C2J/manual/glu-manualCodedImplJNI.java` | the GLU manual coded java part
`C2J/manual/glu-manualCodedImplMSJVM.java` | the GLU manual coded java part
`C2J/manual/glu-manualCodedVirt.java` | the GLU manual coded java part
`C2J/manual/gl-manualCodedImplJNI.c` | the GL manual coded c part
`C2J/manual/gl-manualCodedVirt.java` | the GL manual coded java part
`C2J/manual/gl-manualCodedImplJNI.java` | the GL manual coded java part
`C2J/manual/gl-manualCodedImplMSJVM.java` | the GL manual coded java part