# This .cfg file provides common options used among all GLU glue code # generated for Jogl on all platforms. 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() # Pick up on-line OpenGL javadoc thanks to user cylab on javagaming.org forums TagNativeBinding true # # Imports needed by all glue code # Import java.nio.* Import javax.media.opengl.* Import javax.media.opengl.glu.* Import com.sun.opengl.impl.* # 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 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.impl.nurbs.* Import com.sun.opengl.util.* Import java.security.* # Custom Java code for GLU class IncludeAs CustomJavaCode GLU glu-CustomJavaCode.java CustomCCode /* Include the OpenGL GLU header */ CustomCCode #include # Raise GLException instead of RuntimeException in glue code RuntimeExceptionType 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 *

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