GLSemHeader GL/glu.h

# This .cfg file provides common options used among all GLU glue code
HierarchicalNativeOutput false

# Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums
TagNativeBinding true

#
# Imports needed by all glue code
#
Import com.jogamp.opengl.*
Import com.jogamp.opengl.glu.*
import com.jogamp.opengl.util.glsl.ShaderState
Import jogamp.opengl.*
Import jogamp.opengl.glu.*
Import jogamp.opengl.glu.tessellator.GLUtessellatorImpl
Import jogamp.opengl.ProjectFloat
Import com.jogamp.common.util.ReflectionUtil

# Raise GLException instead of RuntimeException in glue code
RuntimeExceptionType GLException
UnsupportedExceptionType GLException

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

Opaque boolean GLboolean
Opaque boolean BOOL

#
# 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 (GLU). This library
ClassJavadoc GLU  * provides standard methods for setting up view volumes, building
ClassJavadoc GLU  * mipmaps and performing other common operations.  The GLU NURBS
ClassJavadoc GLU  * routines are not currently exposed.
ClassJavadoc GLU  * 
ClassJavadoc GLU  * <P>
ClassJavadoc GLU  *
ClassJavadoc GLU  * Notes from the Reference Implementation for this class:
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  */

#
# 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).
# 

#
# ------------------------
#    Utility routines
# ------------------------
#

# These are implemented by pure Java
Ignore gluCheckExtension
Ignore gluErrorString
Ignore gluGetString

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

#
# ------------------------
#     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 GLUtesselator

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

# Manually implement the GLU quadric functionality to mostly conform
# to the C APIs
Ignore GLUquadric
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
Ignore gluProject
Ignore gluUnProject
Ignore gluUnProject4

# Manually implement the rest of the projection / unprojection APIs
Ignore gluOrtho2D
Ignore gluPerspective
Ignore gluLookAt
Ignore gluPickMatrix
