# 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
JavaOutputDir ../build/gensrc/classes
NativeOutputDir ../build/gensrc/native/jogl
HierarchicalNativeOutput false

#
# Need to import New IO for Buffer classes
#
Import java.nio.*

# Raise GLException instead of RuntimeException in glue code
RuntimeExceptionType GLException

#
# Opaques and other directives for platform-independent routines
#

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. 
#
Ignore GLU_VERSION_.+

#
# Ignore the non-GLU functions 
#
Ignore gl[^u].+

#
# Ignore the non-GLU constants
#
Ignore GL[^U]?_.+

#
# Ignore the GLU extension constants, since we don't need them java-side
#
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  */

# Javadoc for the GLUnurbs class
ClassJavadoc GLUnurbs /**
ClassJavadoc GLUnurbs  * Wrapper for a GLU NURBS object.
ClassJavadoc GLUnurbs  */

# Javadoc for the GLUquadric class
ClassJavadoc GLUquadric /**
ClassJavadoc GLUquadric  * Wrapper for a GLU quadric object.
ClassJavadoc GLUquadric  */

# Javadoc for the GLUtesselator class
ClassJavadoc GLUtesselator /**
ClassJavadoc GLUtesselator  * Wrapper for a GLU tesselator object.
ClassJavadoc GLUtesselator  */

#
# ------------------------
#         NURBS
# ------------------------
#

#
# !!!!!!!!!!!!! FIXME:
# Ignore these Nurbs things until we get other stuff working
#
Ignore gluBeginCurve
Ignore gluBeginSurface
Ignore gluBeginTrim
Ignore gluEndCurve
Ignore gluEndSurface
Ignore gluEndTrim
Ignore gluLoadSamplingMatrices
Ignore gluPwlCurve
Ignore gluNewNurbsRenderer
Ignore gluDeleteNurbsRenderer
Ignore gluNurbsProperty
Ignore gluGetNurbsProperty
Ignore gluNurbsCallback.*
Ignore gluNurbsCurve
Ignore gluNurbsSurface
Ignore GLU_NURB.+
Ignore GLU_.*PARAMETRIC.+

#
# ------------------------
#     Tesselators
# ------------------------
#

#
# Ignore these methods; we must manually implement their C and Java code
#
Ignore gluBeginPolygon
Ignore gluTessCallback
Ignore gluDeleteTess
Ignore gluEndPolygon
Ignore gluGetTessProperty
Ignore gluNewTess
Ignore gluNextContour
Ignore gluTessBeginContour
Ignore gluTessBeginPolygon
Ignore gluTessEndContour
Ignore gluTessEndPolygon
Ignore gluTessNormal
Ignore gluTessProperty
Ignore gluTessVertex
Ignore gluTessCallback.*
Ignore GLU_TESS.+

#
# ------------------------
#     Quadrics
# ------------------------
#
#
# !!!!!!!!!!!!! FIXME:
# Ignore these Quadric things until we get other stuff working
#
Ignore gluQuadricCallback.*