# This .cfg file provides common options used among gl2 GLU glue code
# generated for Jogl on all platforms.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/gl2

Style ImplOnly
ImplPackage javax.media.opengl.glu.gl2
ImplJavaClass GLUgl2
ParentClass GLUgl2 GLU

CustomCCode #if defined(WIN32)
CustomCCode   #define WIN32_LEAN_AND_MEAN
CustomCCode   #include <windows.h>
CustomCCode   #undef WIN32_LEAN_AND_MEAN
CustomCCode 
CustomCCode   #include <stddef.h>
CustomCCode #elif defined(macosx)
CustomCCode   #include <inttypes.h>
CustomCCode   #include <jni.h>
CustomCCode   #include </usr/include/machine/types.h>
CustomCCode #elif defined(__unix__)
CustomCCode   #include <inttypes.h>
CustomCCode #endif

Include ../intptr.cfg

EmitProcAddressTable true
ProcAddressTablePackage   jogamp.opengl.glu.gl2
ProcAddressTableClassName GLUgl2ProcAddressTable
GetProcAddressTableExpr   getGLUProcAddressTable()

CustomCCode /* Include the OpenGL GLU header */
CustomCCode #include <GL/glu.h>

# Custom Java code for GLU class
IncludeAs CustomJavaCode GLUgl2 glu-CustomJavaCode-gl2.java

# GLU needs access to the GLUtesselatorImpl class for GLUtesselator,
# to the Mipmap class for scaling and mipmap generation,
# and to the nurbs.* package for the NURBS functionality
Import jogamp.opengl.glu.nurbs.*
Import java.security.*
Import com.jogamp.gluegen.runtime.opengl.GLProcAddressResolver
Import jogamp.opengl.glu.gl2.nurbs.*
Import jogamp.opengl.glu.mipmap.Mipmap
Import jogamp.opengl.glu.gl2.*
Import javax.media.opengl.GL2
Import jogamp.opengl.gl2.ProjectDouble

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

Include glu-common.cfg