From d6f9dbc493df725d3d574403549de142c5e1222a Mon Sep 17 00:00:00 2001
From: Kenneth Russel The basic interface to OpenGL, providing access to core
@@ -220,25 +357,16 @@ ClassJavadoc GL * However, in this case it is up to the end user to know which
ClassJavadoc GL * routines or functionality are associated with which OpenGL
ClassJavadoc GL * extensions.
ClassJavadoc GL *
-ClassJavadoc GL * Access to window system-specific extensions is provided through
-ClassJavadoc GL * the {@link WGL} and {@link GLX} interfaces. However, most of these
-ClassJavadoc GL * extensions require access to low-level window system data
-ClassJavadoc GL * structures which are not exposed by this binding, and are therefore
-ClassJavadoc GL * not useful. Calling one particular window system's extension on
-ClassJavadoc GL * another platform will cause a {@link GLException} to be raised
-ClassJavadoc GL * indicating the routine is unimplemented on the current platform.
-ClassJavadoc GL * Exceptions to the window system extension naming rules:
ClassJavadoc GL *
ClassJavadoc GL *
ClassJavadoc GL *
-ClassJavadoc GL *
wglAllocateMemoryNV
/
+ClassJavadoc GL * glXAllocateMemoryNV
and associated routines. {@link
+ClassJavadoc GL * #glAllocateMemoryNV} has been provided for window system-independent
+ClassJavadoc GL * access to VAR. {@link #isFunctionAvailable} will translate an argument
+ClassJavadoc GL * of "glAllocateMemoryNV" or "glFreeMemoryNV" into the appropriate
ClassJavadoc GL * window system-specific name.
wglAllocateMemoryNV
/
+CustomJavaCode GL * glXAllocateMemoryNV
extension.
CustomJavaCode GL */
CustomJavaCode GL public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3);
@@ -354,6 +482,38 @@ CustomJavaCode GL have an effect, and in particular only affects heavyweig
CustomJavaCode GL onscreen components. */
CustomJavaCode GL public void setSwapInterval(int interval);
+CustomJavaCode GL /**
+CustomJavaCode GL * Returns an object through which platform-specific OpenGL extensions
+CustomJavaCode GL * (WGL, GLX, etc.) may be accessed. The data type of the returned
+CustomJavaCode GL * object and its associated capabilities are undefined. Most
+CustomJavaCode GL * applications will never need to call this method. It is highly
+CustomJavaCode GL * recommended that any applications which do call this method perform
+CustomJavaCode GL * all accesses on the returned object reflectively to guard
+CustomJavaCode GL * themselves against changes to the implementation.
+CustomJavaCode GL */
+CustomJavaCode GL public Object getPlatformGLExtensions();
+
+CustomJavaCode GL /**
+CustomJavaCode GL * Returns an object providing access to the specified OpenGL
+CustomJavaCode GL * extension. This is intended to provide a mechanism for vendors who
+CustomJavaCode GL * which to provide access to new OpenGL extensions without changing
+CustomJavaCode GL * the public API of the core package. For example, a user may request
+CustomJavaCode GL * access to extension "GL_VENDOR_foo" and receive back an object
+CustomJavaCode GL * which implements a vendor-specified interface which can call the
+CustomJavaCode GL * OpenGL extension functions corresponding to that extension. It is
+CustomJavaCode GL * up to the vendor to specify both the extension name and Java API
+CustomJavaCode GL * for accessing it, including which class or interface contains the
+CustomJavaCode GL * functions.
+CustomJavaCode GL *
+CustomJavaCode GL *
+CustomJavaCode GL *
+CustomJavaCode GL * Note: it is the intent to add new extensions as quickly as possible
+CustomJavaCode GL * to the core GL API. Therefore it is unlikely that most vendors will
+CustomJavaCode GL * use this extension mechanism, but it is being provided for
+CustomJavaCode GL * completeness.
+CustomJavaCode GL */
+CustomJavaCode GL public Object getExtension(String extensionName);
+
#
# Directives needed when processing wglext.h on Windows and other platforms
#
diff --git a/make/gl-glx-common.cfg b/make/gl-glx-common.cfg
deleted file mode 100644
index a613149bc..000000000
--- a/make/gl-glx-common.cfg
+++ /dev/null
@@ -1,85 +0,0 @@
-# This .cfg file causes the core GLX routines to be ignored from both
-# the public API as well as from the GL implementation files on
-# non-X11 platforms.
-
-# Ignore all of the core GLX routines, which are exposed only in the
-# implementation GLX class
-Ignore glXChooseVisual
-Ignore glXCreateContext
-Ignore glXDestroyContext
-Ignore glXMakeCurrent
-Ignore glXCopyContext
-Ignore glXSwapBuffers
-Ignore glXCreateGLXPixmap
-Ignore glXDestroyGLXPixmap
-Ignore glXQueryExtension
-Ignore glXQueryVersion
-Ignore glXIsDirect
-Ignore glXGetConfig
-Ignore glXGetCurrentContext
-Ignore glXGetCurrentDrawable
-Ignore glXWaitGL
-Ignore glXWaitX
-Ignore glXUseXFont
-Ignore glXQueryExtensionsString
-Ignore glXQueryServerString
-Ignore glXGetClientString
-Ignore glXGetCurrentDisplay
-Ignore glXChooseFBConfig
-Ignore glXGetFBConfigAttrib
-Ignore glXGetFBConfigs
-Ignore glXGetVisualFromFBConfig
-Ignore glXCreateWindow
-Ignore glXDestroyWindow
-Ignore glXCreatePixmap
-Ignore glXDestroyPixmap
-Ignore glXCreatePbuffer
-Ignore glXDestroyPbuffer
-Ignore glXQueryDrawable
-Ignore glXCreateNewContext
-Ignore glXMakeContextCurrent
-Ignore glXGetCurrentReadDrawable
-Ignore glXQueryContext
-Ignore glXSelectEvent
-Ignore glXGetSelectedEvent
-Ignore glXGetProcAddress
-
-# Ignore a few extensions that bring in data types we don't want to
-# expose in the public API (and that are useless anyway without
-# exposing more of the implementation)
-Ignore glXGetFBConfigAttribSGIX
-Ignore glXChooseFBConfigSGIX
-Ignore glXCreateGLXPixmapWithConfigSGIX
-Ignore glXCreateContextWithConfigSGIX
-Ignore glXGetVisualFromFBConfigSGIX
-Ignore glXGetFBConfigFromVisualSGIX
-Ignore glXCreateGLXPbufferSGIX
-Ignore glXDestroyGLXPbufferSGIX
-Ignore glXQueryGLXPbufferSGIX
-Ignore glXSelectEventSGIX
-Ignore glXGetSelectedEventSGIX
-Ignore glXCreateGLXPixmapMESA
-
-# Now we can ignore the GLXFBConfig and XVisualInfo data types in the
-# public API on all platforms
-Ignore GLXFBConfig
-Ignore XVisualInfo
-
-# Ignore the SGI hyperpipe extension, which will require more GlueGen
-# work to expose the pipeName fields in the various structs
-Ignore glXQueryHyperpipeNetworkSGIX
-Ignore glXHyperpipeConfigSGIX
-Ignore glXQueryHyperpipeConfigSGIX
-Ignore glXDestroyHyperpipeConfigSGIX
-Ignore glXBindHyperpipeSGIX
-Ignore glXQueryHyperpipeBestAttribSGIX
-Ignore glXHyperpipeAttribSGIX
-Ignore glXQueryHyperpipeAttribSGIX
-Ignore GLXHyperpipeNetworkSGIX
-Ignore GLXHyperpipeConfigSGIX
-Ignore GLXPipeRect
-Ignore GLXPipeRectLimits
-
-# XID shows up in the public API (and shouldn't -- will be removed in
-# the JSR 231/239 APIs) and needs to be treated as a long for now
-Opaque long XID
diff --git a/make/gl-glx-x11.cfg b/make/gl-glx-x11.cfg
deleted file mode 100644
index 359e35c62..000000000
--- a/make/gl-glx-x11.cfg
+++ /dev/null
@@ -1,14 +0,0 @@
-# This .cfg file is used to generate the interface which contains the
-# window system-specific extensions which are exposed (via
-# inheritance) to the GL interface.
-Package net.java.games.jogl
-Style InterfaceOnly
-JavaClass GLX
-Include gl-common-x11.cfg
-
-# Ignore everything that doesn't start with glX or GLX
-IgnoreNot ^(glX|GLX).+
-
-# Pick up ignores that must also be included in other platforms' impl
-# files
-Include gl-glx-common.cfg
diff --git a/make/gl-impl-CustomCCode.c b/make/gl-impl-CustomCCode.c
index f0c7cb45a..2ea5376e7 100644
--- a/make/gl-impl-CustomCCode.c
+++ b/make/gl-impl-CustomCCode.c
@@ -1,10 +1,10 @@
/* Java->C glue code:
- * Java package: net.java.games.jogl.impl.windows.WindowsGLImpl
+ * Java package: net.java.games.jogl.impl.GLImpl
* Java method: long dispatch_glMapBuffer(int target, int access)
* C function: LPVOID glMapBuffer(GLenum target, GLenum access);
*/
JNIEXPORT jlong JNICALL
-Java_net_java_games_jogl_impl_windows_WindowsGLImpl_dispatch_1glMapBuffer(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
+Java_com_sun_opengl_impl_GLImpl_dispatch_1glMapBuffer(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
PFNGLMAPBUFFERPROC ptr_glMapBuffer;
LPVOID _res;
ptr_glMapBuffer = (PFNGLMAPBUFFERPROC) (intptr_t) glProcAddress;
@@ -14,12 +14,12 @@ Java_net_java_games_jogl_impl_windows_WindowsGLImpl_dispatch_1glMapBuffer(JNIEnv
}
/* Java->C glue code:
- * Java package: net.java.games.jogl.impl.windows.WindowsGLImpl
+ * Java package: net.java.games.jogl.impl.GLImpl
* Java method: long dispatch_glMapBufferARB(int target, int access)
* C function: LPVOID glMapBufferARB(GLenum target, GLenum access);
*/
JNIEXPORT jlong JNICALL
-Java_net_java_games_jogl_impl_windows_WindowsGLImpl_dispatch_1glMapBufferARB(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
+Java_com_sun_opengl_impl_GLImpl_dispatch_1glMapBufferARB(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
PFNGLMAPBUFFERARBPROC ptr_glMapBufferARB;
LPVOID _res;
ptr_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) (intptr_t) glProcAddress;
@@ -27,65 +27,3 @@ Java_net_java_games_jogl_impl_windows_WindowsGLImpl_dispatch_1glMapBufferARB(JNI
_res = (* ptr_glMapBufferARB) ((GLenum) target, (GLenum) access);
return (jlong) (intptr_t) _res;
}
-
-/* Java->C glue code:
- * Java package: net.java.games.jogl.impl.x11.X11GLImpl
- * Java method: long dispatch_glMapBuffer(int target, int access)
- * C function: LPVOID glMapBuffer(GLenum target, GLenum access);
- */
-JNIEXPORT jlong JNICALL
-Java_net_java_games_jogl_impl_x11_X11GLImpl_dispatch_1glMapBuffer(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
- PFNGLMAPBUFFERPROC ptr_glMapBuffer;
- LPVOID _res;
- ptr_glMapBuffer = (PFNGLMAPBUFFERPROC) (intptr_t) glProcAddress;
- assert(ptr_glMapBuffer != NULL);
- _res = (* ptr_glMapBuffer) ((GLenum) target, (GLenum) access);
- return (jlong) (intptr_t) _res;
-}
-
-/* Java->C glue code:
- * Java package: net.java.games.jogl.impl.x11.X11GLImpl
- * Java method: long dispatch_glMapBufferARB(int target, int access)
- * C function: LPVOID glMapBufferARB(GLenum target, GLenum access);
- */
-JNIEXPORT jlong JNICALL
-Java_net_java_games_jogl_impl_x11_X11GLImpl_dispatch_1glMapBufferARB(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
- PFNGLMAPBUFFERARBPROC ptr_glMapBufferARB;
- LPVOID _res;
- ptr_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) (intptr_t) glProcAddress;
- assert(ptr_glMapBufferARB != NULL);
- _res = (* ptr_glMapBufferARB) ((GLenum) target, (GLenum) access);
- return (jlong) (intptr_t) _res;
-}
-
-/* Java->C glue code:
- * Java package: net.java.games.jogl.impl.macosx.MacOSXGLImpl
- * Java method: long dispatch_glMapBufferARB(int target, int access)
- * C function: LPVOID glMapBufferARB(GLenum target, GLenum access);
- */
-JNIEXPORT jlong JNICALL
-Java_net_java_games_jogl_impl_macosx_MacOSXGLImpl_dispatch_1glMapBuffer( JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress)
-{
- PFNGLMAPBUFFERPROC ptr_glMapBuffer;
- LPVOID _res;
- ptr_glMapBuffer = (PFNGLMAPBUFFERPROC) (intptr_t) glProcAddress;
- assert(ptr_glMapBuffer != NULL);
- _res = (* ptr_glMapBuffer) ((GLenum) target, (GLenum) access);
- return (jlong) (intptr_t) _res;
-}
-
-/* Java->C glue code:
- * Java package: net.java.games.jogl.impl.macosx.MacOSXGLImpl
- * Java method: long dispatch_glMapBuffer(int target, int access)
- * C function: LPVOID glMapBuffer(GLenum target, GLenum access);
- */
-JNIEXPORT jlong JNICALL
-Java_net_java_games_jogl_impl_macosx_MacOSXGLImpl_dispatch_1glMapBufferARB(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress)
-{
- PFNGLMAPBUFFERARBPROC ptr_glMapBufferARB;
- LPVOID _res;
- ptr_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) (intptr_t) glProcAddress;
- assert(ptr_glMapBufferARB != NULL);
- _res = (* ptr_glMapBufferARB) ((GLenum) target, (GLenum) access);
- return (jlong) (intptr_t) _res;
-}
diff --git a/make/gl-impl-CustomJavaCode.java b/make/gl-impl-CustomJavaCode.java
index a4709fde4..5b4a3fa17 100644
--- a/make/gl-impl-CustomJavaCode.java
+++ b/make/gl-impl-CustomJavaCode.java
@@ -1,3 +1,135 @@
+// Tracks glBegin/glEnd calls to determine whether it is legal to
+// query Vertex Buffer Object state
+private boolean inBeginEndPair;
+
+public GLImpl(GLContextImpl context) {
+ this._context = context;
+}
+
+public boolean isFunctionAvailable(String glFunctionName) {
+ return _context.isFunctionAvailable(glFunctionName);
+}
+
+public boolean isExtensionAvailable(String glExtensionName) {
+ return _context.isExtensionAvailable(glExtensionName);
+}
+
+public Object getExtension(String extensionName) {
+ // At this point we don't expose any extensions using this mechanism
+ return null;
+}
+
+private GLContextImpl _context;
+
+/**
+ * Provides platform-independent access to the wglAllocateMemoryNV /
+ * glXAllocateMemoryNV extension.
+ */
+public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) {
+ return _context.glAllocateMemoryNV(arg0, arg1, arg2, arg3);
+}
+
+public void setSwapInterval(int interval) {
+ _context.setSwapInterval(interval);
+}
+
+public Object getPlatformGLExtensions() {
+ return _context.getPlatformGLExtensions();
+}
+
+private void checkBufferObject(String extension1,
+ String extension2,
+ boolean enabled,
+ int state,
+ String kind) {
+ if (inBeginEndPair) {
+ throw new GLException("May not call this between glBegin and glEnd");
+ }
+ boolean avail = ((extension1 != null && isExtensionAvailable(extension1)) ||
+ (extension2 != null && isExtensionAvailable(extension2)));
+ if (!avail) {
+ if (!enabled)
+ return;
+ throw new GLException("Required extensions not available to call this function");
+ }
+ int[] val = new int[1];
+ glGetIntegerv(state, val, 0);
+ if (enabled) {
+ if (val[0] == 0) {
+ throw new GLException(kind + " must be enabled to call this method");
+ }
+ } else {
+ if (val[0] != 0) {
+ throw new GLException(kind + " must be disabled to call this method");
+ }
+ }
+}
+
+private void checkUnpackPBODisabled() {
+ checkBufferObject("GL_ARB_pixel_buffer_object",
+ "GL_EXT_pixel_buffer_object",
+ false,
+ GL.GL_PIXEL_UNPACK_BUFFER_BINDING_ARB,
+ "unpack pixel_buffer_object");
+}
+
+private void checkUnpackPBOEnabled() {
+ checkBufferObject("GL_ARB_pixel_buffer_object",
+ "GL_EXT_pixel_buffer_object",
+ true,
+ GL.GL_PIXEL_UNPACK_BUFFER_BINDING_ARB,
+ "unpack pixel_buffer_object");
+}
+
+private void checkPackPBODisabled() {
+ checkBufferObject("GL_ARB_pixel_buffer_object",
+ "GL_EXT_pixel_buffer_object",
+ false,
+ GL.GL_PIXEL_PACK_BUFFER_BINDING_ARB,
+ "pack pixel_buffer_object");
+}
+
+private void checkPackPBOEnabled() {
+ checkBufferObject("GL_ARB_pixel_buffer_object",
+ "GL_EXT_pixel_buffer_object",
+ true,
+ GL.GL_PIXEL_PACK_BUFFER_BINDING_ARB,
+ "pack pixel_buffer_object");
+}
+
+
+private void checkArrayVBODisabled() {
+ checkBufferObject("GL_VERSION_1_5",
+ "GL_ARB_vertex_buffer_object",
+ false,
+ GL.GL_ARRAY_BUFFER_BINDING,
+ "array vertex_buffer_object");
+}
+
+private void checkArrayVBOEnabled() {
+ checkBufferObject("GL_VERSION_1_5",
+ "GL_ARB_vertex_buffer_object",
+ true,
+ GL.GL_ARRAY_BUFFER_BINDING,
+ "array vertex_buffer_object");
+}
+
+private void checkElementVBODisabled() {
+ checkBufferObject("GL_VERSION_1_5",
+ "GL_ARB_vertex_buffer_object",
+ false,
+ GL.GL_ELEMENT_ARRAY_BUFFER_BINDING,
+ "element vertex_buffer_object");
+}
+
+private void checkElementVBOEnabled() {
+ checkBufferObject("GL_VERSION_1_5",
+ "GL_ARB_vertex_buffer_object",
+ true,
+ GL.GL_ELEMENT_ARRAY_BUFFER_BINDING,
+ "element vertex_buffer_object");
+}
+
// Attempt to return the same ByteBuffer object from glMapBufferARB if
// the vertex buffer object's base address and size haven't changed
private static class ARBVBOKey {
@@ -32,7 +164,7 @@ public java.nio.ByteBuffer glMapBuffer(int target, int access) {
throw new GLException("Method \"glMapBuffer\" not available");
}
int[] sz = new int[1];
- glGetBufferParameteriv(target, GL_BUFFER_SIZE_ARB, sz);
+ glGetBufferParameteriv(target, GL_BUFFER_SIZE_ARB, sz, 0);
long addr;
addr = dispatch_glMapBuffer(target, access, __addr_);
if (addr == 0 || sz[0] == 0) {
@@ -55,7 +187,7 @@ public java.nio.ByteBuffer glMapBufferARB(int target, int access) {
throw new GLException("Method \"glMapBufferARB\" not available");
}
int[] sz = new int[1];
- glGetBufferParameterivARB(target, GL_BUFFER_SIZE_ARB, sz);
+ glGetBufferParameterivARB(target, GL_BUFFER_SIZE_ARB, sz, 0);
long addr;
addr = dispatch_glMapBufferARB(target, access, __addr_);
if (addr == 0 || sz[0] == 0) {
diff --git a/make/gl-impl-macosx.cfg b/make/gl-impl-macosx.cfg
deleted file mode 100644
index 5a09750dd..000000000
--- a/make/gl-impl-macosx.cfg
+++ /dev/null
@@ -1,81 +0,0 @@
-# This .cfg file is used to generate the class which implements the GL
-# interface on a particular platform.
-Package net.java.games.jogl
-Style ImplOnly
-JavaClass GL
-ImplPackage net.java.games.jogl.impl.macosx
-ImplJavaClass MacOSXGLImpl
-Include gl-common-macosx.cfg
-Include gl-glx-common.cfg
-
-EmitProcAddressTable true
-ProcAddressTableClassName GLProcAddressTable
-ContextVariableName _context
-
-CustomCCode #include
+ *
+ * The returned GLU object is not guaranteed to be thread-safe and
+ * should only be used from one thread at a time. Multiple GLU objects
+ * may be instantiated to be used from different threads
+ * simultaneously.
+ */
+
+public GLU()
+{
+ this.project = new Project();
+}
+
+//----------------------------------------------------------------------
+// Utility routines
+//
+
+/**
+ * Returns the GL object associated with the OpenGL context current on
+ * the current thread. Throws GLException if no OpenGL context is
+ * current.
+ */
+
+public static GL getCurrentGL() throws GLException {
+ GLContext curContext = GLContext.getCurrent();
+ if (curContext == null) {
+ throw new GLException("No OpenGL context current on this thread");
+ }
+ return curContext.getGL();
+}
+
+public String gluErrorString(int errorCode) {
+ return Error.gluErrorString(errorCode);
+}
+
+/* extName is an extension name.
+ * extString is a string of extensions separated by blank(s). There may or
+ * may not be leading or trailing blank(s) in extString.
+ * This works in cases of extensions being prefixes of another like
+ * GL_EXT_texture and GL_EXT_texture3D.
+ * Returns true if extName is found otherwise it returns false.
+ */
+public boolean gluCheckExtension(java.lang.String extName, java.lang.String extString) {
+ return Registry.gluCheckExtension(extName, extString);
+}
+
+public String gluGetString(int name) {
+ return Registry.gluGetString(name);
+}
+
+/**
+ * Returns true if the specified GLU core- or extension-function can be
+ * successfully used through this GLU instance. By "successfully" we mean
+ * that the function is both callable on the machine running the
+ * program and available on the current display.
+ *
+ * A GLU function is callable if it is a GLU core- or extension-function
+ * that is supported by the underlying GLU implementation. The function is
+ * available if the OpenGL implementation on the display meets the
+ * requirements of the GLU function being called (because GLU functions utilize
+ * OpenGL functions).
+ *
+ * Whether or not a GLU function is callable is determined as follows:
+ *
+ *
+ * GLU_TESS_WINDING_RULE
+ *
+ *
+ * To understand how the winding rule works, consider that the input
+ * contours partition the plane into regions. The winding rule determines
+ * which of these regions are inside the polygon.
+ *
+ * For a single contour C, the winding number of a point x is simply the
+ * signed number of revolutions we make around x as we travel once around C
+ * (where CCW is positive). When there are several contours, the individual
+ * winding numbers are summed. This procedure associates a signed integer
+ * value with each point x in the plane. Note that the winding number is
+ * the same for all points in a single region.
+ *
+ * The winding rule classifies a region as "inside" if its winding number
+ * belongs to the chosen category (odd, nonzero, positive, negative, or
+ * absolute value of at least two). The previous GLU tessellator (prior to
+ * GLU 1.2) used the "odd" rule. The "nonzero" rule is another common way
+ * to define the interior. The other three rules are useful for polygon CSG
+ * operations.
+ *
+ *
+ * Feature merging is completely optional; the tolerance is only a hint.
+ * The implementation is free to merge in some cases and not in others, or
+ * to never merge features at all. The initial tolerance is 0.
+ *
+ * The current implementation merges vertices only if they are exactly
+ * coincident, regardless of the current tolerance. A vertex is spliced
+ * into an edge only if the implementation is unable to distinguish which
+ * side of the edge the vertex lies on. Two edges are merged only when both
+ * endpoints are identical.
+ *
+ *
+ * If the supplied normal is (0.0, 0.0, 0.0)(the initial value), the normal
+ * is determined as follows. The direction of the normal, up to its sign, is
+ * found by fitting a plane to the vertices, without regard to how the
+ * vertices are connected. It is expected that the input data lies
+ * approximately in the plane; otherwise, projection perpendicular to one of
+ * the three coordinate axes may substantially change the geometry. The sign
+ * of the normal is chosen so that the sum of the signed areas of all input
+ * contours is nonnegative (where a CCW contour has positive area).
+ *
+ * The supplied normal persists until it is changed by another call to
+ * gluTessNormal.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created by
+ * {@link #gluNewTess gluNewTess}).
+ * @param x
+ * Specifies the first component of the normal.
+ * @param y
+ * Specifies the second component of the normal.
+ * @param z
+ * Specifies the third component of the normal.
+ *
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessEndPolygon gluTessEndPolygon
+ ****************************************************************************/
+public void gluTessNormal(GLUtessellator tessellator, double x, double y, double z) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessNormal(x, y, z);
+}
+
+/*****************************************************************************
+ * gluTessCallback is used to indicate a callback to be used by a
+ * tessellation object. If the specified callback is already defined, then it
+ * is replaced. If aCallback is null, then the existing callback
+ * becomes undefined.
+ *
+ * These callbacks are used by the tessellation object to describe how a
+ * polygon specified by the user is broken into triangles. Note that there are
+ * two versions of each callback: one with user-specified polygon data and one
+ * without. If both versions of a particular callback are specified, then the
+ * callback with user-specified polygon data will be used. Note that the
+ * polygonData parameter used by some of the methods is a copy of the
+ * reference that was specified when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The legal callbacks are as follows:
+ *
+ * GLU_TESS_BEGIN
+ *
+ *
+ * GLU_TESS_BEGIN_DATA
+ *
+ *
+ * Since triangle fans and triangle strips do not support edge flags, the
+ * begin callback is not called with GL_TRIANGLE_FAN or
+ * GL_TRIANGLE_STRIP if a non-null edge flag callback is provided.
+ * (If the callback is initialized to null, there is no impact on
+ * performance). Instead, the fans and strips are converted to independent
+ * triangles. The method prototype for this callback is:
+ *
+ *
+ * The user must allocate another vertex, interpolate parameters using
+ * data and weight, and return the new vertex pointer
+ * in outData. This handle is supplied during rendering callbacks.
+ * The user is responsible for freeing the memory some time after
+ * {@link #gluTessEndPolygon gluTessEndPolygon} is
+ * called.
+ *
+ * For example, if the polygon lies in an arbitrary plane in 3-space, and a
+ * color is associated with each vertex, the GLU_TESS_COMBINE
+ * callback might look like this:
+ *
+ *
+ * data normally references to a structure containing the vertex
+ * location, as well as other per-vertex attributes such as color and normal.
+ * This reference is passed back to the user through the
+ * GLU_TESS_VERTEX or GLU_TESS_VERTEX_DATA callback after
+ * tessellation (see the {@link #gluTessCallback
+ * gluTessCallback} reference page).
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ * @param coords
+ * Specifies the coordinates of the vertex.
+ * @param data
+ * Specifies an opaque reference passed back to the program with the
+ * vertex callback (as specified by
+ * {@link #gluTessCallback gluTessCallback}).
+ *
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessBeginContour gluTessBeginContour
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessProperty gluTessProperty
+ * @see #gluTessNormal gluTessNormal
+ * @see #gluTessEndPolygon gluTessEndPolygon
+ ****************************************************************************/
+public void gluTessVertex(GLUtessellator tessellator, double[] coords, int coords_offset, Object data) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessVertex(coords, coords_offset, data);
+}
+
+/*****************************************************************************
+ * gluTessBeginPolygon and
+ * {@link #gluTessEndPolygon gluTessEndPolygon} delimit
+ * the definition of a convex, concave or self-intersecting polygon. Within
+ * each gluTessBeginPolygon/
+ * {@link #gluTessEndPolygon gluTessEndPolygon} pair,
+ * there must be one or more calls to
+ * {@link #gluTessBeginContour gluTessBeginContour}/
+ * {@link #gluTessEndContour gluTessEndContour}. Within
+ * each contour, there are zero or more calls to
+ * {@link #gluTessVertex gluTessVertex}. The vertices
+ * specify a closed contour (the last vertex of each contour is automatically
+ * linked to the first). See the {@link #gluTessVertex
+ * gluTessVertex}, {@link #gluTessBeginContour
+ * gluTessBeginContour}, and {@link #gluTessEndContour
+ * gluTessEndContour} reference pages for more details.
+ *
+ * data is a reference to a user-defined data structure. If the
+ * appropriate callback(s) are specified (see
+ * {@link #gluTessCallback gluTessCallback}), then this
+ * reference is returned to the callback method(s). Thus, it is a convenient
+ * way to store per-polygon information.
+ *
+ * Once {@link #gluTessEndPolygon gluTessEndPolygon} is
+ * called, the polygon is tessellated, and the resulting triangles are
+ * described through callbacks. See
+ * {@link #gluTessCallback gluTessCallback} for
+ * descriptions of the callback methods.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ * @param data
+ * Specifies a reference to user polygon data.
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessBeginContour gluTessBeginContour
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessProperty gluTessProperty
+ * @see #gluTessNormal gluTessNormal
+ * @see #gluTessEndPolygon gluTessEndPolygon
+ ****************************************************************************/
+public void gluTessBeginPolygon(GLUtessellator tessellator, Object data) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessBeginPolygon(data);
+}
+
+/*****************************************************************************
+ * gluTessBeginContour and
+ * {@link #gluTessEndContour gluTessEndContour} delimit
+ * the definition of a polygon contour. Within each
+ * gluTessBeginContour/
+ * {@link #gluTessEndContour gluTessEndContour} pair,
+ * there can be zero or more calls to
+ * {@link #gluTessVertex gluTessVertex}. The vertices
+ * specify a closed contour (the last vertex of each contour is automatically
+ * linked to the first). See the {@link #gluTessVertex
+ * gluTessVertex} reference page for more details. gluTessBeginContour
+ * can only be called between
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon} and
+ * {@link #gluTessEndPolygon gluTessEndPolygon}.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessProperty gluTessProperty
+ * @see #gluTessNormal gluTessNormal
+ * @see #gluTessEndPolygon gluTessEndPolygon
+ ****************************************************************************/
+public void gluTessBeginContour(GLUtessellator tessellator) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessBeginContour();
+}
+
+/*****************************************************************************
+ * gluTessEndContour and
+ * {@link #gluTessBeginContour gluTessBeginContour}
+ * delimit the definition of a polygon contour. Within each
+ * {@link #gluTessBeginContour gluTessBeginContour}/
+ * gluTessEndContour pair, there can be zero or more calls to
+ * {@link #gluTessVertex gluTessVertex}. The vertices
+ * specify a closed contour (the last vertex of each contour is automatically
+ * linked to the first). See the {@link #gluTessVertex
+ * gluTessVertex} reference page for more details.
+ * {@link #gluTessBeginContour gluTessBeginContour} can
+ * only be called between {@link #gluTessBeginPolygon
+ * gluTessBeginPolygon} and
+ * {@link #gluTessEndPolygon gluTessEndPolygon}.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessProperty gluTessProperty
+ * @see #gluTessNormal gluTessNormal
+ * @see #gluTessEndPolygon gluTessEndPolygon
+ ****************************************************************************/
+public void gluTessEndContour(GLUtessellator tessellator) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessEndContour();
+}
+
+/*****************************************************************************
+ * gluTessEndPolygon and
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * delimit the definition of a convex, concave or self-intersecting polygon.
+ * Within each {@link #gluTessBeginPolygon
+ * gluTessBeginPolygon}/gluTessEndPolygon pair, there must be one or
+ * more calls to {@link #gluTessBeginContour
+ * gluTessBeginContour}/{@link #gluTessEndContour
+ * gluTessEndContour}. Within each contour, there are zero or more calls to
+ * {@link #gluTessVertex gluTessVertex}. The vertices
+ * specify a closed contour (the last vertex of each contour is automatically
+ * linked to the first). See the {@link #gluTessVertex
+ * gluTessVertex}, {@link #gluTessBeginContour
+ * gluTessBeginContour} and {@link #gluTessEndContour
+ * gluTessEndContour} reference pages for more details.
+ *
+ * Once gluTessEndPolygon is called, the polygon is tessellated, and
+ * the resulting triangles are described through callbacks. See
+ * {@link #gluTessCallback gluTessCallback} for
+ * descriptions of the callback functions.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessBeginContour gluTessBeginContour
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessProperty gluTessProperty
+ * @see #gluTessNormal gluTessNormal
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ ****************************************************************************/
+public void gluTessEndPolygon(GLUtessellator tessellator) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessEndPolygon();
+}
+
+/*****************************************************************************
+
+ * gluBeginPolygon and {@link #gluEndPolygon gluEndPolygon}
+ * delimit the definition of a nonconvex polygon. To define such a
+ * polygon, first call gluBeginPolygon. Then define the
+ * contours of the polygon by calling {@link #gluTessVertex
+ * gluTessVertex} for each vertex and {@link #gluNextContour
+ * gluNextContour} to start each new contour. Finally, call {@link
+ * #gluEndPolygon gluEndPolygon} to signal the end of the
+ * definition. See the {@link #gluTessVertex gluTessVertex} and {@link
+ * #gluNextContour gluNextContour} reference pages for more
+ * details.
+
+ *
+ * Once {@link #gluEndPolygon gluEndPolygon} is called,
+ * the polygon is tessellated, and the resulting triangles are described
+ * through callbacks. See {@link #gluTessCallback
+ * gluTessCallback} for descriptions of the callback methods.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluNextContour gluNextContour
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessBeginContour gluTessBeginContour
+ ****************************************************************************/
+public void gluBeginPolygon(GLUtessellator tessellator) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluBeginPolygon();
+}
+
+/*****************************************************************************
+ * gluNextContour is used to describe polygons with multiple
+ * contours. After you describe the first contour through a series of
+ * {@link #gluTessVertex gluTessVertex} calls, a
+ * gluNextContour call indicates that the previous contour is complete
+ * and that the next contour is about to begin. Perform another series of
+ * {@link #gluTessVertex gluTessVertex} calls to
+ * describe the new contour. Repeat this process until all contours have been
+ * described.
+ *
+ * The type parameter defines what type of contour follows. The following
+ * values are valid.
+ *
+ * GLU_EXTERIOR
+ *
+ *
+ * To define the type of the first contour, you can call gluNextContour
+ * before describing the first contour. If you do not call
+ * gluNextContour before the first contour, the first contour is marked
+ * GLU_EXTERIOR.
+ *
+ *
+ *
+ * Once gluEndPolygon is called, the polygon is tessellated, and the
+ * resulting triangles are described through callbacks. See
+ * {@link #gluTessCallback gluTessCallback} for
+ * descriptions of the callback methods.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluNextContour gluNextContour
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessBeginContour gluTessBeginContour
+ ****************************************************************************/
+public void gluEndPolygon(GLUtessellator tessellator) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluEndPolygon();
+}
+
+//----------------------------------------------------------------------
+// Quadric functionality
+//
+
+/** Interface to C language function:
+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
diff --git a/make/glu-impl-common-CustomCCode.c b/make/glu-impl-common-CustomCCode.c
deleted file mode 100644
index 5a3f645c5..000000000
--- a/make/glu-impl-common-CustomCCode.c
+++ /dev/null
@@ -1,833 +0,0 @@
-/* Include the OpenGL GLU header */
-#include
- *
- * Once {@link net.java.games.jogl.GLU#gluEndPolygon gluEndPolygon} is called,
- * the polygon is tessellated, and the resulting triangles are described
- * through callbacks. See {@link net.java.games.jogl.GLU#gluTessCallback
- * gluTessCallback} for descriptions of the callback methods.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluNextContour gluNextContour
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- ****************************************************************************/
-public void gluBeginPolygon(GLUtesselator tesselator);
-
-
-/*****************************************************************************
- * gluDeleteTess destroys the indicated tessellation object (which was
- * created with {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- *
- * @param tesselator
- * Specifies the tessellation object to destroy.
- *
- * @see net.java.games.jogl.GLU#gluBeginPolygon gluBeginPolygon
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- ****************************************************************************/
-public void gluDeleteTess(GLUtesselator tesselator);
-
-
-/*****************************************************************************
- * gluEndPolygon and {@link net.java.games.jogl.GLU#gluBeginPolygon
- * gluBeginPolygon} delimit the definition of a nonconvex polygon. To define
- * such a polygon, first call {@link net.java.games.jogl.GLU#gluBeginPolygon
- * gluBeginPolygon}. Then define the contours of the polygon by calling
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex} for each vertex
- * and {@link net.java.games.jogl.GLU#gluNextContour gluNextContour} to start
- * each new contour. Finally, call gluEndPolygon to signal the end of
- * the definition. See the {@link net.java.games.jogl.GLU#gluTessVertex
- * gluTessVertex} and {@link net.java.games.jogl.GLU#gluNextContour
- * gluNextContour} reference pages for more details.
- *
- * Once gluEndPolygon is called, the polygon is tessellated, and the
- * resulting triangles are described through callbacks. See
- * {@link net.java.games.jogl.GLU#gluTessCallback gluTessCallback} for
- * descriptions of the callback methods.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluNextContour gluNextContour
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- ****************************************************************************/
-public void gluEndPolygon(GLUtesselator tesselator);
-
-
-/*****************************************************************************
- * gluGetTessProperty retrieves properties stored in a tessellation
- * object. These properties affect the way that tessellation objects are
- * interpreted and rendered. See the
- * {@link net.java.games.jogl.GLU#gluTessProperty gluTessProperty} reference
- * page for information about the properties and what they do.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- * @param which
- * Specifies the property whose value is to be fetched. Valid values
- * are GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY,
- * and GLU_TESS_TOLERANCES.
- * @param value
- * Specifices an array into which the value of the named property is
- * written.
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- ****************************************************************************/
-public void gluGetTessProperty(GLUtesselator tesselator, int which, double[] value);
-
-
-/*****************************************************************************
- * gluNewTess creates and returns a new tessellation object. This
- * object must be referred to when calling tesselation methods. A return
- * value of null means that there was not enough memeory to allocate the
- * object.
- *
- * @return A new tessellation object.
- *
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluDeleteTess gluDeleteTess
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- ****************************************************************************/
-public GLUtesselator gluNewTess();
-
-
-/*****************************************************************************
- * gluNextContour is used to describe polygons with multiple
- * contours. After you describe the first contour through a series of
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex} calls, a
- * gluNextContour call indicates that the previous contour is complete
- * and that the next contour is about to begin. Perform another series of
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex} calls to
- * describe the new contour. Repeat this process until all contours have been
- * described.
- *
- * The type parameter defines what type of contour follows. The following
- * values are valid.
- *
- * GLU_EXTERIOR
- *
- *
- * To define the type of the first contour, you can call gluNextContour
- * before describing the first contour. If you do not call
- * gluNextContour before the first contour, the first contour is marked
- * GLU_EXTERIOR.
- *
- *
- *
- * data is a reference to a user-defined data structure. If the
- * appropriate callback(s) are specified (see
- * {@link net.java.games.jogl.GLU#gluTessCallback gluTessCallback}), then this
- * reference is returned to the callback method(s). Thus, it is a convenient
- * way to store per-polygon information.
- *
- * Once {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon} is
- * called, the polygon is tessellated, and the resulting triangles are
- * described through callbacks. See
- * {@link net.java.games.jogl.GLU#gluTessCallback gluTessCallback} for
- * descriptions of the callback methods.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- * @param data
- * Specifies a reference to user polygon data.
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- * @see net.java.games.jogl.GLU#gluTessNormal gluTessNormal
- * @see net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon
- ****************************************************************************/
-public void gluTessBeginPolygon(GLUtesselator tesselator, Object data);
-
-
-/*****************************************************************************
- * gluTessCallback is used to indicate a callback to be used by a
- * tessellation object. If the specified callback is already defined, then it
- * is replaced. If aCallback is null, then the existing callback
- * becomes undefined.
- *
- * These callbacks are used by the tessellation object to describe how a
- * polygon specified by the user is broken into triangles. Note that there are
- * two versions of each callback: one with user-specified polygon data and one
- * without. If both versions of a particular callback are specified, then the
- * callback with user-specified polygon data will be used. Note that the
- * polygonData parameter used by some of the methods is a copy of the
- * reference that was specified when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The legal callbacks are as follows:
- *
- * GLU_TESS_BEGIN
- *
- *
- * GLU_TESS_BEGIN_DATA
- *
- *
- * Since triangle fans and triangle strips do not support edge flags, the
- * begin callback is not called with GL_TRIANGLE_FAN or
- * GL_TRIANGLE_STRIP if a non-null edge flag callback is provided.
- * (If the callback is initialized to null, there is no impact on
- * performance). Instead, the fans and strips are converted to independent
- * triangles. The method prototype for this callback is:
- *
- *
- * The user must allocate another vertex, interpolate parameters using
- * data and weight, and return the new vertex pointer
- * in outData. This handle is supplied during rendering callbacks.
- * The user is responsible for freeing the memory some time after
- * {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon} is
- * called.
- *
- * For example, if the polygon lies in an arbitrary plane in 3-space, and a
- * color is associated with each vertex, the GLU_TESS_COMBINE
- * callback might look like this:
- *
- *
- * Once gluTessEndPolygon is called, the polygon is tessellated, and
- * the resulting triangles are described through callbacks. See
- * {@link net.java.games.jogl.GLU#gluTessCallback gluTessCallback} for
- * descriptions of the callback functions.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- * @see net.java.games.jogl.GLU#gluTessNormal gluTessNormal
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- ****************************************************************************/
-public void gluTessEndPolygon(GLUtesselator tesselator);
-
-
-/*****************************************************************************
- * gluTessNormal describes a normal for a polygon that the program is
- * defining. All input data will be projected onto a plane perpendicular to
- * the one of the three coordinate axes before tessellation and all output
- * triangles will be oriented CCW with repsect to the normal (CW orientation
- * can be obtained by reversing the sign of the supplied normal). For
- * example, if you know that all polygons lie in the x-y plane, call
- * gluTessNormal(tess, 0.0, 0.0, 0.0) before rendering any polygons.
- *
- * If the supplied normal is (0.0, 0.0, 0.0)(the initial value), the normal
- * is determined as follows. The direction of the normal, up to its sign, is
- * found by fitting a plane to the vertices, without regard to how the
- * vertices are connected. It is expected that the input data lies
- * approximately in the plane; otherwise, projection perpendicular to one of
- * the three coordinate axes may substantially change the geometry. The sign
- * of the normal is chosen so that the sum of the signed areas of all input
- * contours is nonnegative (where a CCW contour has positive area).
- *
- * The supplied normal persists until it is changed by another call to
- * gluTessNormal.
- *
- * @param tesselator
- * Specifies the tessellation object (created by
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- * @param x
- * Specifies the first component of the normal.
- * @param y
- * Specifies the second component of the normal.
- * @param z
- * Specifies the third component of the normal.
- *
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon
- ****************************************************************************/
-public void gluTessNormal(GLUtesselator tesselator, double x, double y, double z);
-
-
-/*****************************************************************************
- * gluTessProperty is used to control properites stored in a
- * tessellation object. These properties affect the way that the polygons are
- * interpreted and rendered. The legal value for which are as
- * follows:
- *
- * GLU_TESS_WINDING_RULE
- *
- *
- * To understand how the winding rule works, consider that the input
- * contours partition the plane into regions. The winding rule determines
- * which of these regions are inside the polygon.
- *
- * For a single contour C, the winding number of a point x is simply the
- * signed number of revolutions we make around x as we travel once around C
- * (where CCW is positive). When there are several contours, the individual
- * winding numbers are summed. This procedure associates a signed integer
- * value with each point x in the plane. Note that the winding number is
- * the same for all points in a single region.
- *
- * The winding rule classifies a region as "inside" if its winding number
- * belongs to the chosen category (odd, nonzero, positive, negative, or
- * absolute value of at least two). The previous GLU tesselator (prior to
- * GLU 1.2) used the "odd" rule. The "nonzero" rule is another common way
- * to define the interior. The other three rules are useful for polygon CSG
- * operations.
- *
- *
- * Feature merging is completely optional; the tolerance is only a hint.
- * The implementation is free to merge in some cases and not in others, or
- * to never merge features at all. The initial tolerance is 0.
- *
- * The current implementation merges vertices only if they are exactly
- * coincident, regardless of the current tolerance. A vertex is spliced
- * into an edge only if the implementation is unable to distinguish which
- * side of the edge the vertex lies on. Two edges are merged only when both
- * endpoints are identical.
- *
- *
- * data normally references to a structure containing the vertex
- * location, as well as other per-vertex attributes such as color and normal.
- * This reference is passed back to the user through the
- * GLU_TESS_VERTEX or GLU_TESS_VERTEX_DATA callback after
- * tessellation (see the {@link net.java.games.jogl.GLU#gluTessCallback
- * gluTessCallback} reference page).
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- * @param coords
- * Specifies the coordinates of the vertex.
- * @param data
- * Specifies an opaque reference passed back to the program with the
- * vertex callback (as specified by
- * {@link net.java.games.jogl.GLU#gluTessCallback gluTessCallback}).
- *
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- * @see net.java.games.jogl.GLU#gluTessNormal gluTessNormal
- * @see net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon
- ****************************************************************************/
-public void gluTessVertex(GLUtesselator tesselator, double[] coords, Object data);
-
-
-//----------------------------------------------------------------------
-// Mipmap and scaling routines
-//
-
-/** Interface to C language function:
- *
- * A GLU function is callable if it is a GLU core- or extension-function
- * that is supported by the underlying GLU implementation. The function is
- * available if the OpenGL implementation on the display meets the
- * requirements of the GLU function being called (because GLU functions utilize
- * OpenGL functions).
- *
- * Whether or not a GLU function is callable is determined as follows:
- *
+ *
+ *
+ * Whether or not a GLU function is available is determined as follows:
+ * gluGetString(GLU_VERSION)
is used to determine the
+ * version number of the underlying GLU implementation on the host.
+ * then the function name is cross-referenced with that specification to
+ * see if it is part of that version's specification.
+ *
+ * gluGetString(GLU_EXTENSIONS)
to see if the function is one of
+ * the extensions that is supported by the underlying GLU implementation.
+ *
+ *
+ *
+ * NOTE:The availability of a function may change at runtime in
+ * response to changes in the display environment. For example, when a window
+ * is dragged from one display to another on a multi-display system, or when
+ * the properties of the display device are modified (e.g., changing the color
+ * depth of the display). Any application that is concerned with handling
+ * these situations correctly should confirm availability after a display
+ * change before calling a questionable OpenGL function. To detect a change in
+ * the display device, please see {@link
+ * GLEventListener#displayChanged(GLAutoDrawable,boolean,boolean)}.
+ *
+ * @param gluFunctionName the name of the OpenGL function (e.g., use
+ * "gluNurbsCallbackDataEXT" to check if the
+ *
+ * Finally, glGetString(GL_VERSION)
is used to determine the
+ * highest OpenGL version that both host and display support, and from that it
+ * is possible to determine if the GL facilities required by the GLU function
+ * are available on the display.
+ *
+ * gluGetString(GLU_EXTENSIONS)
to see if the function is one of
+ * the extensions that is supported by the underlying GLU implementation.
+ *
+ * gluNurbsCallbackDataEXT(GLUnurbs, GLvoid)
extension is available).
+ */
+public boolean isFunctionAvailable(String gluFunctionName)
+{
+ if (useJavaMipmapCode) {
+ // All GLU functions are available in Java port
+ return true;
+ }
+ return (gluProcAddressTable.getAddressFor(gluFunctionName) != 0);
+}
+
+//----------------------------------------------------------------------
+// Tessellation routines
+//
+
+/*****************************************************************************
+ * gluNewTess creates and returns a new tessellation object. This
+ * object must be referred to when calling tesselation methods. A return
+ * value of null means that there was not enough memeory to allocate the
+ * object.
+ *
+ * @return A new tessellation object.
+ *
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluDeleteTess gluDeleteTess
+ * @see #gluTessCallback gluTessCallback
+ ****************************************************************************/
+public GLUtessellator gluNewTess() {
+ return GLUtessellatorImpl.gluNewTess();
+}
+
+/*****************************************************************************
+ * gluDeleteTess destroys the indicated tessellation object (which was
+ * created with {@link #gluNewTess gluNewTess}).
+ *
+ * @param tessellator
+ * Specifies the tessellation object to destroy.
+ *
+ * @see #gluBeginPolygon gluBeginPolygon
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessCallback gluTessCallback
+ ****************************************************************************/
+public void gluDeleteTess(GLUtessellator tessellator) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluDeleteTess();
+}
+
+/*****************************************************************************
+ * gluTessProperty is used to control properites stored in a
+ * tessellation object. These properties affect the way that the polygons are
+ * interpreted and rendered. The legal value for which are as
+ * follows:
+ * Determines which parts of the polygon are on the "interior".
+ * value may be set to one of
+ *
+ *
GLU_TESS_WINDING_ODD,
+ *
GLU_TESS_WINDING_NONZERO,
+ *
GLU_TESS_WINDING_POSITIVE, or
+ *
GLU_TESS_WINDING_NEGATIVE, or
+ *
GLU_TESS_WINDING_ABS_GEQ_TWO.
GLU_TESS_BOUNDARY_ONLY
+ *
+ * Is a boolean value ("value" should be set to GL_TRUE or GL_FALSE). When
+ * set to GL_TRUE, a set of closed contours separating the polygon interior
+ * and exterior are returned instead of a tessellation. Exterior contours
+ * are oriented CCW with respect to the normal; interior contours are
+ * oriented CW. The GLU_TESS_BEGIN and GLU_TESS_BEGIN_DATA
+ * callbacks use the type GL_LINE_LOOP for each contour.
+ *
+ *
GLU_TESS_TOLERANCE
+ *
+ * Specifies a tolerance for merging features to reduce the size of the
+ * output. For example, two vertices that are very close to each other
+ * might be replaced by a single vertex. The tolerance is multiplied by the
+ * largest coordinate magnitude of any input vertex; this specifies the
+ * maximum distance that any feature can move as the result of a single
+ * merge operation. If a single feature takes part in several merge
+ * operations, the toal distance moved could be larger.
+ *
+ * @param tessellator
+ * Specifies the tessellation object created with
+ * {@link #gluNewTess gluNewTess}
+ * @param which
+ * Specifies the property to be set. Valid values are
+ * GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARDY_ONLY,
+ * GLU_TESS_TOLERANCE.
+ * @param value
+ * Specifices the value of the indicated property.
+ *
+ * @see #gluGetTessProperty gluGetTessProperty
+ * @see #gluNewTess gluNewTess
+ ****************************************************************************/
+public void gluTessProperty(GLUtessellator tessellator, int which, double value) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessProperty(which, value);
+}
+
+/*****************************************************************************
+ * gluGetTessProperty retrieves properties stored in a tessellation
+ * object. These properties affect the way that tessellation objects are
+ * interpreted and rendered. See the
+ * {@link #gluTessProperty gluTessProperty} reference
+ * page for information about the properties and what they do.
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ * @param which
+ * Specifies the property whose value is to be fetched. Valid values
+ * are GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY,
+ * and GLU_TESS_TOLERANCES.
+ * @param value
+ * Specifices an array into which the value of the named property is
+ * written.
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessProperty gluTessProperty
+ ****************************************************************************/
+public void gluGetTessProperty(GLUtessellator tessellator, int which, double[] value, int value_offset) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluGetTessProperty(which, value, value_offset);
+}
+
+/*****************************************************************************
+ * gluTessNormal describes a normal for a polygon that the program is
+ * defining. All input data will be projected onto a plane perpendicular to
+ * the one of the three coordinate axes before tessellation and all output
+ * triangles will be oriented CCW with repsect to the normal (CW orientation
+ * can be obtained by reversing the sign of the supplied normal). For
+ * example, if you know that all polygons lie in the x-y plane, call
+ * gluTessNormal(tess, 0.0, 0.0, 0.0) before rendering any polygons.
+ * The begin callback is invoked like {@link javax.media.opengl.GL#glBegin
+ * glBegin} to indicate the start of a (triangle) primitive. The method
+ * takes a single argument of type int. If the
+ * GLU_TESS_BOUNDARY_ONLY property is set to GL_FALSE, then
+ * the argument is set to either GL_TRIANGLE_FAN,
+ * GL_TRIANGLE_STRIP, or GL_TRIANGLES. If the
+ * GLU_TESS_BOUNDARY_ONLY property is set to GL_TRUE, then the
+ * argument will be set to GL_LINE_LOOP. The method prototype for
+ * this callback is:
+ *
+ *
+ *
+ * void begin(int type);
+ * The same as the GLU_TESS_BEGIN callback except
+ * that it takes an additional reference argument. This reference is
+ * identical to the opaque reference provided when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The method prototype for this callback is:
+ *
+ *
+ *
+ * void beginData(int type, Object polygonData);
+ *
+ * GLU_TESS_EDGE_FLAG
+ *
+ * The edge flag callback is similar to
+ * {@link javax.media.opengl.GL#glEdgeFlag glEdgeFlag}. The method takes
+ * a single boolean boundaryEdge that indicates which edges lie on the
+ * polygon boundary. If the boundaryEdge is GL_TRUE, then each vertex
+ * that follows begins an edge that lies on the polygon boundary, that is,
+ * an edge that separates an interior region from an exterior one. If the
+ * boundaryEdge is GL_FALSE, then each vertex that follows begins an
+ * edge that lies in the polygon interior. The edge flag callback (if
+ * defined) is invoked before the first vertex callback.
+ *
+ *
+ * void edgeFlag(boolean boundaryEdge);
+ *
+ * GLU_TESS_EDGE_FLAG_DATA
+ *
+ * The same as the GLU_TESS_EDGE_FLAG callback except that it takes
+ * an additional reference argument. This reference is identical to the
+ * opaque reference provided when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The method prototype for this callback is:
+ *
+ *
+ *
+ * void edgeFlagData(boolean boundaryEdge, Object polygonData);
+ *
+ * GLU_TESS_VERTEX
+ *
+ * The vertex callback is invoked between the begin and end callbacks. It is
+ * similar to {@link javax.media.opengl.GL#glVertex3f glVertex3f}, and it
+ * defines the vertices of the triangles created by the tessellation
+ * process. The method takes a reference as its only argument. This
+ * reference is identical to the opaque reference provided by the user when
+ * the vertex was described (see
+ * {@link #gluTessVertex gluTessVertex}). The method
+ * prototype for this callback is:
+ *
+ *
+ *
+ * void vertex(Object vertexData);
+ *
+ * GLU_TESS_VERTEX_DATA
+ *
+ * The same as the GLU_TESS_VERTEX callback except that it takes an
+ * additional reference argument. This reference is identical to the opaque
+ * reference provided when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The method prototype for this callback is:
+ *
+ *
+ *
+ * void vertexData(Object vertexData, Object polygonData);
+ *
+ * GLU_TESS_END
+ *
+ * The end callback serves the same purpose as
+ * {@link javax.media.opengl.GL#glEnd glEnd}. It indicates the end of a
+ * primitive and it takes no arguments. The method prototype for this
+ * callback is:
+ *
+ *
+ *
+ * void end();
+ *
+ * GLU_TESS_END_DATA
+ *
+ * The same as the GLU_TESS_END callback except that it takes an
+ * additional reference argument. This reference is identical to the opaque
+ * reference provided when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The method prototype for this callback is:
+ *
+ *
+ *
+ * void endData(Object polygonData);
+ *
+ * GLU_TESS_COMBINE
+ *
+ * The combine callback is called to create a new vertex when the
+ * tessellation detects an intersection, or wishes to merge features. The
+ * method takes four arguments: an array of three elements each of type
+ * double, an array of four references, an array of four elements each of
+ * type float, and a reference to a reference. The prototype is:
+ *
+ *
+ *
+ * void combine(double[] coords, Object[] data,
+ * float[] weight, Object[] outData);
+ *
+ *
+ * The vertex is defined as a linear combination of up to four existing
+ * vertices, stored in data. The coefficients of the linear
+ * combination are given by weight; these weights always add up to 1.
+ * All vertex pointers are valid even when some of the weights are 0.
+ * coords gives the location of the new vertex.
+ *
+ * void myCombine(double[] coords, Object[] data,
+ * float[] weight, Object[] outData)
+ * {
+ * MyVertex newVertex = new MyVertex();
+ *
+ * newVertex.x = coords[0];
+ * newVertex.y = coords[1];
+ * newVertex.z = coords[2];
+ * newVertex.r = weight[0]*data[0].r +
+ * weight[1]*data[1].r +
+ * weight[2]*data[2].r +
+ * weight[3]*data[3].r;
+ * newVertex.g = weight[0]*data[0].g +
+ * weight[1]*data[1].g +
+ * weight[2]*data[2].g +
+ * weight[3]*data[3].g;
+ * newVertex.b = weight[0]*data[0].b +
+ * weight[1]*data[1].b +
+ * weight[2]*data[2].b +
+ * weight[3]*data[3].b;
+ * newVertex.a = weight[0]*data[0].a +
+ * weight[1]*data[1].a +
+ * weight[2]*data[2].a +
+ * weight[3]*data[3].a;
+ * outData = newVertex;
+ * }
+ *
+ *
+ * If the tessellation detects an intersection, then the
+ * GLU_TESS_COMBINE or GLU_TESS_COMBINE_DATA callback (see
+ * below) must be defined, and it must write a non-null reference into
+ * outData. Otherwise the GLU_TESS_NEED_COMBINE_CALLBACK error
+ * occurs, and no output is generated.
+ *
+ *
+ * GLU_TESS_COMBINE_DATA
+ *
+ * The same as the GLU_TESS_COMBINE callback except that it takes an
+ * additional reference argument. This reference is identical to the opaque
+ * reference provided when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The method prototype for this callback is:
+ *
+ *
+ *
+ * void combineData(double[] coords, Object[] data,
+ float[] weight, Object[] outData,
+ Object polygonData);
+ *
+ * GLU_TESS_ERROR
+ *
+ * The error callback is called when an error is encountered. The one
+ * argument is of type int; it indicates the specific error that occurred
+ * and will be set to one of GLU_TESS_MISSING_BEGIN_POLYGON,
+ * GLU_TESS_MISSING_END_POLYGON,
+ * GLU_TESS_MISSING_BEGIN_CONTOUR,
+ * GLU_TESS_MISSING_END_CONTOUR, GLU_TESS_COORD_TOO_LARGE,
+ * GLU_TESS_NEED_COMBINE_CALLBACK or GLU_OUT_OF_MEMORY.
+ * Character strings describing these errors can be retrieved with the
+ * {@link #gluErrorString gluErrorString} call. The
+ * method prototype for this callback is:
+ *
+ *
+ *
+ * void error(int errnum);
+ *
+ *
+ * The GLU library will recover from the first four errors by inserting the
+ * missing call(s). GLU_TESS_COORD_TOO_LARGE indicates that some
+ * vertex coordinate exceeded the predefined constant
+ * GLU_TESS_MAX_COORD in absolute value, and that the value has been
+ * clamped. (Coordinate values must be small enough so that two can be
+ * multiplied together without overflow.)
+ * GLU_TESS_NEED_COMBINE_CALLBACK indicates that the tessellation
+ * detected an intersection between two edges in the input data, and the
+ * GLU_TESS_COMBINE or GLU_TESS_COMBINE_DATA callback was not
+ * provided. No output is generated. GLU_OUT_OF_MEMORY indicates that
+ * there is not enough memory so no output is generated.
+ *
+ *
+ * GLU_TESS_ERROR_DATA
+ *
+ * The same as the GLU_TESS_ERROR callback except that it takes an
+ * additional reference argument. This reference is identical to the opaque
+ * reference provided when
+ * {@link #gluTessBeginPolygon gluTessBeginPolygon}
+ * was called. The method prototype for this callback is:
+ *
+ *
+ *
+ * void errorData(int errnum, Object polygonData);
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ * @param which
+ * Specifies the callback being defined. The following values are
+ * valid: GLU_TESS_BEGIN, GLU_TESS_BEGIN_DATA,
+ * GLU_TESS_EDGE_FLAG, GLU_TESS_EDGE_FLAG_DATA,
+ * GLU_TESS_VERTEX, GLU_TESS_VERTEX_DATA,
+ * GLU_TESS_END, GLU_TESS_END_DATA,
+ * GLU_TESS_COMBINE, GLU_TESS_COMBINE_DATA,
+ * GLU_TESS_ERROR, and GLU_TESS_ERROR_DATA.
+ * @param aCallback
+ * Specifies the callback object to be called.
+ *
+ * @see javax.media.opengl.GL#glBegin glBegin
+ * @see javax.media.opengl.GL#glEdgeFlag glEdgeFlag
+ * @see javax.media.opengl.GL#glVertex3f glVertex3f
+ * @see #gluNewTess gluNewTess
+ * @see #gluErrorString gluErrorString
+ * @see #gluTessVertex gluTessVertex
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessBeginContour gluTessBeginContour
+ * @see #gluTessProperty gluTessProperty
+ * @see #gluTessNormal gluTessNormal
+ ****************************************************************************/
+public void gluTessCallback(GLUtessellator tessellator, int which, GLUtessellatorCallback aCallback) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluTessCallback(which, aCallback);
+}
+
+/*****************************************************************************
+ * gluTessVertex describes a vertex on a polygon that the program
+ * defines. Successive gluTessVertex calls describe a closed contour.
+ * For example, to describe a quadrilateral gluTessVertex should be
+ * called four times. gluTessVertex can only be called between
+ * {@link #gluTessBeginContour gluTessBeginContour} and
+ * {@link #gluTessBeginContour gluTessEndContour}.
+ * An exterior contour defines an exterior boundary of the polygon.
+ *
+ * GLU_INTERIOR
+ *
+ * An interior contour defines an interior boundary of the polygon (such as
+ * a hole).
+ *
+ * GLU_UNKNOWN
+ *
+ * An unknown contour is analyzed by the library to determine whether it is
+ * interior or exterior.
+ *
+ * GLU_CCW, GLU_CW
+ *
+ * The first GLU_CCW or GLU_CW contour defined is considered
+ * to be exterior. All other contours are considered to be exterior if they
+ * are oriented in the same direction (clockwise or counterclockwise) as the
+ * first contour, and interior if they are not. If one contour is of type
+ * GLU_CCW or GLU_CW, then all contours must be of the same
+ * type (if they are not, then all GLU_CCW and GLU_CW contours
+ * will be changed to GLU_UNKNOWN). Note that there is no
+ * real difference between the GLU_CCW and GLU_CW contour
+ * types.
+ *
+ * Note: The gluNextContour function is obsolete and is
+ * provided for backward compatibility only. The gluNextContour
+ * function is mapped to {@link #gluTessEndContour
+ * gluTessEndContour} followed by
+ * {@link #gluTessBeginContour gluTessBeginContour}.
+ *
+ *
+ * @param tessellator
+ * Specifies the tessellation object (created with
+ * {@link #gluNewTess gluNewTess}).
+ * @param type
+ * The type of the contour being defined.
+ *
+ * @see #gluNewTess gluNewTess
+ * @see #gluTessBeginContour gluTessBeginContour
+ * @see #gluTessBeginPolygon gluTessBeginPolygon
+ * @see #gluTessCallback gluTessCallback
+ * @see #gluTessEndContour gluTessEndContour
+ * @see #gluTessVertex gluTessVertex
+ ****************************************************************************/
+public void gluNextContour(GLUtessellator tessellator, int type) {
+ GLUtessellatorImpl tess = (GLUtessellatorImpl) tessellator;
+ tess.gluNextContour(type);
+}
+
+/*****************************************************************************
+ * gluEndPolygon and {@link #gluBeginPolygon
+ * gluBeginPolygon} delimit the definition of a nonconvex polygon. To define
+ * such a polygon, first call {@link #gluBeginPolygon
+ * gluBeginPolygon}. Then define the contours of the polygon by calling
+ * {@link #gluTessVertex gluTessVertex} for each vertex
+ * and {@link #gluNextContour gluNextContour} to start
+ * each new contour. Finally, call gluEndPolygon to signal the end of
+ * the definition. See the {@link #gluTessVertex
+ * gluTessVertex} and {@link #gluNextContour
+ * gluNextContour} reference pages for more details.
void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
*/
+public void gluCylinder(GLUquadric quad, double base, double top, double height, int slices, int stacks) {
+ ((GLUquadricImpl) quad).drawCylinder(getCurrentGL(), (float) base, (float) top, (float) height, slices, stacks);
+}
+
+/** Interface to C language function:
void gluDeleteQuadric(GLUquadric * quad);
*/
+public void gluDeleteQuadric(GLUquadric quad) {
+}
+
+/** Interface to C language function:
void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
*/
+public void gluDisk(GLUquadric quad, double inner, double outer, int slices, int loops) {
+ ((GLUquadricImpl) quad).drawDisk(getCurrentGL(), (float) inner, (float) outer, slices, loops);
+}
+
+/** Interface to C language function:
GLUquadric * gluNewQuadric(void);
*/
+public GLUquadric gluNewQuadric() {
+ return new GLUquadricImpl();
+}
+
+/** Interface to C language function:
void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
*/
+public void gluPartialDisk(GLUquadric quad, double inner, double outer, int slices, int loops, double start, double sweep) {
+ ((GLUquadricImpl) quad).drawPartialDisk(getCurrentGL(), (float) inner, (float) outer, slices, loops, (float) start, (float) sweep);
+}
+
+/** Interface to C language function:
void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);
*/
+public void gluQuadricDrawStyle(GLUquadric quad, int draw) {
+ ((GLUquadricImpl) quad).setDrawStyle(draw);
+}
+
+/** Interface to C language function:
void gluQuadricNormals(GLUquadric * quad, GLenum normal);
*/
+public void gluQuadricNormals(GLUquadric quad, int normal) {
+ ((GLUquadricImpl) quad).setNormals(normal);
+}
+
+/** Interface to C language function:
void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);
*/
+public void gluQuadricOrientation(GLUquadric quad, int orientation) {
+ ((GLUquadricImpl) quad).setOrientation(orientation);
+}
+
+/** Interface to C language function:
void gluQuadricTexture(GLUquadric * quad, GLboolean texture);
*/
+public void gluQuadricTexture(GLUquadric quad, boolean texture) {
+ ((GLUquadricImpl) quad).setTextureFlag(texture);
+}
+
+/** Interface to C language function:
void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks);
*/
+public void gluSphere(GLUquadric quad, double radius, int slices, int stacks) {
+ ((GLUquadricImpl) quad).drawSphere(getCurrentGL(), (float) radius, slices, stacks);
+}
+
+//----------------------------------------------------------------------
+// Projection routines
+//
+
+private Project project;
+
+public void gluOrtho2D(double left, double right, double bottom, double top) {
+ project.gluOrtho2D(getCurrentGL(), left, right, bottom, top);
+}
+
+public void gluPerspective(double fovy, double aspect, double zNear, double zFar) {
+ project.gluPerspective(getCurrentGL(), fovy, aspect, zNear, zFar);
+}
+
+public void gluLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ) {
+ project.gluLookAt(getCurrentGL(), eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
+}
+
+/** Interface to C language function:
GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ);
*/
+public boolean gluProject(double objX, double objY, double objZ, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double[] winX, int winX_offset, double[] winY, int winY_offset, double[] winZ, int winZ_offset) {
+ double[] tmp = new double[3];
+ boolean res = project.gluProject(objX, objY, objZ, model, model_offset, proj, proj_offset, view, view_offset, tmp, 0);
+ winX[winX_offset] = tmp[0];
+ winY[winY_offset] = tmp[1];
+ winZ[winZ_offset] = tmp[2];
+ return res;
+}
+
+/**
+ * Convenience routine for gluProject that accepts the outgoing window
+ * coordinates as a single array.
+ */
+public boolean gluProject(double objX, double objY, double objZ, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double[] winPos, int winPos_offset) {
+ return project.gluProject(objX, objY, objZ, model, model_offset, proj, proj_offset, view, view_offset, winPos, winPos_offset);
+}
+
+/** Interface to C language function:
GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ);
*/
+public boolean gluUnProject(double winX, double winY, double winZ, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double[] objX, int objX_offset, double[] objY, int objY_offset, double[] objZ, int objZ_offset) {
+ double[] tmp = new double[3];
+ boolean res = project.gluUnProject(winX, winY, winZ, model, model_offset, proj, proj_offset, view, view_offset, tmp, 0);
+ objX[objX_offset] = tmp[0];
+ objY[objY_offset] = tmp[1];
+ objZ[objZ_offset] = tmp[2];
+ return res;
+}
+
+/**
+ * Convenience routine for gluUnProject that accepts the outgoing
+ * object coordinates (a 3-vector) as a single array.
+ */
+public boolean gluUnProject(double winX, double winY, double winZ, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double[] objPos, int objPos_offset) {
+ return project.gluUnProject(winX, winY, winZ, model, model_offset, proj, proj_offset, view, view_offset, objPos, objPos_offset);
+}
+
+/** Interface to C language function:
GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble nearVal, GLdouble farVal, GLdouble * objX, GLdouble * objY, GLdouble * objZ, GLdouble * objW);
*/
+public boolean gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double nearVal, double farVal, double[] objX, int objX_offset, double[] objY, int objY_offset, double[] objZ, int objZ_offset, double[] objW, int objW_offset) {
+ double[] tmp = new double[4];
+ boolean res = project.gluUnProject4(winX, winY, winZ, clipW, model, model_offset, proj, proj_offset,
+ view, view_offset, nearVal, farVal, tmp, 0);
+ objX[objX_offset] = tmp[0];
+ objY[objY_offset] = tmp[1];
+ objZ[objZ_offset] = tmp[2];
+ objW[objW_offset] = tmp[3];
+ return res;
+}
+
+/**
+ * Convenience routine for gluUnProject4 that accepts the outgoing
+ * object coordinates (a 4-vector) as a single array.
+ */
+public boolean gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double nearVal, double farVal, double[] objPos, int objPos_offset) {
+ return project.gluUnProject4(winX, winY, winZ, clipW, model, model_offset, proj, proj_offset, view, view_offset, nearVal, farVal, objPos, objPos_offset);
+}
+
+public void gluPickMatrix(double x, double y, double delX, double delY, int[] viewport, int viewport_offset) {
+ project.gluPickMatrix(getCurrentGL(), x, y, delX, delY, viewport, viewport_offset);
+}
+
+public void gluPickMatrix(double x, double y, double delX, double delY, IntBuffer viewport) {
+ project.gluPickMatrix(getCurrentGL(), x, y, delX, delY, viewport);
+}
+
+//----------------------------------------------------------------------
+// Mipmap and image scaling functionality
+
+
+// Boolean
+public static final int GLU_FALSE = 0;
+public static final int GLU_TRUE = 1;
+
+// String Name
+public static final int GLU_VERSION = 100800;
+public static final int GLU_EXTENSIONS = 100801;
+
+// Extensions
+public static final String versionString = "1.3";
+public static final String extensionString = "GLU_EXT_nurbs_tessellator " +
+ "GLU_EXT_object_space_tess ";
+
+// ErrorCode
+public static final int GLU_INVALID_ENUM = 100900;
+public static final int GLU_INVALID_VALUE = 100901;
+public static final int GLU_OUT_OF_MEMORY = 100902;
+public static final int GLU_INVALID_OPERATION = 100904;
+
+// NurbsDisplay
+// GLU_FILL
+public static final int GLU_OUTLINE_POLYGON = 100240;
+public static final int GLU_OUTLINE_PATCH = 100241;
+
+// NurbsCallback
+public static final int GLU_NURBS_ERROR = 100103;
+public static final int GLU_ERROR = 100103;
+public static final int GLU_NURBS_BEGIN = 100164;
+public static final int GLU_NURBS_BEGIN_EXT = 100164;
+public static final int GLU_NURBS_VERTEX = 100165;
+public static final int GLU_NURBS_VERTEX_EXT = 100165;
+public static final int GLU_NURBS_NORMAL = 100166;
+public static final int GLU_NURBS_NORMAL_EXT = 100166;
+public static final int GLU_NURBS_COLOR = 100167;
+public static final int GLU_NURBS_COLOR_EXT = 100167;
+public static final int GLU_NURBS_TEXTURE_COORD = 100168;
+public static final int GLU_NURBS_TEX_COORD_EXT = 100168;
+public static final int GLU_NURBS_END = 100169;
+public static final int GLU_NURBS_END_EXT = 100169;
+public static final int GLU_NURBS_BEGIN_DATA = 100170;
+public static final int GLU_NURBS_BEGIN_DATA_EXT = 100170;
+public static final int GLU_NURBS_VERTEX_DATA = 100171;
+public static final int GLU_NURBS_VERTEX_DATA_EXT = 100171;
+public static final int GLU_NURBS_NORMAL_DATA = 100172;
+public static final int GLU_NURBS_NORMAL_DATA_EXT = 100172;
+public static final int GLU_NURBS_COLOR_DATA = 100173;
+public static final int GLU_NURBS_COLOR_DATA_EXT = 100173;
+public static final int GLU_NURBS_TEXTURE_COORD_DATA = 100174;
+public static final int GLU_NURBS_TEX_COORD_DATA_EXT = 100174;
+public static final int GLU_NURBS_END_DATA = 100175;
+public static final int GLU_NURBS_END_DATA_EXT = 100175;
+
+// NurbsError
+public static final int GLU_NURBS_ERROR1 = 100251;
+public static final int GLU_NURBS_ERROR2 = 100252;
+public static final int GLU_NURBS_ERROR3 = 100253;
+public static final int GLU_NURBS_ERROR4 = 100254;
+public static final int GLU_NURBS_ERROR5 = 100255;
+public static final int GLU_NURBS_ERROR6 = 100256;
+public static final int GLU_NURBS_ERROR7 = 100257;
+public static final int GLU_NURBS_ERROR8 = 100258;
+public static final int GLU_NURBS_ERROR9 = 100259;
+public static final int GLU_NURBS_ERROR10 = 100260;
+public static final int GLU_NURBS_ERROR11 = 100261;
+public static final int GLU_NURBS_ERROR12 = 100262;
+public static final int GLU_NURBS_ERROR13 = 100263;
+public static final int GLU_NURBS_ERROR14 = 100264;
+public static final int GLU_NURBS_ERROR15 = 100265;
+public static final int GLU_NURBS_ERROR16 = 100266;
+public static final int GLU_NURBS_ERROR17 = 100267;
+public static final int GLU_NURBS_ERROR18 = 100268;
+public static final int GLU_NURBS_ERROR19 = 100269;
+public static final int GLU_NURBS_ERROR20 = 100270;
+public static final int GLU_NURBS_ERROR21 = 100271;
+public static final int GLU_NURBS_ERROR22 = 100272;
+public static final int GLU_NURBS_ERROR23 = 100273;
+public static final int GLU_NURBS_ERROR24 = 100274;
+public static final int GLU_NURBS_ERROR25 = 100275;
+public static final int GLU_NURBS_ERROR26 = 100276;
+public static final int GLU_NURBS_ERROR27 = 100277;
+public static final int GLU_NURBS_ERROR28 = 100278;
+public static final int GLU_NURBS_ERROR29 = 100279;
+public static final int GLU_NURBS_ERROR30 = 100280;
+public static final int GLU_NURBS_ERROR31 = 100281;
+public static final int GLU_NURBS_ERROR32 = 100282;
+public static final int GLU_NURBS_ERROR33 = 100283;
+public static final int GLU_NURBS_ERROR34 = 100284;
+public static final int GLU_NURBS_ERROR35 = 100285;
+public static final int GLU_NURBS_ERROR36 = 100286;
+public static final int GLU_NURBS_ERROR37 = 100287;
+
+// NurbsProperty
+public static final int GLU_AUTO_LOAD_MATRIX = 100200;
+public static final int GLU_CULLING = 100201;
+public static final int GLU_SAMPLING_TOLERANCE = 100203;
+public static final int GLU_DISPLAY_MODE = 100204;
+public static final int GLU_PARAMETRIC_TOLERANCE = 100202;
+public static final int GLU_SAMPLING_METHOD = 100205;
+public static final int GLU_U_STEP = 100206;
+public static final int GLU_V_STEP = 100207;
+public static final int GLU_NURBS_MODE = 100160;
+public static final int GLU_NURBS_MODE_EXT = 100160;
+public static final int GLU_NURBS_TESSELLATOR = 100161;
+public static final int GLU_NURBS_TESSELLATOR_EXT = 100161;
+public static final int GLU_NURBS_RENDERER = 100162;
+public static final int GLU_NURBS_RENDERER_EXT = 100162;
+
+// NurbsSampling
+public static final int GLU_OBJECT_PARAMETRIC_ERROR = 100208;
+public static final int GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208;
+public static final int GLU_OBJECT_PATH_LENGTH = 100209;
+public static final int GLU_OBJECT_PATH_LENGTH_EXT = 100209;
+public static final int GLU_PATH_LENGTH = 100215;
+public static final int GLU_PARAMETRIC_ERROR = 100216;
+public static final int GLU_DOMAIN_DISTANCE = 100217;
+
+// NurbsTrim
+public static final int GLU_MAP1_TRIM_2 = 100210;
+public static final int GLU_MAP1_TRIM_3 = 100211;
+
+// QuadricDrawStyle
+public static final int GLU_POINT = 100010;
+public static final int GLU_LINE = 100011;
+public static final int GLU_FILL = 100012;
+public static final int GLU_SILHOUETTE = 100013;
+
+// QuadricCallback
+// GLU_ERROR
+
+// QuadricNormal
+public static final int GLU_SMOOTH = 100000;
+public static final int GLU_FLAT = 100001;
+public static final int GLU_NONE = 100002;
+
+// QuadricOrientation
+public static final int GLU_OUTSIDE = 100020;
+public static final int GLU_INSIDE = 100021;
+
+// TessCallback
+public static final int GLU_TESS_BEGIN = 100100;
+public static final int GLU_BEGIN = 100100;
+public static final int GLU_TESS_VERTEX = 100101;
+public static final int GLU_VERTEX = 100101;
+public static final int GLU_TESS_END = 100102;
+public static final int GLU_END = 100102;
+public static final int GLU_TESS_ERROR = 100103;
+public static final int GLU_TESS_EDGE_FLAG = 100104;
+public static final int GLU_EDGE_FLAG = 100104;
+public static final int GLU_TESS_COMBINE = 100105;
+public static final int GLU_TESS_BEGIN_DATA = 100106;
+public static final int GLU_TESS_VERTEX_DATA = 100107;
+public static final int GLU_TESS_END_DATA = 100108;
+public static final int GLU_TESS_ERROR_DATA = 100109;
+public static final int GLU_TESS_EDGE_FLAG_DATA = 100110;
+public static final int GLU_TESS_COMBINE_DATA = 100111;
+
+// TessContour
+public static final int GLU_CW = 100120;
+public static final int GLU_CCW = 100121;
+public static final int GLU_INTERIOR = 100122;
+public static final int GLU_EXTERIOR = 100123;
+public static final int GLU_UNKNOWN = 100124;
+
+// TessProperty
+public static final int GLU_TESS_WINDING_RULE = 100140;
+public static final int GLU_TESS_BOUNDARY_ONLY = 100141;
+public static final int GLU_TESS_TOLERANCE = 100142;
+
+// TessError
+public static final int GLU_TESS_ERROR1 = 100151;
+public static final int GLU_TESS_ERROR2 = 100152;
+public static final int GLU_TESS_ERROR3 = 100153;
+public static final int GLU_TESS_ERROR4 = 100154;
+public static final int GLU_TESS_ERROR5 = 100155;
+public static final int GLU_TESS_ERROR6 = 100156;
+public static final int GLU_TESS_ERROR7 = 100157;
+public static final int GLU_TESS_ERROR8 = 100158;
+public static final int GLU_TESS_MISSING_BEGIN_POLYGON = 100151;
+public static final int GLU_TESS_MISSING_BEGIN_CONTOUR = 100152;
+public static final int GLU_TESS_MISSING_END_POLYGON = 100153;
+public static final int GLU_TESS_MISSING_END_CONTOUR = 100154;
+public static final int GLU_TESS_COORD_TOO_LARGE = 100155;
+public static final int GLU_TESS_NEED_COMBINE_CALLBACK = 100156;
+
+// TessWinding
+public static final int GLU_TESS_WINDING_ODD = 100130;
+public static final int GLU_TESS_WINDING_NONZERO = 100131;
+public static final int GLU_TESS_WINDING_POSITIVE = 100132;
+public static final int GLU_TESS_WINDING_NEGATIVE = 100133;
+public static final int GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
+public static final double GLU_TESS_MAX_COORD = 1.0e150;
+
+private ByteBuffer copyToByteBuffer(Buffer buf) {
+ if (buf instanceof ByteBuffer) {
+ if (buf.position() == 0) {
+ return (ByteBuffer) buf;
+ }
+ return BufferUtils.copyByteBuffer((ByteBuffer) buf);
+ } else if (buf instanceof ShortBuffer) {
+ return BufferUtils.copyShortBufferAsByteBuffer((ShortBuffer) buf);
+ } else if (buf instanceof IntBuffer) {
+ return BufferUtils.copyIntBufferAsByteBuffer((IntBuffer) buf);
+ } else if (buf instanceof FloatBuffer) {
+ return BufferUtils.copyFloatBufferAsByteBuffer((FloatBuffer) buf);
+ } else {
+ throw new IllegalArgumentException("Unsupported buffer type (must be one of byte, short, int, or float)");
+ }
+}
+
+private int gluScaleImageJava( int format, int widthin, int heightin,
+ int typein, Buffer datain, int widthout, int heightout,
+ int typeout, Buffer dataout ) {
+ ByteBuffer in = null;
+ ByteBuffer out = null;
+ in = copyToByteBuffer(datain);
+ if( dataout instanceof ByteBuffer ) {
+ out = (ByteBuffer)dataout;
+ } else if( dataout instanceof ShortBuffer ) {
+ out = BufferUtils.newByteBuffer(dataout.remaining() * BufferUtils.SIZEOF_SHORT);
+ } else if ( dataout instanceof IntBuffer ) {
+ out = BufferUtils.newByteBuffer(dataout.remaining() * BufferUtils.SIZEOF_INT);
+ } else if ( dataout instanceof FloatBuffer ) {
+ out = BufferUtils.newByteBuffer(dataout.remaining() * BufferUtils.SIZEOF_FLOAT);
+ } else {
+ throw new IllegalArgumentException("Unsupported destination buffer type (must be byte, short, int, or float)");
+ }
+ int errno = Mipmap.gluScaleImage( getCurrentGL(), format, widthin, heightin, typein, in,
+ widthout, heightout, typeout, out );
+ if( errno == 0 ) {
+ out.rewind();
+ if( dataout instanceof ShortBuffer ) {
+ ((ShortBuffer) dataout).put(out.asShortBuffer());
+ } else if( dataout instanceof IntBuffer ) {
+ ((IntBuffer) dataout).put(out.asIntBuffer());
+ } else if( dataout instanceof FloatBuffer ) {
+ ((FloatBuffer) dataout).put(out.asFloatBuffer());
+ } else {
+ throw new RuntimeException("Should not reach here");
+ }
+ }
+ return( errno );
+}
+
+
+private int gluBuild1DMipmapLevelsJava( int target, int internalFormat, int width,
+ int format, int type, int userLevel, int baseLevel, int maxLevel,
+ Buffer data ) {
+ ByteBuffer buffer = copyToByteBuffer(data);
+ return( Mipmap.gluBuild1DMipmapLevels( getCurrentGL(), target, internalFormat, width,
+ format, type, userLevel, baseLevel, maxLevel, buffer ) );
+}
+
+
+private int gluBuild1DMipmapsJava( int target, int internalFormat, int width,
+ int format, int type, Buffer data ) {
+ ByteBuffer buffer = copyToByteBuffer(data);
+ return( Mipmap.gluBuild1DMipmaps( getCurrentGL(), target, internalFormat, width, format,
+ type, buffer ) );
+}
+
+
+private int gluBuild2DMipmapLevelsJava( int target, int internalFormat, int width,
+ int height, int format, int type, int userLevel, int baseLevel,
+ int maxLevel, Buffer data ) {
+ // While the code below handles other data types, it doesn't handle non-ByteBuffers
+ data = copyToByteBuffer(data);
+ return( Mipmap.gluBuild2DMipmapLevels( getCurrentGL(), target, internalFormat, width,
+ height, format, type, userLevel, baseLevel, maxLevel, data ) );
+}
+
+private int gluBuild2DMipmapsJava( int target, int internalFormat, int width,
+ int height, int format, int type, Buffer data ) {
+ // While the code below handles other data types, it doesn't handle non-ByteBuffers
+ data = copyToByteBuffer(data);
+ return( Mipmap.gluBuild2DMipmaps( getCurrentGL(), target, internalFormat, width, height,
+ format, type, data) );
+}
+
+private int gluBuild3DMipmapLevelsJava( int target, int internalFormat, int width,
+ int height, int depth, int format, int type, int userLevel, int baseLevel,
+ int maxLevel, Buffer data) {
+ ByteBuffer buffer = copyToByteBuffer(data);
+ return( Mipmap.gluBuild3DMipmapLevels( getCurrentGL(), target, internalFormat, width,
+ height, depth, format, type, userLevel, baseLevel, maxLevel, buffer) );
+}
+
+private int gluBuild3DMipmapsJava( int target, int internalFormat, int width,
+ int height, int depth, int format, int type, Buffer data ) {
+ ByteBuffer buffer = copyToByteBuffer(data);
+ return( Mipmap.gluBuild3DMipmaps( getCurrentGL(), target, internalFormat, width, height,
+ depth, format, type, buffer ) );
+}
+
+
+//----------------------------------------------------------------------
+// Wrappers for mipmap and image scaling entry points which dispatch either
+// to the Java or C versions.
+//
+
+/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
+public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.Buffer data) {
+ if (useJavaMipmapCode) {
+ return gluBuild1DMipmapLevelsJava(target, internalFormat, width, format, type, level, base, max, data);
+ } else {
+ return gluBuild1DMipmapLevelsC(target, internalFormat, width, format, type, level, base, max, data);
+ }
+}
+
+/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
+public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, java.nio.Buffer data) {
+ if (useJavaMipmapCode) {
+ return gluBuild1DMipmapsJava(target, internalFormat, width, format, type, data);
+ } else {
+ return gluBuild1DMipmapsC(target, internalFormat, width, format, type, data);
+ }
+}
+
+/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
+public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.Buffer data) {
+ if (useJavaMipmapCode) {
+ return gluBuild2DMipmapLevelsJava(target, internalFormat, width, height, format, type, level, base, max, data);
+ } else {
+ return gluBuild2DMipmapLevelsC(target, internalFormat, width, height, format, type, level, base, max, data);
+ }
+}
+
+
+/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
+public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, java.nio.Buffer data) {
+ if (useJavaMipmapCode) {
+ return gluBuild2DMipmapsJava(target, internalFormat, width, height, format, type, data);
+ } else {
+ return gluBuild2DMipmapsC(target, internalFormat, width, height, format, type, data);
+ }
+}
+
+
+/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
+public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, java.nio.Buffer data) {
+ if (useJavaMipmapCode) {
+ return gluBuild3DMipmapLevelsJava(target, internalFormat, width, height, depth, format, type, level, base, max, data);
+ } else {
+ return gluBuild3DMipmapLevelsC(target, internalFormat, width, height, depth, format, type, level, base, max, data);
+ }
+}
+
+/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
+public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.Buffer data) {
+ if (useJavaMipmapCode) {
+ return gluBuild3DMipmapsJava(target, internalFormat, width, height, depth, format, type, data);
+ } else {
+ return gluBuild3DMipmapsC(target, internalFormat, width, height, depth, format, type, data);
+ }
+}
+
+
+/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
+public int gluScaleImage(int format, int wIn, int hIn, int typeIn, java.nio.Buffer dataIn, int wOut, int hOut, int typeOut, java.nio.Buffer dataOut) {
+ if (useJavaMipmapCode) {
+ return gluScaleImageJava(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
+ } else {
+ return gluScaleImageC(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
+ }
+}
+
+//----------------------------------------------------------------------
+// GLUProcAddressTable handling
+//
+
+private static GLUProcAddressTable gluProcAddressTable;
+
+private static GLUProcAddressTable getGLUProcAddressTable() {
+ if (gluProcAddressTable == null) {
+ GLUProcAddressTable tmp = new GLUProcAddressTable();
+ GLDrawableFactoryImpl.getFactoryImpl().resetProcAddressTable(tmp);
+ gluProcAddressTable = tmp;
+ }
+ return gluProcAddressTable;
+}
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
void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
*/
-public void gluCylinder(GLUquadric quad, double base, double top, double height, int slices, int stacks) {
- ((GLUquadricImpl) quad).drawCylinder(gl, (float) base, (float) top, (float) height, slices, stacks);
-}
-
-/** Interface to C language function:
void gluDeleteQuadric(GLUquadric * quad);
*/
-public void gluDeleteQuadric(GLUquadric quad) {
-}
-
-/** Interface to C language function:
void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
*/
-public void gluDisk(GLUquadric quad, double inner, double outer, int slices, int loops) {
- ((GLUquadricImpl) quad).drawDisk(gl, (float) inner, (float) outer, slices, loops);
-}
-
-/** Interface to C language function:
GLUquadric * gluNewQuadric(void);
*/
-public GLUquadric gluNewQuadric() {
- return new GLUquadricImpl();
-}
-
-/** Interface to C language function:
void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
*/
-public void gluPartialDisk(GLUquadric quad, double inner, double outer, int slices, int loops, double start, double sweep) {
- ((GLUquadricImpl) quad).drawPartialDisk(gl, (float) inner, (float) outer, slices, loops, (float) start, (float) sweep);
-}
-
-/** Interface to C language function:
void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);
*/
-public void gluQuadricDrawStyle(GLUquadric quad, int draw) {
- ((GLUquadricImpl) quad).setDrawStyle(draw);
-}
-
-/** Interface to C language function:
void gluQuadricNormals(GLUquadric * quad, GLenum normal);
*/
-public void gluQuadricNormals(GLUquadric quad, int normal) {
- ((GLUquadricImpl) quad).setNormals(normal);
-}
-
-/** Interface to C language function:
void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);
*/
-public void gluQuadricOrientation(GLUquadric quad, int orientation) {
- ((GLUquadricImpl) quad).setOrientation(orientation);
-}
-
-/** Interface to C language function:
void gluQuadricTexture(GLUquadric * quad, GLboolean texture);
*/
-public void gluQuadricTexture(GLUquadric quad, boolean texture) {
- ((GLUquadricImpl) quad).setTextureFlag(texture);
-}
-
-/** Interface to C language function:
void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks);
*/
-public void gluSphere(GLUquadric quad, double radius, int slices, int stacks) {
- ((GLUquadricImpl) quad).drawSphere(gl, (float) radius, slices, stacks);
-}
-
-//----------------------------------------------------------------------
-// Projection functionality
-//
-
-private Project project;
-
-public void gluOrtho2D(double left, double right, double bottom, double top) {
- project.gluOrtho2D(gl, left, right, bottom, top);
-}
-
-public void gluPerspective(double fovy, double aspect, double zNear, double zFar) {
- project.gluPerspective(gl, fovy, aspect, zNear, zFar);
-}
-
-public void gluLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ) {
- project.gluLookAt(gl, eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
-}
-
-public boolean gluProject(double objX, double objY, double objZ, double[] model, double[] proj, int[] view, double[] winX, double[] winY, double[] winZ) {
- double[] tmp = new double[3];
- boolean res = project.gluProject(objX, objY, objZ, model, proj, view, tmp);
- winX[0] = tmp[0];
- winY[0] = tmp[1];
- winZ[0] = tmp[2];
- return res;
-}
-
-public boolean gluProject(double objX, double objY, double objZ, double[] model, double[] proj, int[] view, double[] winPos) {
- return project.gluProject(objX, objY, objZ, model, proj, view, winPos);
-}
-
-public boolean gluUnProject(double winX, double winY, double winZ, double[] model, double[] proj, int[] view, double[] objX, double[] objY, double[] objZ) {
- double[] tmp = new double[3];
- boolean res = project.gluUnProject(winX, winY, winZ, model, proj, view, tmp);
- objX[0] = tmp[0];
- objY[0] = tmp[1];
- objZ[0] = tmp[2];
- return res;
-}
-
-public boolean gluUnProject(double winX, double winY, double winZ, double[] model, double[] proj, int[] view, double[] objPos) {
- return project.gluUnProject(winX, winY, winZ, model, proj, view, objPos);
-}
-
-public boolean gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, double[] proj, int[] view, double nearVal, double farVal, double[] objX, double[] objY, double[] objZ, double[] objW) {
- double[] tmp = new double[4];
- boolean res = project.gluUnProject4(winX, winY, winZ, clipW, model, proj, view, nearVal, farVal, tmp);
- objX[0] = tmp[0];
- objY[0] = tmp[1];
- objZ[0] = tmp[2];
- objW[0] = tmp[3];
- return res;
-}
-
-public boolean gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, double[] proj, int[] view, double nearVal, double farVal, double[] objPos) {
- return project.gluUnProject4(winX, winY, winZ, clipW, model, proj, view, nearVal, farVal, objPos);
-}
-
-public void gluPickMatrix(double x, double y, double delX, double delY, int[] viewport) {
- project.gluPickMatrix(gl, x, y, delX, delY, viewport);
-}
-
-//----------------------------------------------------------------------
-// Mipmap and image scaling functionality
-
-
-// Boolean
-public static final int GLU_FALSE = 0;
-public static final int GLU_TRUE = 1;
-
-// String Name
-public static final int GLU_VERSION = 100800;
-public static final int GLU_EXTENSIONS = 100801;
-
-// Extensions
-public static final String versionString = "1.3";
-public static final String extensionString = "GLU_EXT_nurbs_tessellator " +
- "GLU_EXT_object_space_tess ";
-
-// ErrorCode
-public static final int GLU_INVALID_ENUM = 100900;
-public static final int GLU_INVALID_VALUE = 100901;
-public static final int GLU_OUT_OF_MEMORY = 100902;
-public static final int GLU_INVALID_OPERATION = 100904;
-
-// NurbsDisplay
-// GLU_FILL
-public static final int GLU_OUTLINE_POLYGON = 100240;
-public static final int GLU_OUTLINE_PATCH = 100241;
-
-// NurbsCallback
-public static final int GLU_NURBS_ERROR = 100103;
-public static final int GLU_ERROR = 100103;
-public static final int GLU_NURBS_BEGIN = 100164;
-public static final int GLU_NURBS_BEGIN_EXT = 100164;
-public static final int GLU_NURBS_VERTEX = 100165;
-public static final int GLU_NURBS_VERTEX_EXT = 100165;
-public static final int GLU_NURBS_NORMAL = 100166;
-public static final int GLU_NURBS_NORMAL_EXT = 100166;
-public static final int GLU_NURBS_COLOR = 100167;
-public static final int GLU_NURBS_COLOR_EXT = 100167;
-public static final int GLU_NURBS_TEXTURE_COORD = 100168;
-public static final int GLU_NURBS_TEX_COORD_EXT = 100168;
-public static final int GLU_NURBS_END = 100169;
-public static final int GLU_NURBS_END_EXT = 100169;
-public static final int GLU_NURBS_BEGIN_DATA = 100170;
-public static final int GLU_NURBS_BEGIN_DATA_EXT = 100170;
-public static final int GLU_NURBS_VERTEX_DATA = 100171;
-public static final int GLU_NURBS_VERTEX_DATA_EXT = 100171;
-public static final int GLU_NURBS_NORMAL_DATA = 100172;
-public static final int GLU_NURBS_NORMAL_DATA_EXT = 100172;
-public static final int GLU_NURBS_COLOR_DATA = 100173;
-public static final int GLU_NURBS_COLOR_DATA_EXT = 100173;
-public static final int GLU_NURBS_TEXTURE_COORD_DATA = 100174;
-public static final int GLU_NURBS_TEX_COORD_DATA_EXT = 100174;
-public static final int GLU_NURBS_END_DATA = 100175;
-public static final int GLU_NURBS_END_DATA_EXT = 100175;
-
-// NurbsError
-public static final int GLU_NURBS_ERROR1 = 100251;
-public static final int GLU_NURBS_ERROR2 = 100252;
-public static final int GLU_NURBS_ERROR3 = 100253;
-public static final int GLU_NURBS_ERROR4 = 100254;
-public static final int GLU_NURBS_ERROR5 = 100255;
-public static final int GLU_NURBS_ERROR6 = 100256;
-public static final int GLU_NURBS_ERROR7 = 100257;
-public static final int GLU_NURBS_ERROR8 = 100258;
-public static final int GLU_NURBS_ERROR9 = 100259;
-public static final int GLU_NURBS_ERROR10 = 100260;
-public static final int GLU_NURBS_ERROR11 = 100261;
-public static final int GLU_NURBS_ERROR12 = 100262;
-public static final int GLU_NURBS_ERROR13 = 100263;
-public static final int GLU_NURBS_ERROR14 = 100264;
-public static final int GLU_NURBS_ERROR15 = 100265;
-public static final int GLU_NURBS_ERROR16 = 100266;
-public static final int GLU_NURBS_ERROR17 = 100267;
-public static final int GLU_NURBS_ERROR18 = 100268;
-public static final int GLU_NURBS_ERROR19 = 100269;
-public static final int GLU_NURBS_ERROR20 = 100270;
-public static final int GLU_NURBS_ERROR21 = 100271;
-public static final int GLU_NURBS_ERROR22 = 100272;
-public static final int GLU_NURBS_ERROR23 = 100273;
-public static final int GLU_NURBS_ERROR24 = 100274;
-public static final int GLU_NURBS_ERROR25 = 100275;
-public static final int GLU_NURBS_ERROR26 = 100276;
-public static final int GLU_NURBS_ERROR27 = 100277;
-public static final int GLU_NURBS_ERROR28 = 100278;
-public static final int GLU_NURBS_ERROR29 = 100279;
-public static final int GLU_NURBS_ERROR30 = 100280;
-public static final int GLU_NURBS_ERROR31 = 100281;
-public static final int GLU_NURBS_ERROR32 = 100282;
-public static final int GLU_NURBS_ERROR33 = 100283;
-public static final int GLU_NURBS_ERROR34 = 100284;
-public static final int GLU_NURBS_ERROR35 = 100285;
-public static final int GLU_NURBS_ERROR36 = 100286;
-public static final int GLU_NURBS_ERROR37 = 100287;
-
-// NurbsProperty
-public static final int GLU_AUTO_LOAD_MATRIX = 100200;
-public static final int GLU_CULLING = 100201;
-public static final int GLU_SAMPLING_TOLERANCE = 100203;
-public static final int GLU_DISPLAY_MODE = 100204;
-public static final int GLU_PARAMETRIC_TOLERANCE = 100202;
-public static final int GLU_SAMPLING_METHOD = 100205;
-public static final int GLU_U_STEP = 100206;
-public static final int GLU_V_STEP = 100207;
-public static final int GLU_NURBS_MODE = 100160;
-public static final int GLU_NURBS_MODE_EXT = 100160;
-public static final int GLU_NURBS_TESSELLATOR = 100161;
-public static final int GLU_NURBS_TESSELLATOR_EXT = 100161;
-public static final int GLU_NURBS_RENDERER = 100162;
-public static final int GLU_NURBS_RENDERER_EXT = 100162;
-
-// NurbsSampling
-public static final int GLU_OBJECT_PARAMETRIC_ERROR = 100208;
-public static final int GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208;
-public static final int GLU_OBJECT_PATH_LENGTH = 100209;
-public static final int GLU_OBJECT_PATH_LENGTH_EXT = 100209;
-public static final int GLU_PATH_LENGTH = 100215;
-public static final int GLU_PARAMETRIC_ERROR = 100216;
-public static final int GLU_DOMAIN_DISTANCE = 100217;
-
-// NurbsTrim
-public static final int GLU_MAP1_TRIM_2 = 100210;
-public static final int GLU_MAP1_TRIM_3 = 100211;
-
-// QuadricDrawStyle
-public static final int GLU_POINT = 100010;
-public static final int GLU_LINE = 100011;
-public static final int GLU_FILL = 100012;
-public static final int GLU_SILHOUETTE = 100013;
-
-// QuadricCallback
-// GLU_ERROR
-
-// QuadricNormal
-public static final int GLU_SMOOTH = 100000;
-public static final int GLU_FLAT = 100001;
-public static final int GLU_NONE = 100002;
-
-// QuadricOrientation
-public static final int GLU_OUTSIDE = 100020;
-public static final int GLU_INSIDE = 100021;
-
-// TessCallback
-public static final int GLU_TESS_BEGIN = 100100;
-public static final int GLU_BEGIN = 100100;
-public static final int GLU_TESS_VERTEX = 100101;
-public static final int GLU_VERTEX = 100101;
-public static final int GLU_TESS_END = 100102;
-public static final int GLU_END = 100102;
-public static final int GLU_TESS_ERROR = 100103;
-public static final int GLU_TESS_EDGE_FLAG = 100104;
-public static final int GLU_EDGE_FLAG = 100104;
-public static final int GLU_TESS_COMBINE = 100105;
-public static final int GLU_TESS_BEGIN_DATA = 100106;
-public static final int GLU_TESS_VERTEX_DATA = 100107;
-public static final int GLU_TESS_END_DATA = 100108;
-public static final int GLU_TESS_ERROR_DATA = 100109;
-public static final int GLU_TESS_EDGE_FLAG_DATA = 100110;
-public static final int GLU_TESS_COMBINE_DATA = 100111;
-
-// TessContour
-public static final int GLU_CW = 100120;
-public static final int GLU_CCW = 100121;
-public static final int GLU_INTERIOR = 100122;
-public static final int GLU_EXTERIOR = 100123;
-public static final int GLU_UNKNOWN = 100124;
-
-// TessProperty
-public static final int GLU_TESS_WINDING_RULE = 100140;
-public static final int GLU_TESS_BOUNDRY_ONLY = 100141;
-public static final int GLU_TESS_TOLERANCE = 100142;
-
-// TessError
-public static final int GLU_TESS_ERROR1 = 100151;
-public static final int GLU_TESS_ERROR2 = 100152;
-public static final int GLU_TESS_ERROR3 = 100153;
-public static final int GLU_TESS_ERROR4 = 100154;
-public static final int GLU_TESS_ERROR5 = 100155;
-public static final int GLU_TESS_ERROR6 = 100156;
-public static final int GLU_TESS_ERROR7 = 100157;
-public static final int GLU_TESS_ERROR8 = 100158;
-public static final int GLU_TESS_MISSING_BEGIN_POLYGON = 100151;
-public static final int GLU_TESS_MISSING_BEGIN_CONTOUR = 100152;
-public static final int GLU_TESS_MISSING_END_POLYGON = 100153;
-public static final int GLU_TESS_MISSING_END_CONTOUR = 100154;
-public static final int GLU_TESS_COORD_TOO_LARGE = 100155;
-public static final int GLU_TESS_NEED_COMBINE_CALLBACK = 100156;
-
-// TessWinding
-public static final int GLU_TESS_WINDING_ODD = 100130;
-public static final int GLU_TESS_WINDING_NONZERO = 100131;
-public static final int GLU_TESS_WINDING_POSITIVE = 100132;
-public static final int GLU_TESS_WINDING_NEGATIVE = 100133;
-public static final int GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
-
-public int gluScaleImageJava( int format, int widthin, int heightin,
- int typein, Object datain, int widthout, int heightout,
- int typeout, Object dataout ) {
- ByteBuffer in = null;
- ByteBuffer out = null;
- if( datain instanceof ByteBuffer ) {
- in = (ByteBuffer)datain;
- } else if( datain instanceof byte[] ) {
- in = ByteBuffer.allocateDirect( ((byte[])datain).length ).order( ByteOrder.nativeOrder() );
- in.put((byte[]) datain).rewind();
- } else if( datain instanceof short[] ) {
- in = ByteBuffer.allocateDirect( ((byte[])datain).length * 2 ).order( ByteOrder.nativeOrder() );
- in.asShortBuffer().put((short[]) datain).rewind();
- } else if( datain instanceof int[] ) {
- in = ByteBuffer.allocateDirect( ((byte[])datain).length * 4 ).order( ByteOrder.nativeOrder() );
- in.asIntBuffer().put((int[]) datain).rewind();
- } else if( datain instanceof float[] ) {
- in = ByteBuffer.allocateDirect( ((byte[])datain).length * 4 ).order( ByteOrder.nativeOrder() );
- in.asFloatBuffer().put((float[]) datain).rewind();
- } else {
- throw new IllegalArgumentException( "Input data must be a primitive array or a ByteBuffer" );
- }
- if( dataout instanceof ByteBuffer ) {
- out = (ByteBuffer)dataout;
- } else if( dataout instanceof byte[] ) {
- out = ByteBuffer.wrap( ((byte[])dataout) );
- } else if( dataout instanceof short[] ) {
- out = ByteBuffer.allocate( ((short[])dataout).length * 2 );
- } else if( dataout instanceof int[] ) {
- out = ByteBuffer.allocate( ((int[])dataout).length * 4 );
- } else if( dataout instanceof float[] ) {
- out = ByteBuffer.allocate( ((float[])dataout).length * 4 );
- } else {
- throw new IllegalArgumentException( "Output data must be a primitive array or a ByteBuffer" );
- }
- int errno = Mipmap.gluScaleImage( gl, format, widthin, heightin, typein, in,
- widthout, heightout, typeout, out );
- if( errno == 0 ) {
- if( dataout instanceof short[] ) {
- out.asShortBuffer().get( (short[])dataout );
- } else if( dataout instanceof int[] ) {
- out.asIntBuffer().get( (int[])dataout );
- } else if( dataout instanceof float[] ) {
- out.asFloatBuffer().get( (float[])dataout );
- }
- }
- return( errno );
-}
-
-public int gluBuild1DMipmapLevelsJava( int target, int internalFormat, int width,
- int format, int type, int userLevel, int baseLevel, int maxLevel,
- Object data ) {
- ByteBuffer buffer = null;
- if( data instanceof ByteBuffer ) {
- buffer = (ByteBuffer)data;
- } else if( data instanceof byte[] ) {
- buffer = ByteBuffer.allocateDirect( ((byte[])data).length ).order( ByteOrder.nativeOrder() );
- buffer.put( (byte[])data );
- } else if( data instanceof short[] ) {
- buffer = ByteBuffer.allocateDirect( ((short[])data).length * 2 ).order( ByteOrder.nativeOrder() );
- buffer.asShortBuffer().put( (short[])data );
- } else if( data instanceof int[] ) {
- buffer = ByteBuffer.allocateDirect( ((int[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asIntBuffer().put( (int[])data );
- } else if( data instanceof float[] ) {
- buffer = ByteBuffer.allocateDirect( ((float[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asFloatBuffer().put( (float[])data );
- } else {
- throw new IllegalArgumentException( "Input data must be a primitive array or a ByteBuffer" );
- }
- return( Mipmap.gluBuild1DMipmapLevels( gl, target, internalFormat, width,
- format, type, userLevel, baseLevel, maxLevel, buffer ) );
-}
-
-public int gluBuild1DMipmapsJava( int target, int internalFormat, int width,
- int format, int type, Object data ) {
- ByteBuffer buffer = null;
- if( data instanceof ByteBuffer ) {
- buffer = (ByteBuffer)data;
- } else if( data instanceof byte[] ) {
- buffer = ByteBuffer.allocateDirect( ((byte[])data).length ).order( ByteOrder.nativeOrder() );
- buffer.put( (byte[])data );
- } else if( data instanceof short[] ) {
- buffer = ByteBuffer.allocateDirect( ((short[])data).length * 2 ).order( ByteOrder.nativeOrder() );
- buffer.asShortBuffer().put( (short[])data );
- } else if( data instanceof int[] ) {
- buffer = ByteBuffer.allocateDirect( ((int[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asIntBuffer().put( (int[])data );
- } else if( data instanceof float[] ) {
- buffer = ByteBuffer.allocateDirect( ((float[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asFloatBuffer().put( (float[])data );
- } else {
- throw new IllegalArgumentException( "Input data must be a primitive array or a ByteBuffer" );
- }
- return( Mipmap.gluBuild1DMipmaps( gl, target, internalFormat, width, format,
- type, buffer ) );
-}
-
-public int gluBuild2DMipmapLevelsJava( int target, int internalFormat, int width,
- int height, int format, int type, int userLevel, int baseLevel,
- int maxLevel, Object data ) {
- return( Mipmap.gluBuild2DMipmapLevels( gl, target, internalFormat, width,
- height, format, type, userLevel, baseLevel, maxLevel, data ) );
-}
-
-public int gluBuild2DMipmapsJava( int target, int internalFormat, int width,
- int height, int format, int type, Object data ) {
- return( Mipmap.gluBuild2DMipmaps( gl, target, internalFormat, width, height,
- format, type, data ) );
-}
-
-public int gluBuild3DMipmapLevelsJava( int target, int internalFormat, int width,
- int height, int depth, int format, int type, int userLevel, int baseLevel,
- int maxLevel, Object data ) {
- ByteBuffer buffer = null;
- if( data instanceof ByteBuffer ) {
- buffer = (ByteBuffer)data;
- } else if( data instanceof byte[] ) {
- buffer = ByteBuffer.allocateDirect( ((byte[])data).length ).order( ByteOrder.nativeOrder() );
- buffer.put( (byte[])data );
- } else if( data instanceof short[] ) {
- buffer = ByteBuffer.allocateDirect( ((short[])data).length * 2 ).order( ByteOrder.nativeOrder() );
- buffer.asShortBuffer().put( (short[])data );
- } else if( data instanceof int[] ) {
- buffer = ByteBuffer.allocateDirect( ((int[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asIntBuffer().put( (int[])data );
- } else if( data instanceof float[] ) {
- buffer = ByteBuffer.allocateDirect( ((float[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asFloatBuffer().put( (float[])data );
- } else {
- throw new IllegalArgumentException( "Input data must be a primitive array or a ByteBuffer" );
- }
- return( Mipmap.gluBuild3DMipmapLevels( gl, target, internalFormat, width,
- height, depth, format, type, userLevel, baseLevel, maxLevel, buffer ) );
-}
-
-public int gluBuild3DMipmapsJava( int target, int internalFormat, int width,
- int height, int depth, int format, int type, Object data ) {
- ByteBuffer buffer = null;
- if( data instanceof ByteBuffer ) {
- buffer = (ByteBuffer)data;
- } else if( data instanceof byte[] ) {
- buffer = ByteBuffer.allocateDirect( ((byte[])data).length ).order( ByteOrder.nativeOrder() );
- buffer.put( (byte[])data );
- } else if( data instanceof short[] ) {
- buffer = ByteBuffer.allocateDirect( ((short[])data).length * 2 ).order( ByteOrder.nativeOrder() );
- buffer.asShortBuffer().put( (short[])data );
- } else if( data instanceof int[] ) {
- buffer = ByteBuffer.allocateDirect( ((int[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asIntBuffer().put( (int[])data );
- } else if( data instanceof float[] ) {
- buffer = ByteBuffer.allocateDirect( ((float[])data).length * 4 ).order( ByteOrder.nativeOrder() );
- buffer.asFloatBuffer().put( (float[])data );
- } else {
- throw new IllegalArgumentException( "Input data must be a primitive array or a ByteBuffer" );
- }
- return( Mipmap.gluBuild3DMipmaps( gl, target, internalFormat, width, height,
- depth, format, type, buffer ) );
-}
-
-
-//----------------------------------------------------------------------
-// Wrappers for mipmap and image scaling entry points which dispatch either
-// to the Java or C versions.
-//
-
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, byte[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapLevelsJava(target, internalFormat, width, format, type, level, base, max, data);
- } else {
- return gluBuild1DMipmapLevelsC(target, internalFormat, width, format, type, level, base, max, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, short[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapLevelsJava(target, internalFormat, width, format, type, level, base, max, data);
- } else {
- return gluBuild1DMipmapLevelsC(target, internalFormat, width, format, type, level, base, max, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, int[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapLevelsJava(target, internalFormat, width, format, type, level, base, max, data);
- } else {
- return gluBuild1DMipmapLevelsC(target, internalFormat, width, format, type, level, base, max, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, float[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapLevelsJava(target, internalFormat, width, format, type, level, base, max, data);
- } else {
- return gluBuild1DMipmapLevelsC(target, internalFormat, width, format, type, level, base, max, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.Buffer data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapLevelsJava(target, internalFormat, width, format, type, level, base, max, data);
- } else {
- return gluBuild1DMipmapLevelsC(target, internalFormat, width, format, type, level, base, max, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, byte[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapsJava(target, internalFormat, width, format, type, data);
- } else {
- return gluBuild1DMipmapsC(target, internalFormat, width, format, type, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, short[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapsJava(target, internalFormat, width, format, type, data);
- } else {
- return gluBuild1DMipmapsC(target, internalFormat, width, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, int[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapsJava(target, internalFormat, width, format, type, data);
- } else {
- return gluBuild1DMipmapsC(target, internalFormat, width, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, float[] data) {
- if (useJavaMipmapCode) {
- return gluBuild1DMipmapsJava(target, internalFormat, width, format, type, data);
- } else {
- return gluBuild1DMipmapsC(target, internalFormat, width, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, byte[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapLevelsJava(target, internalFormat, width, height, format, type, level, base, max, data);
- } else {
- return gluBuild2DMipmapLevelsC(target, internalFormat, width, height, format, type, level, base, max, data);
- }
-}
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, short[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapLevelsJava(target, internalFormat, width, height, format, type, level, base, max, data);
- } else {
- return gluBuild2DMipmapLevelsC(target, internalFormat, width, height, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, int[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapLevelsJava(target, internalFormat, width, height, format, type, level, base, max, data);
- } else {
- return gluBuild2DMipmapLevelsC(target, internalFormat, width, height, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, float[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapLevelsJava(target, internalFormat, width, height, format, type, level, base, max, data);
- } else {
- return gluBuild2DMipmapLevelsC(target, internalFormat, width, height, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.Buffer data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapLevelsJava(target, internalFormat, width, height, format, type, level, base, max, data);
- } else {
- return gluBuild2DMipmapLevelsC(target, internalFormat, width, height, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, byte[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapsJava(target, internalFormat, width, height, format, type, data);
- } else {
- return gluBuild2DMipmapsC(target, internalFormat, width, height, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, short[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapsJava(target, internalFormat, width, height, format, type, data);
- } else {
- return gluBuild2DMipmapsC(target, internalFormat, width, height, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, int[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapsJava(target, internalFormat, width, height, format, type, data);
- } else {
- return gluBuild2DMipmapsC(target, internalFormat, width, height, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, float[] data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapsJava(target, internalFormat, width, height, format, type, data);
- } else {
- return gluBuild2DMipmapsC(target, internalFormat, width, height, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, java.nio.Buffer data) {
- if (useJavaMipmapCode) {
- return gluBuild2DMipmapsJava(target, internalFormat, width, height, format, type, data);
- } else {
- return gluBuild2DMipmapsC(target, internalFormat, width, height, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, byte[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapLevelsJava(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- } else {
- return gluBuild3DMipmapLevelsC(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, short[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapLevelsJava(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- } else {
- return gluBuild3DMipmapLevelsC(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, int[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapLevelsJava(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- } else {
- return gluBuild3DMipmapLevelsC(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, float[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapLevelsJava(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- } else {
- return gluBuild3DMipmapLevelsC(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, java.nio.Buffer data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapLevelsJava(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- } else {
- return gluBuild3DMipmapLevelsC(target, internalFormat, width, height, depth, format, type, level, base, max, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapsJava(target, internalFormat, width, height, depth, format, type, data);
- } else {
- return gluBuild3DMipmapsC(target, internalFormat, width, height, depth, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapsJava(target, internalFormat, width, height, depth, format, type, data);
- } else {
- return gluBuild3DMipmapsC(target, internalFormat, width, height, depth, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapsJava(target, internalFormat, width, height, depth, format, type, data);
- } else {
- return gluBuild3DMipmapsC(target, internalFormat, width, height, depth, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapsJava(target, internalFormat, width, height, depth, format, type, data);
- } else {
- return gluBuild3DMipmapsC(target, internalFormat, width, height, depth, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.Buffer data) {
- if (useJavaMipmapCode) {
- return gluBuild3DMipmapsJava(target, internalFormat, width, height, depth, format, type, data);
- } else {
- return gluBuild3DMipmapsC(target, internalFormat, width, height, depth, format, type, data);
- }
-}
-
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, byte[] dataIn, int wOut, int hOut, int typeOut, byte[] dataOut) {
- if (useJavaMipmapCode) {
- return gluScaleImageJava(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- } else {
- return gluScaleImageC(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- }
-}
-
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, short[] dataIn, int wOut, int hOut, int typeOut, short[] dataOut) {
- if (useJavaMipmapCode) {
- return gluScaleImageJava(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- } else {
- return gluScaleImageC(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- }
-}
-
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, int[] dataIn, int wOut, int hOut, int typeOut, int[] dataOut) {
- if (useJavaMipmapCode) {
- return gluScaleImageJava(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- } else {
- return gluScaleImageC(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- }
-}
-
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, float[] dataIn, int wOut, int hOut, int typeOut, float[] dataOut) {
- if (useJavaMipmapCode) {
- return gluScaleImageJava(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- } else {
- return gluScaleImageC(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- }
-}
-
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, java.nio.Buffer dataIn, int wOut, int hOut, int typeOut, java.nio.Buffer dataOut) {
- if (useJavaMipmapCode) {
- return gluScaleImageJava(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- } else {
- return gluScaleImageC(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut);
- }
-}
-
-
-
-//----------------------------------------------------------------------
-// Wrappers for C entry points for mipmap and scaling functionality.
-// (These are only used as a fallback and will be removed in a future release)
-
- /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild1DMipmapLevelsC(int target, int internalFormat, int width, int format, int type, int level, int base, int max, byte[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmapLevels\" not available");
- }
- return dispatch_gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, byte[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild1DMipmapLevelsC(int target, int internalFormat, int width, int format, int type, int level, int base, int max, short[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmapLevels\" not available");
- }
- return dispatch_gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, short[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild1DMipmapLevelsC(int target, int internalFormat, int width, int format, int type, int level, int base, int max, int[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmapLevels\" not available");
- }
- return dispatch_gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, int[] data, long glProcAddress);
-
- /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild1DMipmapLevelsC(int target, int internalFormat, int width, int format, int type, int level, int base, int max, float[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmapLevels\" not available");
- }
- return dispatch_gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, float[] data, long glProcAddress);
-
- /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild1DMipmapLevelsC(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.Buffer data)
- {
- if (!BufferFactory.isDirect(data))
- throw new GLException("Argument \"data\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmapLevels\" not available");
- }
- return dispatch_gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- native private int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.Buffer data, long glProcAddress);
-
- /** Entry point to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild1DMipmapsC(int target, int internalFormat, int width, int format, int type, byte[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmaps\" not available");
- }
- return dispatch_gluBuild1DMipmaps(target, internalFormat, width, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, byte[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild1DMipmapsC(int target, int internalFormat, int width, int format, int type, short[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmaps\" not available");
- }
- return dispatch_gluBuild1DMipmaps(target, internalFormat, width, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, short[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild1DMipmapsC(int target, int internalFormat, int width, int format, int type, int[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmaps\" not available");
- }
- return dispatch_gluBuild1DMipmaps(target, internalFormat, width, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, int[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild1DMipmapsC(int target, int internalFormat, int width, int format, int type, float[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmaps\" not available");
- }
- return dispatch_gluBuild1DMipmaps(target, internalFormat, width, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, float[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild1DMipmapsC(int target, int internalFormat, int width, int format, int type, java.nio.Buffer data)
- {
- if (!BufferFactory.isDirect(data))
- throw new GLException("Argument \"data\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluBuild1DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild1DMipmaps\" not available");
- }
- return dispatch_gluBuild1DMipmaps(target, internalFormat, width, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
- native private int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, java.nio.Buffer data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild2DMipmapLevelsC(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, byte[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmapLevels\" not available");
- }
- return dispatch_gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, byte[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild2DMipmapLevelsC(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, short[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmapLevels\" not available");
- }
- return dispatch_gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, short[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild2DMipmapLevelsC(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, int[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmapLevels\" not available");
- }
- return dispatch_gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, int[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild2DMipmapLevelsC(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, float[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmapLevels\" not available");
- }
- return dispatch_gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, float[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild2DMipmapLevelsC(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.Buffer data)
- {
- if (!BufferFactory.isDirect(data))
- throw new GLException("Argument \"data\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmapLevels\" not available");
- }
- return dispatch_gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- native private int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.Buffer data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild2DMipmapsC(int target, int internalFormat, int width, int height, int format, int type, byte[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmaps\" not available");
- }
- return dispatch_gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, byte[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild2DMipmapsC(int target, int internalFormat, int width, int height, int format, int type, short[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmaps\" not available");
- }
- return dispatch_gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, short[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild2DMipmapsC(int target, int internalFormat, int width, int height, int format, int type, int[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmaps\" not available");
- }
- return dispatch_gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, int[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild2DMipmapsC(int target, int internalFormat, int width, int height, int format, int type, float[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmaps\" not available");
- }
- return dispatch_gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, float[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild2DMipmapsC(int target, int internalFormat, int width, int height, int format, int type, java.nio.Buffer data)
- {
- if (!BufferFactory.isDirect(data))
- throw new GLException("Argument \"data\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluBuild2DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild2DMipmaps\" not available");
- }
- return dispatch_gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
- native private int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, java.nio.Buffer data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild3DMipmapLevelsC(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, byte[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmapLevels\" not available");
- }
- return dispatch_gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, byte[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild3DMipmapLevelsC(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, short[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmapLevels\" not available");
- }
- return dispatch_gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, short[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild3DMipmapLevelsC(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, int[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmapLevels\" not available");
- }
- return dispatch_gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, int[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild3DMipmapLevelsC(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, float[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmapLevels\" not available");
- }
- return dispatch_gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- private native int dispatch_gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, float[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- public int gluBuild3DMipmapLevelsC(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, java.nio.Buffer data)
- {
- if (!BufferFactory.isDirect(data))
- throw new GLException("Argument \"data\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmapLevels;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmapLevels\" not available");
- }
- return dispatch_gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
- native private int dispatch_gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, java.nio.Buffer data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild3DMipmapsC(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmaps\" not available");
- }
- return dispatch_gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild3DMipmapsC(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmaps\" not available");
- }
- return dispatch_gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild3DMipmapsC(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmaps\" not available");
- }
- return dispatch_gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild3DMipmapsC(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmaps\" not available");
- }
- return dispatch_gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- private native int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- public int gluBuild3DMipmapsC(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.Buffer data)
- {
- if (!BufferFactory.isDirect(data))
- throw new GLException("Argument \"data\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluBuild3DMipmaps;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluBuild3DMipmaps\" not available");
- }
- return dispatch_gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
- native private int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.Buffer data, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- public int gluScaleImageC(int format, int wIn, int hIn, int typeIn, byte[] dataIn, int wOut, int hOut, int typeOut, byte[] dataOut)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluScaleImage;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluScaleImage\" not available");
- }
- return dispatch_gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- private native int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, byte[] dataIn, int wOut, int hOut, int typeOut, byte[] dataOut, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- public int gluScaleImageC(int format, int wIn, int hIn, int typeIn, short[] dataIn, int wOut, int hOut, int typeOut, short[] dataOut)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluScaleImage;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluScaleImage\" not available");
- }
- return dispatch_gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- private native int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, short[] dataIn, int wOut, int hOut, int typeOut, short[] dataOut, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- public int gluScaleImageC(int format, int wIn, int hIn, int typeIn, int[] dataIn, int wOut, int hOut, int typeOut, int[] dataOut)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluScaleImage;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluScaleImage\" not available");
- }
- return dispatch_gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- private native int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, int[] dataIn, int wOut, int hOut, int typeOut, int[] dataOut, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- public int gluScaleImageC(int format, int wIn, int hIn, int typeIn, float[] dataIn, int wOut, int hOut, int typeOut, float[] dataOut)
- {
- final long __addr_ = gluProcAddressTable._addressof_gluScaleImage;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluScaleImage\" not available");
- }
- return dispatch_gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- private native int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, float[] dataIn, int wOut, int hOut, int typeOut, float[] dataOut, long glProcAddress);
-
-
- /** Entry point to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- public int gluScaleImageC(int format, int wIn, int hIn, int typeIn, java.nio.Buffer dataIn, int wOut, int hOut, int typeOut, java.nio.Buffer dataOut)
- {
- if (!BufferFactory.isDirect(dataIn))
- throw new GLException("Argument \"dataIn\" was not a direct buffer");
- if (!BufferFactory.isDirect(dataOut))
- throw new GLException("Argument \"dataOut\" was not a direct buffer");
- final long __addr_ = gluProcAddressTable._addressof_gluScaleImage;
- if (__addr_ == 0) {
- throw new GLException("Method \"gluScaleImage\" not available");
- }
- return dispatch_gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut, __addr_);
- }
-
- /** Encapsulates function pointer for OpenGL function
: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
- native private int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, java.nio.Buffer dataIn, int wOut, int hOut, int typeOut, java.nio.Buffer dataOut, long glProcAddress);
-
-
-
diff --git a/make/glu-impl-common.cfg b/make/glu-impl-common.cfg
deleted file mode 100644
index 6710d0369..000000000
--- a/make/glu-impl-common.cfg
+++ /dev/null
@@ -1,22 +0,0 @@
-# This .cfg file contains common directives used when generating the
-# GLU implementation class on all platforms.
-
-Include glu-common.cfg
-
-Style ImplOnly
-
-EmitProcAddressTable true
-ProcAddressTableClassName GLUProcAddressTable
-GetProcAddressTableExpr gluProcAddressTable
-
-# GLUImpl needs access to the GLUtesselatorImpl class for GLUtesselator
-# and to the Mipmap class for scaling and mipmap generation
-Import net.java.games.jogl.impl.tesselator.GLUtesselatorImpl
-Import net.java.games.jogl.impl.mipmap.Mipmap
-Import java.security.*
-
-# Custom Java code for GLUImpl class
-IncludeAs CustomJavaCode GLUImpl glu-impl-common-CustomJavaCode.java
-
-# Custom C code for GLUImpl class
-IncludeAs CustomCCode glu-impl-common-CustomCCode.c
diff --git a/make/glu-impl-macosx.cfg b/make/glu-impl-macosx.cfg
deleted file mode 100644
index 21e9b3700..000000000
--- a/make/glu-impl-macosx.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-# This .cfg file is used to generate the GLU implementation on
-# Mac OS X.
-
-CustomCCode #include
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, boolean[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, byte[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, char[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, short[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, int[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, long[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, float[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, double[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.Buffer data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, boolean[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, byte[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, char[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, short[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, int[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, long[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, float[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, double[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.Buffer data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, boolean[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, byte[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, char[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, short[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, int[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, long[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, float[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, double[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, java.nio.Buffer data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, boolean[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, char[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, long[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, double[] data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.Buffer data) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
-
-CustomJavaCode GLUImpl /** Entry point to C language function:
GLboolean gluCheckExtension(const GLubyte *CustomJavaCode GLUImpl extName, const GLubyte *CustomJavaCode GLUImpl extString);
CustomJavaCode GLUImpl CustomJavaCode GLUImpl */
-CustomJavaCode GLUImpl public boolean gluCheckExtension(java.lang.String extName, java.lang.String extString) { throw new GLException("This GLU 1.3 function is not available on Win32 platforms because Microsoft Windows ships with a GLU 1.2 implementation"); }
diff --git a/make/glu-impl-win32.cfg b/make/glu-impl-win32.cfg
deleted file mode 100644
index 983513712..000000000
--- a/make/glu-impl-win32.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# This .cfg file is used to generate the GLU implementation on Windows.
-
-CustomCCode #define WIN32_LEAN_AND_MEAN
-CustomCCode #include
GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ);
*/
-public boolean gluProject(double objX, double objY, double objZ, double[] model, double[] proj, int[] view, double[] winX, double[] winY, double[] winZ);
-
-/**
- * Convenience routine for gluProject that accepts the outgoing window
- * coordinates as a single array.
- */
-public boolean gluProject(double objx,
- double objy,
- double objz,
- double[] modelMatrix,
- double[] projMatrix,
- int[] viewport,
- double[] winPos);
-
-/** Interface to C language function:
GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ);
*/
-public boolean gluUnProject(double winX, double winY, double winZ, double[] model, double[] proj, int[] view, double[] objX, double[] objY, double[] objZ);
-
-/**
- * Convenience routine for gluUnProject that accepts the outgoing
- * object coordinates (a 3-vector) as a single array.
- */
-public boolean gluUnProject(double winX, double winY, double winZ, double[] model, double[] proj, int[] view, double[] objPos);
-
-/** Interface to C language function:
GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble nearVal, GLdouble farVal, GLdouble * objX, GLdouble * objY, GLdouble * objZ, GLdouble * objW);
*/
-public boolean gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, double[] proj, int[] view, double nearVal, double farVal, double[] objX, double[] objY, double[] objZ, double[] objW);
-
-/**
- * Convenience routine for gluUnProject4 that accepts the outgoing
- * object coordinates (a 4-vector) as a single array.
- */
-public boolean gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, double[] proj, int[] view, double nearVal, double farVal, double[] objPos);
-
-
-
-//----------------------------------------------------------------------
-// Tesselation routines
-//
-
-/*****************************************************************************
- * gluBeginPolygon and {@link net.java.games.jogl.GLU#gluEndPolygon
- * gluEndPolygon} delimit the definition of a nonconvex polygon. To define
- * such a polygon, first call gluBeginPolygon. Then define the contours
- * of the polygon by calling {@link net.java.games.jogl.GLU#gluTessVertex
- * gluTessVertex} for each vertex and
- * {@link net.java.games.jogl.GLU#gluNextContour gluNextContour} to start each
- * new contour. Finally, call {@link net.java.games.jogl.GLU#gluEndPolygon
- * gluEndPolygon} to signal the end of the definition. See the
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex} and
- * {@link net.java.games.jogl.GLU#gluNextContour gluNextContour} reference
- * pages for more details.
- * An exterior contour defines an exterior boundary of the polygon.
- *
- * GLU_INTERIOR
- *
- * An interior contour defines an interior boundary of the polygon (such as
- * a hole).
- *
- * GLU_UNKNOWN
- *
- * An unknown contour is analyzed by the library to determine whether it is
- * interior or exterior.
- *
- * GLU_CCW, GLU_CW
- *
- * The first GLU_CCW or GLU_CW contour defined is considered
- * to be exterior. All other contours are considered to be exterior if they
- * are oriented in the same direction (clockwise or counterclockwise) as the
- * first contour, and interior if they are not. If one contour is of type
- * GLU_CCW or GLU_CW, then all contours must be of the same
- * type (if they are not, then all GLU_CCW and GLU_CW contours
- * will be changed to GLU_UNKNOWN). Note that there is no
- * real difference between the GLU_CCW and GLU_CW contour
- * types.
- *
- * Note: The gluNextContour function is obsolete and is
- * provided for backward compatibility only. The gluNextContour
- * function is mapped to {@link net.java.games.jogl.GLU#gluTessEndContour
- * gluTessEndContour} followed by
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour}.
- *
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- * @param type
- * The type of the contour being defined.
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessEndContour gluTessEndContour
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- ****************************************************************************/
-public void gluNextContour(GLUtesselator tesselator, int type);
-
-
-/*****************************************************************************
- * gluTessBeginContour and
- * {@link net.java.games.jogl.GLU#gluTessEndContour gluTessEndContour} delimit
- * the definition of a polygon contour. Within each
- * gluTessBeginContour/
- * {@link net.java.games.jogl.GLU#gluTessEndContour gluTessEndContour} pair,
- * there can be zero or more calls to
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex}. The vertices
- * specify a closed contour (the last vertex of each contour is automatically
- * linked to the first). See the {@link net.java.games.jogl.GLU#gluTessVertex
- * gluTessVertex} reference page for more details. gluTessBeginContour
- * can only be called between
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon} and
- * {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon}.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- * @see net.java.games.jogl.GLU#gluTessNormal gluTessNormal
- * @see net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon
- ****************************************************************************/
-public void gluTessBeginContour(GLUtesselator tesselator);
-
-
-/*****************************************************************************
- * gluTessBeginPolygon and
- * {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon} delimit
- * the definition of a convex, concave or self-intersecting polygon. Within
- * each gluTessBeginPolygon/
- * {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon} pair,
- * there must be one or more calls to
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour}/
- * {@link net.java.games.jogl.GLU#gluTessEndContour gluTessEndContour}. Within
- * each contour, there are zero or more calls to
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex}. The vertices
- * specify a closed contour (the last vertex of each contour is automatically
- * linked to the first). See the {@link net.java.games.jogl.GLU#gluTessVertex
- * gluTessVertex}, {@link net.java.games.jogl.GLU#gluTessBeginContour
- * gluTessBeginContour}, and {@link net.java.games.jogl.GLU#gluTessEndContour
- * gluTessEndContour} reference pages for more details.
- * The begin callback is invoked like {@link net.java.games.jogl.GL#glBegin
- * glBegin} to indicate the start of a (triangle) primitive. The method
- * takes a single argument of type int. If the
- * GLU_TESS_BOUNDARY_ONLY property is set to GL_FALSE, then
- * the argument is set to either GL_TRIANGLE_FAN,
- * GL_TRIANGLE_STRIP, or GL_TRIANGLES. If the
- * GLU_TESS_BOUNDARY_ONLY property is set to GL_TRUE, then the
- * argument will be set to GL_LINE_LOOP. The method prototype for
- * this callback is:
- *
- *
- *
- * void begin(int type);
- * The same as the GLU_TESS_BEGIN callback except
- * that it takes an additional reference argument. This reference is
- * identical to the opaque reference provided when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The method prototype for this callback is:
- *
- *
- *
- * void beginData(int type, Object polygonData);
- *
- * GLU_TESS_EDGE_FLAG
- *
- * The edge flag callback is similar to
- * {@link net.java.games.jogl.GL#glEdgeFlag glEdgeFlag}. The method takes
- * a single boolean boundaryEdge that indicates which edges lie on the
- * polygon boundary. If the boundaryEdge is GL_TRUE, then each vertex
- * that follows begins an edge that lies on the polygon boundary, that is,
- * an edge that separates an interior region from an exterior one. If the
- * boundaryEdge is GL_FALSE, then each vertex that follows begins an
- * edge that lies in the polygon interior. The edge flag callback (if
- * defined) is invoked before the first vertex callback.
- *
- *
- * void edgeFlag(boolean boundaryEdge);
- *
- * GLU_TESS_EDGE_FLAG_DATA
- *
- * The same as the GLU_TESS_EDGE_FLAG callback except that it takes
- * an additional reference argument. This reference is identical to the
- * opaque reference provided when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The method prototype for this callback is:
- *
- *
- *
- * void edgeFlagData(boolean boundaryEdge, Object polygonData);
- *
- * GLU_TESS_VERTEX
- *
- * The vertex callback is invoked between the begin and end callbacks. It is
- * similar to {@link net.java.games.jogl.GL#glVertex3f glVertex3f}, and it
- * defines the vertices of the triangles created by the tessellation
- * process. The method takes a reference as its only argument. This
- * reference is identical to the opaque reference provided by the user when
- * the vertex was described (see
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex}). The method
- * prototype for this callback is:
- *
- *
- *
- * void vertex(Object vertexData);
- *
- * GLU_TESS_VERTEX_DATA
- *
- * The same as the GLU_TESS_VERTEX callback except that it takes an
- * additional reference argument. This reference is identical to the opaque
- * reference provided when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The method prototype for this callback is:
- *
- *
- *
- * void vertexData(Object vertexData, Object polygonData);
- *
- * GLU_TESS_END
- *
- * The end callback serves the same purpose as
- * {@link net.java.games.jogl.GL#glEnd glEnd}. It indicates the end of a
- * primitive and it takes no arguments. The method prototype for this
- * callback is:
- *
- *
- *
- * void end();
- *
- * GLU_TESS_END_DATA
- *
- * The same as the GLU_TESS_END callback except that it takes an
- * additional reference argument. This reference is identical to the opaque
- * reference provided when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The method prototype for this callback is:
- *
- *
- *
- * void endData(Object polygonData);
- *
- * GLU_TESS_COMBINE
- *
- * The combine callback is called to create a new vertex when the
- * tessellation detects an intersection, or wishes to merge features. The
- * method takes four arguments: an array of three elements each of type
- * double, an array of four references, an array of four elements each of
- * type float, and a reference to a reference. The prototype is:
- *
- *
- *
- * void combine(double[] coords, Object[] data,
- * float[] weight, Object[] outData);
- *
- *
- * The vertex is defined as a linear combination of up to four existing
- * vertices, stored in data. The coefficients of the linear
- * combination are given by weight; these weights always add up to 1.
- * All vertex pointers are valid even when some of the weights are 0.
- * coords gives the location of the new vertex.
- *
- * void myCombine(double[] coords, Object[] data,
- * float[] weight, Object[] outData)
- * {
- * MyVertex newVertex = new MyVertex();
- *
- * newVertex.x = coords[0];
- * newVertex.y = coords[1];
- * newVertex.z = coords[2];
- * newVertex.r = weight[0]*data[0].r +
- * weight[1]*data[1].r +
- * weight[2]*data[2].r +
- * weight[3]*data[3].r;
- * newVertex.g = weight[0]*data[0].g +
- * weight[1]*data[1].g +
- * weight[2]*data[2].g +
- * weight[3]*data[3].g;
- * newVertex.b = weight[0]*data[0].b +
- * weight[1]*data[1].b +
- * weight[2]*data[2].b +
- * weight[3]*data[3].b;
- * newVertex.a = weight[0]*data[0].a +
- * weight[1]*data[1].a +
- * weight[2]*data[2].a +
- * weight[3]*data[3].a;
- * outData = newVertex;
- * }
- *
- *
- * If the tessellation detects an intersection, then the
- * GLU_TESS_COMBINE or GLU_TESS_COMBINE_DATA callback (see
- * below) must be defined, and it must write a non-null reference into
- * outData. Otherwise the GLU_TESS_NEED_COMBINE_CALLBACK error
- * occurs, and no output is generated.
- *
- *
- * GLU_TESS_COMBINE_DATA
- *
- * The same as the GLU_TESS_COMBINE callback except that it takes an
- * additional reference argument. This reference is identical to the opaque
- * reference provided when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The method prototype for this callback is:
- *
- *
- *
- * void combineData(double[] coords, Object[] data,
- float[] weight, Object[] outData,
- Object polygonData);
- *
- * GLU_TESS_ERROR
- *
- * The error callback is called when an error is encountered. The one
- * argument is of type int; it indicates the specific error that occurred
- * and will be set to one of GLU_TESS_MISSING_BEGIN_POLYGON,
- * GLU_TESS_MISSING_END_POLYGON,
- * GLU_TESS_MISSING_BEGIN_CONTOUR,
- * GLU_TESS_MISSING_END_CONTOUR, GLU_TESS_COORD_TOO_LARGE,
- * GLU_TESS_NEED_COMBINE_CALLBACK or GLU_OUT_OF_MEMORY.
- * Character strings describing these errors can be retrieved with the
- * {@link net.java.games.jogl.GLU#gluErrorString gluErrorString} call. The
- * method prototype for this callback is:
- *
- *
- *
- * void error(int errnum);
- *
- *
- * The GLU library will recover from the first four errors by inserting the
- * missing call(s). GLU_TESS_COORD_TOO_LARGE indicates that some
- * vertex coordinate exceeded the predefined constant
- * GLU_TESS_MAX_COORD in absolute value, and that the value has been
- * clamped. (Coordinate values must be small enough so that two can be
- * multiplied together without overflow.)
- * GLU_TESS_NEED_COMBINE_CALLBACK indicates that the tessellation
- * detected an intersection between two edges in the input data, and the
- * GLU_TESS_COMBINE or GLU_TESS_COMBINE_DATA callback was not
- * provided. No output is generated. GLU_OUT_OF_MEMORY indicates that
- * there is not enough memory so no output is generated.
- *
- *
- * GLU_TESS_ERROR_DATA
- *
- * The same as the GLU_TESS_ERROR callback except that it takes an
- * additional reference argument. This reference is identical to the opaque
- * reference provided when
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * was called. The method prototype for this callback is:
- *
- *
- *
- * void errorData(int errnum, Object polygonData);
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- * @param which
- * Specifies the callback being defined. The following values are
- * valid: GLU_TESS_BEGIN, GLU_TESS_BEGIN_DATA,
- * GLU_TESS_EDGE_FLAG, GLU_TESS_EDGE_FLAG_DATA,
- * GLU_TESS_VERTEX, GLU_TESS_VERTEX_DATA,
- * GLU_TESS_END, GLU_TESS_END_DATA,
- * GLU_TESS_COMBINE, GLU_TESS_COMBINE_DATA,
- * GLU_TESS_ERROR, and GLU_TESS_ERROR_DATA.
- * @param aCallback
- * Specifies the callback object to be called.
- *
- * @see net.java.games.jogl.GL#glBegin glBegin
- * @see net.java.games.jogl.GL#glEdgeFlag glEdgeFlag
- * @see net.java.games.jogl.GL#glVertex3f glVertex3f
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluErrorString gluErrorString
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- * @see net.java.games.jogl.GLU#gluTessNormal gluTessNormal
- ****************************************************************************/
-public void gluTessCallback(GLUtesselator tesselator, int which,
- GLUtesselatorCallback aCallback);
-
-
-/*****************************************************************************
- * gluTessEndContour and
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour}
- * delimit the definition of a polygon contour. Within each
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour}/
- * gluTessEndContour pair, there can be zero or more calls to
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex}. The vertices
- * specify a closed contour (the last vertex of each contour is automatically
- * linked to the first). See the {@link net.java.games.jogl.GLU#gluTessVertex
- * gluTessVertex} reference page for more details.
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour} can
- * only be called between {@link net.java.games.jogl.GLU#gluTessBeginPolygon
- * gluTessBeginPolygon} and
- * {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon}.
- *
- * @param tesselator
- * Specifies the tessellation object (created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}).
- *
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- * @see net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon
- * @see net.java.games.jogl.GLU#gluTessVertex gluTessVertex
- * @see net.java.games.jogl.GLU#gluTessCallback gluTessCallback
- * @see net.java.games.jogl.GLU#gluTessProperty gluTessProperty
- * @see net.java.games.jogl.GLU#gluTessNormal gluTessNormal
- * @see net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon
- ****************************************************************************/
-public void gluTessEndContour(GLUtesselator tesselator);
-
-
-/*****************************************************************************
- * gluTessEndPolygon and
- * {@link net.java.games.jogl.GLU#gluTessBeginPolygon gluTessBeginPolygon}
- * delimit the definition of a convex, concave or self-intersecting polygon.
- * Within each {@link net.java.games.jogl.GLU#gluTessBeginPolygon
- * gluTessBeginPolygon}/gluTessEndPolygon pair, there must be one or
- * more calls to {@link net.java.games.jogl.GLU#gluTessBeginContour
- * gluTessBeginContour}/{@link net.java.games.jogl.GLU#gluTessEndContour
- * gluTessEndContour}. Within each contour, there are zero or more calls to
- * {@link net.java.games.jogl.GLU#gluTessVertex gluTessVertex}. The vertices
- * specify a closed contour (the last vertex of each contour is automatically
- * linked to the first). See the {@link net.java.games.jogl.GLU#gluTessVertex
- * gluTessVertex}, {@link net.java.games.jogl.GLU#gluTessBeginContour
- * gluTessBeginContour} and {@link net.java.games.jogl.GLU#gluTessEndContour
- * gluTessEndContour} reference pages for more details.
- * Determines which parts of the polygon are on the "interior".
- * value may be set to one of
- *
- *
GLU_TESS_WINDING_ODD,
- *
GLU_TESS_WINDING_NONZERO,
- *
GLU_TESS_WINDING_POSITIVE, or
- *
GLU_TESS_WINDING_NEGATIVE, or
- *
GLU_TESS_WINDING_ABS_GEQ_TWO.
GLU_TESS_BOUNDARY_ONLY
- *
- * Is a boolean value ("value" should be set to GL_TRUE or GL_FALSE). When
- * set to GL_TRUE, a set of closed contours separating the polygon interior
- * and exterior are returned instead of a tessellation. Exterior contours
- * are oriented CCW with respect to the normal; interior contours are
- * oriented CW. The GLU_TESS_BEGIN and GLU_TESS_BEGIN_DATA
- * callbacks use the type GL_LINE_LOOP for each contour.
- *
- *
GLU_TESS_TOLERANCE
- *
- * Specifies a tolerance for merging features to reduce the size of the
- * output. For example, two vertices that are very close to each other
- * might be replaced by a single vertex. The tolerance is multiplied by the
- * largest coordinate magnitude of any input vertex; this specifies the
- * maximum distance that any feature can move as the result of a single
- * merge operation. If a single feature takes part in several merge
- * operations, the toal distance moved could be larger.
- *
- * @param tesselator
- * Specifies the tessellation object created with
- * {@link net.java.games.jogl.GLU#gluNewTess gluNewTess}
- * @param which
- * Specifies the property to be set. Valid values are
- * GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARDY_ONLY,
- * GLU_TESS_TOLERANCE.
- * @param value
- * Specifices the value of the indicated property.
- *
- * @see net.java.games.jogl.GLU#gluGetTessProperty gluGetTessProperty
- * @see net.java.games.jogl.GLU#gluNewTess gluNewTess
- ****************************************************************************/
-public void gluTessProperty(GLUtesselator tesselator, int which, double value);
-
-
-/*****************************************************************************
- * gluTessVertex describes a vertex on a polygon that the program
- * defines. Successive gluTessVertex calls describe a closed contour.
- * For example, to describe a quadrilateral gluTessVertex should be
- * called four times. gluTessVertex can only be called between
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour} and
- * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessEndContour}.
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, byte[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, short[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, int[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, float[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.Buffer data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, byte[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, short[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, int[] data);
-
-/** Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, float[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, byte[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, short[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, int[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, float[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.Buffer data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, byte[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, short[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, int[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, float[] data);
-
-/** Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, java.nio.Buffer data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, byte[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, short[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, int[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, float[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
*/
-public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, java.nio.Buffer data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data);
-
-/** Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
*/
-public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.Buffer data);
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, byte[] dataIn, int wOut, int hOut, int typeOut, byte[] dataOut);
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, short[] dataIn, int wOut, int hOut, int typeOut, short[] dataOut);
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, int[] dataIn, int wOut, int hOut, int typeOut, int[] dataOut);
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, float[] dataIn, int wOut, int hOut, int typeOut, float[] dataOut);
-
-/** Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
*/
-public int gluScaleImage(int format, int wIn, int hIn, int typeIn, java.nio.Buffer dataIn, int wOut, int hOut, int typeOut, java.nio.Buffer dataOut);
-
-
-//----------------------------------------------------------------------
-// Function availability routines
-//
-
-
-/**
- * Returns true if the specified GLU core- or extension-function can be
- * successfully used through this GLU instance. By "successfully" we mean
- * that the function is both callable on the machine running the
- * program and available on the current display.
- *
- *
- * Whether or not a GLU function is available is determined as follows:
- * gluGetString(GLU_VERSION)
is used to determine the
- * version number of the underlying GLU implementation on the host.
- * then the function name is cross-referenced with that specification to
- * see if it is part of that version's specification.
- *
- * gluGetString(GLU_EXTENSIONS)
to see if the function is one of
- * the extensions that is supported by the underlying GLU implementation.
- *
- *
- *
- * NOTE:The availability of a function may change at runtime in
- * response to changes in the display environment. For example, when a window
- * is dragged from one display to another on a multi-display system, or when
- * the properties of the display device are modified (e.g., changing the color
- * depth of the display). Any application that is concerned with handling
- * these situations correctly should confirm availability after a display
- * change before calling a questionable OpenGL function. To detect a change in
- * the display device, please see {@link
- * GLEventListener#displayChanged(GLDrawable,boolean,boolean)}.
- *
- * @param gluFunctionName the name of the OpenGL function (e.g., use
- * "gluNurbsCallbackDataEXT" to check if the
- *
- * Finally, glGetString(GL_VERSION)
is used to determine the
- * highest OpenGL version that both host and display support, and from that it
- * is possible to determine if the GL facilities required by the GLU function
- * are available on the display.
- *
- * gluGetString(GLU_EXTENSIONS)
to see if the function is one of
- * the extensions that is supported by the underlying GLU implementation.
- *
- * gluNurbsCallbackDataEXT(GLUnurbs, GLvoid)
extension is available).
- */
-public boolean isFunctionAvailable(String gluFunctionName);
diff --git a/make/glu-macosx.cfg b/make/glu-macosx.cfg
new file mode 100755
index 000000000..ef106a3eb
--- /dev/null
+++ b/make/glu-macosx.cfg
@@ -0,0 +1,9 @@
+# This .cfg file is used to generate the GLU implementation on
+# Mac OS X.
+
+CustomCCode #include