aboutsummaryrefslogtreecommitdiffstats
path: root/make/glu-common.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'make/glu-common.cfg')
-rw-r--r--make/glu-common.cfg193
1 files changed, 117 insertions, 76 deletions
diff --git a/make/glu-common.cfg b/make/glu-common.cfg
index 917a95a62..e0a5b150a 100644
--- a/make/glu-common.cfg
+++ b/make/glu-common.cfg
@@ -1,19 +1,39 @@
# This .cfg file provides common options used among all GLU glue code
# generated for Jogl on all platforms.
-Package net.java.games.jogl
-ImplPackage net.java.games.jogl.impl
-JavaClass GLU
-ImplJavaClass GLUImpl
+Style ImplOnly
+ImplPackage javax.media.opengl.glu
+ImplJavaClass GLU
JavaOutputDir ../build/gensrc/classes
NativeOutputDir ../build/gensrc/native/jogl
HierarchicalNativeOutput false
+EmitProcAddressTable true
+ProcAddressTablePackage com.sun.opengl.impl
+ProcAddressTableClassName GLUProcAddressTable
+GetProcAddressTableExpr getGLUProcAddressTable()
+
#
# Imports needed by all glue code
#
Import java.nio.*
-Import net.java.games.jogl.*
-Import net.java.games.jogl.impl.*
+Import javax.media.opengl.*
+Import javax.media.opengl.glu.*
+Import com.sun.opengl.impl.*
+
+# GLU needs access to the GLUtesselatorImpl class for GLUtesselator
+# and to the Mipmap class for scaling and mipmap generation
+Import com.sun.opengl.impl.tessellator.GLUtessellatorImpl
+Import com.sun.opengl.impl.error.Error
+Import com.sun.opengl.impl.mipmap.Mipmap
+Import com.sun.opengl.impl.registry.Registry
+Import com.sun.opengl.utils.*
+Import java.security.*
+
+# Custom Java code for GLU class
+IncludeAs CustomJavaCode GLU glu-CustomJavaCode.java
+
+CustomCCode /* Include the OpenGL GLU header */
+CustomCCode #include <GL/glu.h>
# Raise GLException instead of RuntimeException in glue code
RuntimeExceptionType GLException
@@ -26,25 +46,6 @@ Opaque boolean GLboolean
Opaque boolean BOOL
#
-# Some functions that return native byte pointers or accept them as
-# arguments should have them auto-converted to Java Strings
-#
-ReturnsString gluGetString
-ReturnsString gluErrorString
-ArgumentIsString gluCheckExtension 0 1
-
-#
-# Some routines should only use the Java New IO package
-#
-#NIOOnly gluScaleImage
-#NIOOnly gluBuild1DMipmaps
-#NIOOnly gluBuild2DMipmaps
-#NIOOnly gluBuild3DMipmaps
-#NIOOnly gluBuild1DMipmapLevels
-#NIOOnly gluBuild2DMipmapLevels
-#NIOOnly gluBuild3DMipmapLevels
-
-#
# Don't output #defines of GLU version identifier strings as constants,
# because we don't need them java-side.
#
@@ -67,24 +68,38 @@ Ignore GLU_EXT_.+
# Javadoc for the GLU class
ClassJavadoc GLU /**
-ClassJavadoc GLU * Provides access to the OpenGL utility library routines.
-ClassJavadoc GLU * See {@link GL} for more information.
+ClassJavadoc GLU * Provides access to the OpenGL Utility Library (GLU). This library
+ClassJavadoc GLU * provides standard methods for setting up view volumes, building
+ClassJavadoc GLU * mipmaps and performing other common operations.
+ClassJavadoc GLU *
+ClassJavadoc GLU * <P>
+ClassJavadoc GLU *
+ClassJavadoc GLU * Thanks to the contributions of many individuals, this class is a
+ClassJavadoc GLU * pure Java port of SGI's original C sources. All of the projection,
+ClassJavadoc GLU * mipmap, scaling, and tessellation routines that are exposed are
+ClassJavadoc GLU * compatible with the GLU 1.3 specification. The GLU NURBS routines
+ClassJavadoc GLU * are not currently exposed.
ClassJavadoc GLU */
-# Javadoc for the GLUnurbs class
-ClassJavadoc GLUnurbs /**
-ClassJavadoc GLUnurbs * Wrapper for a GLU NURBS object.
-ClassJavadoc GLUnurbs */
+#
+# We ignore most of the function declarations in glu.h because we
+# provide a pure Java implementation of most of GLU. Currently the
+# only reason we generate glue code for this class is to provide a
+# fallback path to the C code for the mipmap routines in case of bugs
+# with the Java port (although it has been pretty thoroughly debugged
+# at this point).
+#
-# Javadoc for the GLUquadric class
-ClassJavadoc GLUquadric /**
-ClassJavadoc GLUquadric * Wrapper for a GLU quadric object.
-ClassJavadoc GLUquadric */
+#
+# ------------------------
+# Utility routines
+# ------------------------
+#
-# Javadoc for the GLUtesselator class
-ClassJavadoc GLUtesselator /**
-ClassJavadoc GLUtesselator * Wrapper for a GLU tesselator object.
-ClassJavadoc GLUtesselator */
+# These are implemented by pure Java
+Ignore gluCheckExtension
+Ignore gluErrorString
+Ignore gluGetString
#
# ------------------------
@@ -113,6 +128,7 @@ Ignore gluNurbsCurve
Ignore gluNurbsSurface
Ignore GLU_NURB.+
Ignore GLU_.*PARAMETRIC.+
+Ignore GLUnurbs
#
# ------------------------
@@ -154,16 +170,16 @@ Ignore gluQuadricCallback.*
# Manually implement the GLU quadric functionality to mostly conform
# to the C APIs
Ignore GLUquadric
-ManuallyImplement gluCylinder
-ManuallyImplement gluDeleteQuadric
-ManuallyImplement gluDisk
-ManuallyImplement gluNewQuadric
-ManuallyImplement gluPartialDisk
-ManuallyImplement gluQuadricDrawStyle
-ManuallyImplement gluQuadricNormals
-ManuallyImplement gluQuadricOrientation
-ManuallyImplement gluQuadricTexture
-ManuallyImplement gluSphere
+Ignore gluCylinder
+Ignore gluDeleteQuadric
+Ignore gluDisk
+Ignore gluNewQuadric
+Ignore gluPartialDisk
+Ignore gluQuadricDrawStyle
+Ignore gluQuadricNormals
+Ignore gluQuadricOrientation
+Ignore gluQuadricTexture
+Ignore gluSphere
# Ignore a few of the projection/unprojection APIs altogether because
# their signatures aren't specified correctly in the header file
@@ -172,35 +188,60 @@ Ignore gluUnProject
Ignore gluUnProject4
# Manually implement the rest of the projection / unprojection APIs
-ManuallyImplement gluOrtho2D
-ManuallyImplement gluPerspective
-ManuallyImplement gluLookAt
-ManuallyImplement gluPickMatrix
+Ignore gluOrtho2D
+Ignore gluPerspective
+Ignore gluLookAt
+Ignore gluPickMatrix
+
+
+
+
+
+#
+# Some functions that return native byte pointers or accept them as
+# arguments should have them auto-converted to Java Strings
+#
+# ReturnsString gluGetString
+# ReturnsString gluErrorString
+# ArgumentIsString gluCheckExtension 0 1
+
+#
+# Some routines should only use the Java New IO package
+#
+#NIOOnly gluScaleImage
+#NIOOnly gluBuild1DMipmaps
+#NIOOnly gluBuild2DMipmaps
+#NIOOnly gluBuild3DMipmaps
+#NIOOnly gluBuild1DMipmapLevels
+#NIOOnly gluBuild2DMipmapLevels
+#NIOOnly gluBuild3DMipmapLevels
#
# ------------------------
-# Mipmaps
+# Mipmaps
# ------------------------
#
-# Ignore the mipmap routines and use GKW's Java port instead.
-# Currently the Java and native code have fallback paths to the
-# C code, but this will be removed in a future release.
-
-Ignore gluBuild1DMipmapLevels
-Ignore gluBuild1DMipmaps
-Ignore gluBuild2DMipmapLevels
-Ignore gluBuild2DMipmaps
-Ignore gluBuild3DMipmapLevels
-Ignore gluBuild3DMipmaps
-Ignore gluScaleImage
-
-# Must force proc address generation for these routines, though, since
-# we still fall back on the C implementations
-
-ForceProcAddressGen gluBuild1DMipmapLevels
-ForceProcAddressGen gluBuild1DMipmaps
-ForceProcAddressGen gluBuild2DMipmapLevels
-ForceProcAddressGen gluBuild2DMipmaps
-ForceProcAddressGen gluBuild3DMipmapLevels
-ForceProcAddressGen gluBuild3DMipmaps
-ForceProcAddressGen gluScaleImage
+# Ignore the C versions of the mipmap code in the public interface and
+# use GKW's Java port instead. The bindings to the C entry points are
+# still being left in for now, but only for debugging purposes and the
+# intent is to remove them in a future release.
+
+# Emit these entry points as private
+
+AccessControl gluBuild1DMipmapLevels PRIVATE
+AccessControl gluBuild1DMipmaps PRIVATE
+AccessControl gluBuild2DMipmapLevels PRIVATE
+AccessControl gluBuild2DMipmaps PRIVATE
+AccessControl gluBuild3DMipmapLevels PRIVATE
+AccessControl gluBuild3DMipmaps PRIVATE
+AccessControl gluScaleImage PRIVATE
+
+# Rename these methods in the implementing class
+
+RenameJavaMethod gluBuild1DMipmapLevels gluBuild1DMipmapLevelsC
+RenameJavaMethod gluBuild1DMipmaps gluBuild1DMipmapsC
+RenameJavaMethod gluBuild2DMipmapLevels gluBuild2DMipmapLevelsC
+RenameJavaMethod gluBuild2DMipmaps gluBuild2DMipmapsC
+RenameJavaMethod gluBuild3DMipmapLevels gluBuild3DMipmapLevelsC
+RenameJavaMethod gluBuild3DMipmaps gluBuild3DMipmapsC
+RenameJavaMethod gluScaleImage gluScaleImageC