diff options
Diffstat (limited to 'make')
55 files changed, 3030 insertions, 4370 deletions
diff --git a/make/142-packages/package-list b/make/142-packages/package-list new file mode 100755 index 000000000..fecd4d4ff --- /dev/null +++ b/make/142-packages/package-list @@ -0,0 +1,135 @@ +java.applet +java.awt +java.awt.color +java.awt.datatransfer +java.awt.dnd +java.awt.event +java.awt.font +java.awt.geom +java.awt.im +java.awt.im.spi +java.awt.image +java.awt.image.renderable +java.awt.print +java.beans +java.beans.beancontext +java.io +java.lang +java.lang.ref +java.lang.reflect +java.math +java.net +java.nio +java.nio.channels +java.nio.channels.spi +java.nio.charset +java.nio.charset.spi +java.rmi +java.rmi.activation +java.rmi.dgc +java.rmi.registry +java.rmi.server +java.security +java.security.acl +java.security.cert +java.security.interfaces +java.security.spec +java.sql +java.text +java.util +java.util.jar +java.util.logging +java.util.prefs +java.util.regex +java.util.zip +javax.accessibility +javax.crypto +javax.crypto.interfaces +javax.crypto.spec +javax.imageio +javax.imageio.event +javax.imageio.metadata +javax.imageio.plugins.jpeg +javax.imageio.spi +javax.imageio.stream +javax.naming +javax.naming.directory +javax.naming.event +javax.naming.ldap +javax.naming.spi +javax.net +javax.net.ssl +javax.print +javax.print.attribute +javax.print.attribute.standard +javax.print.event +javax.rmi +javax.rmi.CORBA +javax.security.auth +javax.security.auth.callback +javax.security.auth.kerberos +javax.security.auth.login +javax.security.auth.spi +javax.security.auth.x500 +javax.security.cert +javax.sound.midi +javax.sound.midi.spi +javax.sound.sampled +javax.sound.sampled.spi +javax.sql +javax.swing +javax.swing.border +javax.swing.colorchooser +javax.swing.event +javax.swing.filechooser +javax.swing.plaf +javax.swing.plaf.basic +javax.swing.plaf.metal +javax.swing.plaf.multi +javax.swing.table +javax.swing.text +javax.swing.text.html +javax.swing.text.html.parser +javax.swing.text.rtf +javax.swing.tree +javax.swing.undo +javax.transaction +javax.transaction.xa +javax.xml.parsers +javax.xml.transform +javax.xml.transform.dom +javax.xml.transform.sax +javax.xml.transform.stream +org.ietf.jgss +org.omg.CORBA +org.omg.CORBA.DynAnyPackage +org.omg.CORBA.ORBPackage +org.omg.CORBA.TypeCodePackage +org.omg.CORBA.portable +org.omg.CORBA_2_3 +org.omg.CORBA_2_3.portable +org.omg.CosNaming +org.omg.CosNaming.NamingContextExtPackage +org.omg.CosNaming.NamingContextPackage +org.omg.Dynamic +org.omg.DynamicAny +org.omg.DynamicAny.DynAnyFactoryPackage +org.omg.DynamicAny.DynAnyPackage +org.omg.IOP +org.omg.IOP.CodecFactoryPackage +org.omg.IOP.CodecPackage +org.omg.Messaging +org.omg.PortableInterceptor +org.omg.PortableInterceptor.ORBInitInfoPackage +org.omg.PortableServer +org.omg.PortableServer.CurrentPackage +org.omg.PortableServer.POAManagerPackage +org.omg.PortableServer.POAPackage +org.omg.PortableServer.ServantLocatorPackage +org.omg.PortableServer.portable +org.omg.SendingContext +org.omg.stub.java.rmi +org.w3c.dom +org.xml.sax +org.xml.sax.ext +org.xml.sax.helpers diff --git a/make/build-gluegen.xml b/make/build-gluegen.xml index b9e522d3c..fb21071ef 100644 --- a/make/build-gluegen.xml +++ b/make/build-gluegen.xml @@ -27,12 +27,12 @@ </path> <!-- The location of the GlueGen source and the C grammar files. --> - <property name="gluegen" value="${src}/net/java/games/gluegen" /> + <property name="gluegen" value="${src.java}/com/sun/gluegen" /> <property name="c.grammar" value="${gluegen}/cgram" /> <!-- The resulting location of the generated Java files from the - C grammar via ANTLR. --> - <property name="gluegen.build" value="${src.generated.java}/net/java/games/gluegen" /> + <property name="gluegen.build" value="${src.generated.java}/com/sun/gluegen" /> <property name="generated.java.from.grammar" value="${gluegen.build}/cgram" /> </target> @@ -89,7 +89,7 @@ - a separate task. --> <javac destdir="${classes}" includes="**/gluegen/**" excludes="**/GlueGenTask.java" source="1.4" debug="true" debuglevel="source,lines"> - <src path="${src}" /> + <src path="${src.java}" /> <src path="${src.generated.java}" /> <classpath refid="antlr.classpath" /> </javac> @@ -141,7 +141,7 @@ - NOTE: ONLY the GlueGenTask is built at this time. GlueGen - itself is built in a separate task. --> <javac destdir="${classes}" includes="**/GlueGenTask.java" source="1.4" debug="true" debuglevel="source,lines"> - <src path="${src}" /> + <src path="${src.java}" /> <classpath refid="antlr.classpath" /> </javac> diff --git a/make/build-staticglgen.xml b/make/build-staticglgen.xml index 0f72bcfa7..9ef1147a3 100644 --- a/make/build-staticglgen.xml +++ b/make/build-staticglgen.xml @@ -17,7 +17,7 @@ --> <target name="declare" description="Declare properties"> <!-- The location of the BuildStaticGLInfo source. --> - <property name="static.gl.src" value="${src}/net/java/games/gluegen/opengl" /> + <property name="static.gl.src" value="${src.java}/com/sun/gluegen/opengl" /> </target> <!-- ================================================================== --> @@ -29,7 +29,7 @@ <mkdir dir="${classes}" /> <!-- Compile BuildStaticGLInfo --> - <javac srcdir="${src}" destdir="${classes}" includes="**/BuildStaticGLInfo.java" source="1.4" debug="true" debuglevel="source,lines"> + <javac srcdir="${src.java}" destdir="${classes}" includes="**/BuildStaticGLInfo.java" source="1.4" debug="true" debuglevel="source,lines"> <classpath refid="antlr.classpath" /> </javac> @@ -50,7 +50,7 @@ - NOTE: ONLY the StaticGLGen is built at this time. BuildStaticGLInfo - itself is built in a separate task. --> <javac destdir="${classes}" includes="**/StaticGLGenTask.java" source="1.4" debug="true" debuglevel="source,lines"> - <src path="${src}" /> + <src path="${src.java}" /> <classpath refid="classpath" /> </javac> diff --git a/make/build.xml b/make/build.xml index ef72433f5..e9ad12c93 100644 --- a/make/build.xml +++ b/make/build.xml @@ -124,8 +124,8 @@ Some of these are used in FileMappers later for dependence information and need exact string matching, which is why they use file.separator instead of "/". --> - <property name="rootrel.src" value="src" /> - <property name="rootrel.src.c.jogl" value="${rootrel.src}${sep}native${sep}jogl" /> + <property name="rootrel.src.java" value="src${sep}classes" /> + <property name="rootrel.src.c.jogl" value="src${sep}native${sep}jogl" /> <property name="rootrel.build" value="build" /> <property name="rootrel.src.generated" value="${rootrel.build}${sep}gensrc" /> <property name="rootrel.generated.java" value="${rootrel.src.generated}${sep}classes" /> @@ -136,19 +136,19 @@ <property name="rootrel.obj.cg" value="${rootrel.obj}${sep}jogl_cg" /> <!-- The source directories. --> - <property name="src" value="${project.root}/${rootrel.src}" /> - <property name="src.c" value="${project.root}/${rootrel.src.c}" /> - <property name="build" value="${project.root}/${rootrel.build}" /> + <property name="src.java" value="${project.root}/${rootrel.src.java}" /> + <property name="src.c" value="${project.root}/${rootrel.src.c}" /> + <property name="build" value="${project.root}/${rootrel.build}" /> <!-- The generated source directories. --> <property name="src.generated" value="${build}/gensrc" /> <property name="src.generated.java" value="${src.generated}/classes" /> - <property name="src.generated.java.cg" value="${src.generated}/classes/net/java/games/cg" /> + <property name="src.generated.java.cg" value="${src.generated}/classes/com/sun/opengl/cg" /> <property name="src.generated.c" value="${src.generated}/native/jogl" /> <property name="src.generated.c.cg" value="${src.generated}/native/jogl_cg" /> <!-- The composable pipeline source files --> <property name="src.generated.java.pipeline" - value="net/java/games/jogl/DebugGL.java,net/java/games/jogl/TraceGL.java" /> + value="javax/media/opengl/DebugGL.java,javax/media/opengl/TraceGL.java" /> <!-- The compiler output directories. --> <property name="classes" value="${build}/classes" /> @@ -215,10 +215,10 @@ <property name="java.lib.dir.macosx" value="/System/Library/Frameworks/JavaVM.framework/Libraries" /> <property name="gl.headers" value="${stub.includes.dir}/opengl/**/*.h" /> <!-- NOTE: this MUST be relative for FileSet --> <!-- CHECK: this may need to be pruned for each platform --> - <!-- Java files to exclude based on platform (relative to "src") --> - <property name="java.excludes.win32" value="net/java/games/jogl/impl/x11/**, net/java/games/jogl/impl/macosx/**" /> - <property name="java.excludes.x11" value="net/java/games/jogl/impl/windows/**, net/java/games/jogl/impl/macosx/**" /> - <property name="java.excludes.macosx" value="net/java/games/jogl/impl/x11/**, net/java/games/jogl/impl/windows/**" /> + <!-- Java files to exclude based on platform (relative to "src.java") --> + <property name="java.excludes.win32" value="com/sun/opengl/impl/x11/**, com/sun/opengl/impl/macosx/**" /> + <property name="java.excludes.x11" value="com/sun/opengl/impl/windows/**, com/sun/opengl/impl/macosx/**" /> + <property name="java.excludes.macosx" value="com/sun/opengl/impl/x11/**, com/sun/opengl/impl/windows/**" /> <!-- Create the classpath for that includes ANTLR and any already - compiled classes. This requires the user-defined "antlr.jar" @@ -236,11 +236,12 @@ <property name="javadoc" value="${project.root}/javadoc_public" /> <property name="javadoc.dev" value="${project.root}/javadoc_jogl_dev" /> <property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" /> - <property name="javadoc.packagenames" value="net.java.games.jogl,net.java.games.gluegen.runtime,net.java.games.jogl.util" /> - <property name="javadoc.dev.packagenames.win32" value="net.java.games.jogl.impl.windows" /> - <property name="javadoc.dev.packagenames.x11" value="net.java.games.jogl.impl.x11" /> - <property name="javadoc.dev.packagenames.macosx" value="net.java.games.jogl.impl.macosx" /> - <property name="javadoc.dev.packagenames" value="net.java.games.jogl,net.java.games.jogl.impl,net.java.games.jogl.util,net.java.games.gluegen" /> + <property name="javadoc.windowtitle" value="JOGL API -- JSR-231 Early Draft Review Specification" /> + <property name="javadoc.packagenames" value="javax.media.opengl,javax.media.opengl.glu,com.sun.opengl.utils" /> + <property name="javadoc.dev.packagenames.win32" value="com.sun.opengl.impl.windows" /> + <property name="javadoc.dev.packagenames.x11" value="com.sun.opengl.impl.x11" /> + <property name="javadoc.dev.packagenames.macosx" value="com.sun.opengl.impl.macosx" /> + <property name="javadoc.dev.packagenames" value="javax.media.opengl,javax.media.opengl.glu,com.sun.opengl.impl,com.sun.opengl.utils,com.sun.gluegen,com.sun.gluegen.runtime" /> </target> @@ -251,18 +252,20 @@ <target name="declare.win32" depends="init"> <!-- Set platform configuration files. --> <property name="gl.cfg" value="${config}/gl-win32.cfg" /> - <property name="gl.impl.cfg" value="${config}/gl-impl-win32.cfg" /> - <property name="glu.cfg" value="${config}/glu.cfg" /> - <property name="glu.impl.cfg" value="${config}/glu-impl-win32.cfg" /> + <property name="glext.platform.cfg" value="${config}/wglext.cfg" /> + <property name="glu.cfg" value="${config}/glu-win32.cfg" /> <property name="jawt.cfg" value="${config}/jawt-win32.cfg" /> <property name="window.cfg" value="${config}/wingdi-win32.cfg" /> + <!-- Set platform headers. --> + <property name="glext.platform.header" value="${stub.includes.dir}/win32/wglext.c" /> + <!-- Set platform directories. --> <property name="stub.includes.platform" value="${stub.includes}/win32" /> <property name="java.includes.dir.platform" value="${java.includes.dir.win32}" /> <property name="java.lib.dir.platform" value="${java.lib.dir.win32}" /> <property name="java.excludes.platform" value="${java.excludes.win32}" /> - <property name="stub.includes.fileset.platform.params" value="${stub.includes.dir}/win32/** ${stub.includes.dir}/common/**" /> + <property name="stub.includes.fileset.platform.params" value="${stub.includes.dir}/win32/** ${stub.includes.dir}/common/** ${stub.includes.dir}/opengl/**" /> <!-- Set Javadoc properties. --> <property name="javadoc.dev.packagenames.platform" value="${javadoc.dev.packagenames.win32}" /> @@ -292,12 +295,14 @@ <target name="declare.x11" depends="init"> <!-- Set platform configuration files. --> <property name="gl.cfg" value="${config}/gl-x11.cfg" /> - <property name="gl.impl.cfg" value="${config}/gl-impl-x11.cfg" /> - <property name="glu.cfg" value="${config}/glu.cfg" /> - <property name="glu.impl.cfg" value="${config}/glu-impl-x11.cfg" /> + <property name="glext.platform.cfg" value="${config}/glxext.cfg" /> + <property name="glu.cfg" value="${config}/glu-x11.cfg" /> <property name="jawt.cfg" value="${config}/jawt-x11.cfg" /> <property name="window.cfg" value="${config}/glx-x11.cfg" /> + <!-- Set platform headers. --> + <property name="glext.platform.header" value="${stub.includes.dir}/x11/glxext.c" /> + <!-- Set platform directories. --> <property name="stub.includes.platform" value="${stub.includes.x11}" /> <property name="java.excludes.platform" value="${java.excludes.x11}" /> @@ -353,18 +358,20 @@ <target name="declare.macosx" depends="init"> <!-- Set platform configuration files. --> <property name="gl.cfg" value="${config}/gl-macosx.cfg" /> - <property name="gl.impl.cfg" value="${config}/gl-impl-macosx.cfg" /> - <property name="glu.cfg" value="${config}/glu.cfg" /> - <property name="glu.impl.cfg" value="${config}/glu-impl-macosx.cfg" /> + <property name="glext.platform.cfg" value="${config}/cglext.cfg" /> + <property name="glu.cfg" value="${config}/glu-macosx.cfg" /> <property name="jawt.cfg" value="${config}/jawt-macosx.cfg" /> <property name="window.cfg" value="${config}/cgl-macosx.cfg" /> + <!-- Set platform headers. --> + <property name="glext.platform.header" value="${stub.includes.dir}/macosx/cglext.c" /> + <!-- Set platform directories. --> <property name="stub.includes.platform" value="${stub.includes}/macosx" /> <property name="java.includes.dir.platform" value="${java.includes.dir.macosx}" /> <property name="java.lib.dir.platform" value="${java.lib.dir.macosx}" /> <property name="java.excludes.platform" value="${java.excludes.macosx}" /> - <property name="stub.includes.fileset.platform.params" value="${stub.includes.dir}/macosx/** ${stub.includes.dir}/common/**" /> + <property name="stub.includes.fileset.platform.params" value="${stub.includes.dir}/macosx/** ${stub.includes.dir}/common/** ${stub.includes.dir}/opengl/**" /> <!-- Set Javadoc properties. --> <property name="javadoc.dev.packagenames.platform" value="${javadoc.dev.packagenames.macosx}" /> @@ -424,7 +431,7 @@ <dependset> <srcfileset refid="stub.includes.dependencies.fileset" /> <srcfileset dir="."> - <include name="${classes}/net/java/games/gluegen/**/*.class" /> + <include name="${classes}/com/sun/gluegen/**/*.class" /> </srcfileset> <targetfileset dir="."> <include name="${src.generated.java}/**/*.java" /> @@ -435,7 +442,7 @@ <!-- Now check for the presence of one well-known file --> <uptodate property="java.generate.skip"> <srcfiles refid="stub.includes.dependencies.fileset" /> - <mapper type="merge" to="${src.generated.java}/net/java/games/jogl/GL.java" /> + <mapper type="merge" to="${src.generated.java}/javax/media/opengl/GL.java" /> </uptodate> </target> @@ -455,56 +462,29 @@ </path> <!-- Add the GlueGen and BuildStaticGLInfo tasks to ANT --> - <taskdef name="gluegen" classname="net.java.games.gluegen.ant.GlueGenTask" + <taskdef name="gluegen" classname="com.sun.gluegen.ant.GlueGenTask" classpathref="gen.classpath" /> - <taskdef name="staticglgen" classname="net.java.games.gluegen.ant.StaticGLGenTask" + <taskdef name="staticglgen" classname="com.sun.gluegen.ant.StaticGLGenTask" classpathref="gen.classpath" /> <!-- Use the GlueGen and BuildStaticGLInfo tasks to generate the - Java files --> - <!-- Generate GL interface class --> - <echo message="Generating GL interface class" /> + <!-- Generate GL interface and implementation --> + <echo message="Generating GL interface and implementation" /> <gluegen src="${stub.includes.common}/gl.c" config="${gl.cfg}" includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> - <classpath refid="gen.classpath" /> - </gluegen> - - <!-- Generate GL implementation class --> - <echo message="Generating GL implementation class" /> - <gluegen src="${stub.includes.common}/gl-impl.c" - config="${gl.impl.cfg}" - includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> + emitter="com.sun.gluegen.opengl.GLEmitter"> <classpath refid="gen.classpath" /> </gluegen> - <!-- Generate WGL interface class --> - <echo message="Generating WGL interface class" /> - <gluegen src="${stub.includes.common}/gl-impl.c" - config="${config}/gl-wgl-win32.cfg" + <!-- Generate platform-specific extension class (WGLExt, GLXExt, etc.) --> + <echo message="Generating platform-specific OpenGL extension class" /> + <gluegen src="${glext.platform.header}" + config="${glext.platform.cfg}" includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> - <classpath refid="gen.classpath" /> - </gluegen> - - <!-- Generate GLX interface class --> - <echo message="Generating GLX interface class" /> - <gluegen src="${stub.includes.common}/gl-impl.c" - config="${config}/gl-glx-x11.cfg" - includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> - <classpath refid="gen.classpath" /> - </gluegen> - - <!-- Generate CGL interface class --> - <echo message="Generating CGL interface class" /> - <gluegen src="${stub.includes.common}/gl-impl.c" - config="${config}/gl-cgl-macosx.cfg" - includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> + emitter="com.sun.gluegen.opengl.GLEmitter"> <classpath refid="gen.classpath" /> </gluegen> @@ -519,7 +499,7 @@ config="${jawt.cfg}" literalInclude="${java.includes.dir}" includeRefid="stub.includes.fileset.platform" - emitter="net.java.games.gluegen.JavaEmitter"> + emitter="com.sun.gluegen.JavaEmitter"> <classpath refid="gen.classpath" /> </gluegen> @@ -528,33 +508,24 @@ <gluegen src="${stub.includes.platform}/window-system.c" config="${window.cfg}" includeRefid="stub.includes.fileset.platform" - emitter="net.java.games.gluegen.opengl.GLEmitter"> + emitter="com.sun.gluegen.opengl.GLEmitter"> <classpath refid="gen.classpath" /> </gluegen> <!-- Generate StaticGLInfo class --> <echo message="Generating StaticGLInfo class" /> - <staticglgen package="net.java.games.jogl.impl" + <staticglgen package="com.sun.opengl.impl" headers="${gl.headers}" - outputdir="${src.generated.java}/net/java/games/jogl/impl"> + outputdir="${src.generated.java}/com/sun/opengl/impl"> <classpath refid="gen.classpath" /> </staticglgen> - <!-- Generate GLU interface class --> - <echo message="Generating GLU interface class" /> + <!-- Generate GLU class --> + <echo message="Generating GLU class" /> <gluegen src="${stub.includes.common}/glu.c" config="${glu.cfg}" includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> - <classpath refid="gen.classpath" /> - </gluegen> - - <!-- Generate GLU implementation class --> - <echo message="Generating GLU implementation class" /> - <gluegen src="${stub.includes.common}/glu-impl.c" - config="${glu.impl.cfg}" - includeRefid="stub.includes.fileset.all" - emitter="net.java.games.gluegen.opengl.GLEmitter"> + emitter="com.sun.gluegen.opengl.GLEmitter"> <classpath refid="gen.classpath" /> </gluegen> @@ -579,7 +550,7 @@ <!-- Now check for the presence of one well-known file --> <uptodate property="java.generate.cg.skip"> <srcfiles refid="stub.includes.cg.dependencies.fileset" /> - <mapper type="merge" to="${src.generated.java}/net/java/games/cg/CgGL.java" /> + <mapper type="merge" to="${src.generated.java}/com/sun/opengl/cg/CgGL.java" /> </uptodate> </target> @@ -599,16 +570,16 @@ </path> <!-- Add the GlueGen and BuildStaticGLInfo tasks to ANT --> - <taskdef name="gluegen" classname="net.java.games.gluegen.ant.GlueGenTask" + <taskdef name="gluegen" classname="com.sun.gluegen.ant.GlueGenTask" classpathref="gen.classpath" /> - <taskdef name="staticglgen" classname="net.java.games.gluegen.ant.StaticGLGenTask" + <taskdef name="staticglgen" classname="com.sun.gluegen.ant.StaticGLGenTask" classpathref="gen.classpath" /> <!-- Generate CgGL interface class --> <gluegen src="${stub.includes.common}/cg.c" config="cg-common.cfg" includeRefid="stub.includes.cg.fileset.all" - emitter="net.java.games.gluegen.JavaEmitter"> + emitter="com.sun.gluegen.JavaEmitter"> <classpath refid="gen.classpath" /> </gluegen> </target> @@ -621,28 +592,28 @@ <!-- Blow away the DebugGL.java and TraceGL.java sources if GL.class has changed (the uptodate element doesn't support arbitrary source and destination files) --> <dependset> - <srcfilelist dir="${classes}/net/java/games/jogl" files="GL.class" /> - <srcfilelist dir="${classes}/net/java/games/gluegen/opengl" files="BuildComposablePipeline.class" /> - <targetfileset dir="${src.generated.java}/net/java/games/jogl" + <srcfilelist dir="${classes}/javax/media/opengl" files="GL.class" /> + <srcfilelist dir="${classes}/com/sun/gluegen/opengl" files="BuildComposablePipeline.class" /> + <targetfileset dir="${src.generated.java}/javax/media/opengl" includes="DebugGL.java,TraceGL.java" /> </dependset> <!-- Now choose one of the two to test to see if we have to regenerate --> <uptodate property="java.compile.composable.pipeline.skip" - srcfile="${classes}/net/java/games/jogl/GL.class" - targetfile="${src.generated.java}/net/java/games/jogl/DebugGL.java" /> + srcfile="${classes}/javax/media/opengl/GL.class" + targetfile="${src.generated.java}/javax/media/opengl/DebugGL.java" /> </target> <target name="java.compile.composable.pipeline" depends="java.compile.composable.pipeline.check" unless="java.compile.composable.pipeline.skip"> - <java classname="net.java.games.gluegen.opengl.BuildComposablePipeline" fork="yes"> - <arg value="net.java.games.jogl.GL" /> - <arg value="${src.generated.java}/net/java/games/jogl" /> + <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes"> + <arg value="javax.media.opengl.GL" /> + <arg value="${src.generated.java}/javax/media/opengl" /> <classpath refid="antlr.classpath" /> </java> <!-- Perform the second pass Java compile which compiles the composable pipelines. --> <javac destdir="${classes}" includes="${src.generated.java.pipeline}" source="1.4" debug="true" debuglevel="source,lines"> - <src path="${src}" /> + <src path="${src.java}" /> <src path="${src.generated.java}" /> <classpath refid="antlr.classpath" /> </javac> @@ -657,8 +628,8 @@ <target name="java.compile" depends="java.generate,java.generate.cg"> <!-- Perform the first pass Java compile. --> <javac destdir="${classes}" - excludes="${java.excludes.platform},net/java/games/jogl/impl/nurbs/**" source="1.4" debug="true" debuglevel="source,lines"> - <src path="${src}" /> + excludes="${java.excludes.platform},com/sun/opengl/impl/nurbs/**" source="1.4" debug="true" debuglevel="source,lines"> + <src path="${src.java}" /> <src path="${src.generated.java}" /> <classpath refid="antlr.classpath" /> </javac> @@ -917,9 +888,11 @@ <!-- Build the jar excluding any build specific classes. --> <jar destfile="${jogl.jar}"> <fileset dir="${classes}"> - <include name="net/java/games/jogl/**" /> - <include name="net/java/games/gluegen/runtime/**" /> - <include name="net/java/games/cg/**" /> + <include name="javax/media/opengl/**" /> + <include name="com/sun/gluegen/runtime/**" /> + <include name="com/sun/opengl/impl/**" /> + <include name="com/sun/opengl/utils/**" /> + <include name="com/sun/opengl/cg/**" /> </fileset> </jar> @@ -935,20 +908,20 @@ <target name="javadoc.nocg" depends="setup.java.home.dir,init" unless="jogl.cg"> <!-- Build the general Javadoc --> <javadoc packagenames="${javadoc.packagenames}" - sourcepath="${src};${src.generated.java}" - destdir="${javadoc}" windowtitle="JOGL API" + sourcepath="${src.java};${src.generated.java}" + destdir="${javadoc}" windowtitle="${javadoc.windowtitle}" source="1.4" - link="${javadoc.link}" /> + linkoffline="${javadoc.link} 142-packages" /> </target> <!-- Same as above but with Cg directories added --> <target name="javadoc.cg" depends="setup.java.home.dir,init" if="jogl.cg"> <!-- Build the general Javadoc --> - <javadoc packagenames="${javadoc.packagenames},net.java.games.cg" - sourcepath="${src};${src.generated.java}" - destdir="${javadoc}" windowtitle="JOGL API" + <javadoc packagenames="${javadoc.packagenames},com.sun.opengl.cg" + sourcepath="${src.java};${src.generated.java}" + destdir="${javadoc}" windowtitle="${javadoc.windowtitle}" source="1.4" - link="${javadoc.link}" /> + linkoffline="${javadoc.link} 142-packages" /> </target> <target name="javadoc" depends="javadoc.nocg,javadoc.cg" /> @@ -956,20 +929,20 @@ <target name="javadoc.dev.nocg" depends="init" unless="jogl.cg"> <!-- Build the internal developer Javadoc --> <javadoc packagenames="${javadoc.dev.packagenames},${javadoc.dev.packagenames.platform}" - sourcepath="${src};${src.generated.java}" - destdir="${javadoc.dev}" windowtitle="JOGL API" + sourcepath="${src.java};${src.generated.java}" + destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}" source="1.4" - link="${javadoc.link}" /> + linkoffline="${javadoc.link} 142-packages" /> </target> <!-- Same as above but with Cg directories added --> <target name="javadoc.dev.cg" depends="init" if="jogl.cg"> <!-- Build the internal developer Javadoc --> - <javadoc packagenames="${javadoc.dev.packagenames},${javadoc.dev.packagenames.platform},net.java.games.cg" - sourcepath="${src};${src.generated.java}" - destdir="${javadoc.dev}" windowtitle="JOGL API" + <javadoc packagenames="${javadoc.dev.packagenames},${javadoc.dev.packagenames.platform},com.sun.opengl.cg" + sourcepath="${src.java};${src.generated.java}" + destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}" source="1.4" - link="${javadoc.link}" /> + linkoffline="${javadoc.link} 142-packages" /> </target> <target name="javadoc.dev.win32" depends="setup.java.home.dir,declare.win32,javadoc.dev.nocg,javadoc.dev.cg" /> diff --git a/make/cg-common.cfg b/make/cg-common.cfg index 2954538f6..4e42ceb48 100644 --- a/make/cg-common.cfg +++ b/make/cg-common.cfg @@ -1,44 +1,67 @@ # This .cfg file provides common options used among all Cg glue code # generated for Jogl on all platforms. -Package net.java.games.cg -ImplPackage net.java.games.cg.impl +Package com.sun.opengl.cg JavaClass CgGL Style AllStatic JavaOutputDir ../build/gensrc/classes NativeOutputDir ../build/gensrc/native/jogl_cg HierarchicalNativeOutput false -# Generate "flattened" NIO variants for routines taking C primitive -# pointers that aren't of type void* -NioMode ALL_POINTERS -FlattenNIOVariants true - # # Map const char* return values to Java strings for these functions # +ReturnsString cgGetAnnotationName ReturnsString cgGetEnumString ReturnsString cgGetErrorString ReturnsString cgGetLastErrorString ReturnsString cgGetLastListing ReturnsString cgGetParameterName ReturnsString cgGetParameterSemantic +ReturnsString cgGetPassName ReturnsString cgGetProfileString ReturnsString cgGetProgramString ReturnsString cgGetResourceString +ReturnsString cgGetStateName ReturnsString cgGetString +ReturnsString cgGetStringAnnotationValue +ReturnsString cgGetStringParameterValue +ReturnsString cgGetStringStateAssignmentValue +ReturnsString cgGetTechniqueName ReturnsString cgGetTypeString +ArgumentIsString cgAddStateEnumerant 1 +ArgumentIsString cgCreateArrayState 1 +ArgumentIsString cgCreateArraySamplerState 1 +ArgumentIsString cgCreateEffect 1 2 +ArgumentIsString cgCreateEffectFromFile 1 2 ArgumentIsString cgCreateProgram 2 4 5 ArgumentIsString cgCreateProgramFromFile 2 4 5 +ArgumentIsString cgCreateProgramFromEffect 2 3 +ArgumentIsString cgCreateSamplerState 1 +ArgumentIsString cgCreateState 1 +ArgumentIsString cgGetEffectParameterBySemantic 1 ArgumentIsString cgGetEnum 0 +ArgumentIsString cgGetNamedEffectParameter 1 ArgumentIsString cgGetNamedParameter 1 +ArgumentIsString cgGetNamedPass 1 ArgumentIsString cgGetNamedProgramParameter 2 +ArgumentIsString cgGetNamedSamplerState 1 +ArgumentIsString cgGetNamedState 1 +ArgumentIsString cgGetNamedSamplerStateAssignment 1 +ArgumentIsString cgGetNamedStateAssignment 1 ArgumentIsString cgGetNamedStructParameter 1 +ArgumentIsString cgGetNamedTechnique 1 +ArgumentIsString cgGetNamedTechniqueAnnotation 1 +ArgumentIsString cgGetNamedPassAnnotation 1 +ArgumentIsString cgGetNamedParameterAnnotation 1 +ArgumentIsString cgGetNamedProgramAnnotation 1 ArgumentIsString cgGetNamedUserType 1 ArgumentIsString cgGetProfile 0 ArgumentIsString cgGetType 0 ArgumentIsString cgGetResource 0 +ArgumentIsString cgSetLastListing 1 ArgumentIsString cgSetParameterSemantic 1 +ArgumentIsString cgSetStringParameterValue 1 # Opaque definitions Opaque boolean CGbool @@ -47,14 +70,26 @@ Opaque boolean CGbool # FIXME!!!! Ignore these functions for now because we can't # automatically handle C callbacks # -Ignore cgGetErrorCallback Ignore cgSetErrorCallback +Ignore cgGetErrorCallback +Ignore cgSetErrorHandler +Ignore cgGetErrorHandler +Ignore cgSetStateCallbacks +Ignore cgGetStateSetCallback +Ignore cgGetStateResetCallback +Ignore cgGetStateValidateCallback # # FIXME!!!! Ignore these functions for now because bugs in the # emitter code can't handle them # Ignore cgGetParameterValues +Ignore cgGetBooleanAnnotationValues +Ignore cgGetBoolStateAssignmentValues +Ignore cgGetFloatAnnotationValues +Ignore cgGetFloatStateAssignmentValues +Ignore cgGetIntAnnotationValues +Ignore cgGetIntStateAssignmentValues # # Need to import New IO for Buffer classes diff --git a/make/cgl-macosx.cfg b/make/cgl-macosx.cfg index 1a963f135..ccf25e718 100644 --- a/make/cgl-macosx.cfg +++ b/make/cgl-macosx.cfg @@ -1,6 +1,6 @@ # This .cfg file is used to generate the interface to the CGL routines # used internally by the MacOSXGLContext implementation. -Package net.java.games.jogl.impl.macosx +Package com.sun.opengl.impl.macosx JavaOutputDir ..\build\gensrc\classes NativeOutputDir ..\build\gensrc\native\jogl JavaClass CGL diff --git a/make/cglext.cfg b/make/cglext.cfg new file mode 100755 index 000000000..74e7ac841 --- /dev/null +++ b/make/cglext.cfg @@ -0,0 +1,53 @@ +# This .cfg file is used to generate the interface and implementing +# class for the CGL extensions. +# Note that there are currently no such extensions exposed on Mac OS +# X, but if in the future there are, this structure will allow them to +# be easily exposed. +Package com.sun.opengl.impl.macosx +Style InterfaceAndImpl +JavaClass CGLExt +ImplPackage com.sun.opengl.impl.macosx +ImplJavaClass CGLExtImpl +Include gl-common-macosx.cfg + +EmitProcAddressTable true +ProcAddressTableClassName CGLExtProcAddressTable +ContextVariableName _context + +# Ignore everything that doesn't start with cgl or CGL +IgnoreNot ^(cgl|CGL).+ + +CustomCCode #include <inttypes.h> +CustomCCode #include <stdlib.h> + +CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glext.h" are parsed. */ +CustomCCode #define GL_GLEXT_PROTOTYPES + +CustomCCode /* Include the OpenGL headers */ +CustomCCode #include <GL/gl.h> + +CustomCCode #include </usr/include/machine/types.h> + +CustomCCode /* Provide Windows typedefs */ +CustomCCode typedef void* LPVOID; +CustomCCode typedef unsigned int* PUINT; + +CustomJavaCode CGLExt public boolean isFunctionAvailable(String glFunctionName); +CustomJavaCode CGLExt public boolean isExtensionAvailable(String glExtensionName); + +CustomJavaCode CGLExtImpl public CGLExtImpl(MacOSXGLContext context) { +CustomJavaCode CGLExtImpl this._context = context; +CustomJavaCode CGLExtImpl } + +CustomJavaCode CGLExtImpl public boolean isFunctionAvailable(String glFunctionName) +CustomJavaCode CGLExtImpl { +CustomJavaCode CGLExtImpl return _context.isFunctionAvailable(glFunctionName); +CustomJavaCode CGLExtImpl } + +CustomJavaCode CGLExtImpl public boolean isExtensionAvailable(String glExtensionName) +CustomJavaCode CGLExtImpl { +CustomJavaCode CGLExtImpl return _context.isExtensionAvailable(glExtensionName); +CustomJavaCode CGLExtImpl } + +CustomJavaCode CGLExtImpl private MacOSXGLContext _context; diff --git a/make/gl-cgl-macosx.cfg b/make/gl-cgl-macosx.cfg deleted file mode 100644 index 20653251a..000000000 --- a/make/gl-cgl-macosx.cfg +++ /dev/null @@ -1,10 +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 CGL -Include gl-common-macosx.cfg - -# Ignore everything that doesn't start with cgl -IgnoreNot ^(cgl|CGL).+ diff --git a/make/gl-common-macosx.cfg b/make/gl-common-macosx.cfg index baeace1d7..f72775dd0 100644 --- a/make/gl-common-macosx.cfg +++ b/make/gl-common-macosx.cfg @@ -5,6 +5,3 @@ HierarchicalNativeOutput false Include gl-common.cfg JavaOutputDir ../build/gensrc/classes NativeOutputDir ../build/gensrc/native/jogl - -Unimplemented wgl.+ -Unimplemented glX.+ diff --git a/make/gl-common-win32.cfg b/make/gl-common-win32.cfg index 2ab42d4eb..1d2451270 100644 --- a/make/gl-common-win32.cfg +++ b/make/gl-common-win32.cfg @@ -5,6 +5,3 @@ HierarchicalNativeOutput false Include gl-common.cfg JavaOutputDir ../build/gensrc/classes NativeOutputDir ../build/gensrc/native/jogl - -Unimplemented cgl.+ -Unimplemented glX.+ diff --git a/make/gl-common-x11.cfg b/make/gl-common-x11.cfg index dcaeac4f2..63981cb2a 100644 --- a/make/gl-common-x11.cfg +++ b/make/gl-common-x11.cfg @@ -7,18 +7,3 @@ NativeOutputDir ../build/gensrc/native/jogl # XID needs to be treated as a long for 32/64 bit compatibility Opaque long XID - -# Get returned array's capacity from XGetVisualInfo to be correct -TemporaryCVariableDeclaration XGetVisualInfo int count; -TemporaryCVariableAssignment XGetVisualInfo count = _ptr3[0]; -ReturnValueCapacity XGetVisualInfo count * sizeof(XVisualInfo) -ReturnedArrayLength XGetVisualInfo {3}[0] -ReturnValueCapacity glXChooseVisual sizeof(XVisualInfo) -ReturnValueCapacity glXGetVisualFromFBConfig sizeof(XVisualInfo) -ReturnValueCapacity glXGetVisualFromFBConfigSGIX sizeof(XVisualInfo) -# Elide the version of XGetVisualInfo taking a direct buffer for the third argument -# (since we can't specify different glue code for different overloadings -- FIXME) -NoNio XGetVisualInfo - -Unimplemented cgl.+ -Unimplemented wgl.+ diff --git a/make/gl-common.cfg b/make/gl-common.cfg index 515b3726c..ab8af9e09 100644 --- a/make/gl-common.cfg +++ b/make/gl-common.cfg @@ -7,13 +7,13 @@ RuntimeExceptionType GLException # Imports needed by all glue code Import java.nio.* Import java.util.* -Import net.java.games.jogl.* -Import net.java.games.jogl.impl.* +Import javax.media.opengl.* +Import com.sun.opengl.impl.* -# Generate "flattened" NIO variants for routines taking C primitive -# pointers that aren't of type void* -NioMode ALL_POINTERS -FlattenNIOVariants true +# Inform the glue code generator of the association between #defines +# and functions and the extensions in which they are defined +GLHeader GL/gl.h +GLHeader GL/glext.h # Don't output #defines of GL version identifier strings as constants, # because we don't need them java-side. @@ -74,14 +74,6 @@ Ignore glUnmapObjectBufferATI # Ignore some GL functions that have outgoing void** parameters; we cannot yet deal with them Ignore glGetVariantPointervEXT -# Some GL functions have multiple void* arguments but require them to -# contain data of the same type; make sure that when bindings are -# expanded those arguments have the same type. -MirrorExpandedBindingArgs glSeparableFilter2D 6 7 -MirrorExpandedBindingArgs glSeparableFilter2DEXT 6 7 -MirrorExpandedBindingArgs glGetSeparableFilter 3 4 -MirrorExpandedBindingArgs glGetSeparableFilterEXT 3 4 - # FIXME: these extensions require either a handle to a device context # or take void** parameters or both. Until we think through the # semantics of each of these individually we need to disable them. @@ -120,6 +112,67 @@ Ignore wglAssociateImageBufferEventsI3D Ignore wglReleaseImageBufferEventsI3D # +# IgnoreExtension directives +# + +# Ignore extensions requiring persistent pointer-to-pointer storage as +# there is no such thing as a direct "BufferBuffer" +IgnoreExtension GL_IBM_vertex_array_lists +IgnoreExtension GL_INTEL_parallel_arrays +IgnoreExtension GL_SUN_triangle_list + +# Ignore extensions never approved by the ARB +IgnoreExtension GL_EXT_coordinate_frame + +# Ignore discontinued extensions +IgnoreExtension GL_NV_element_array + +# Ignore extensions subsumed in OpenGL 1.1 (from OpenGL 1.1 spec, Appendix C) +IgnoreExtension GL_EXT_vertex_array +IgnoreExtension GL_EXT_blend_logic_op +IgnoreExtension GL_EXT_copy_texture +IgnoreExtension GL_EXT_polygon_offset +IgnoreExtension GL_EXT_subtexture +IgnoreExtension GL_EXT_texture +IgnoreExtension GL_EXT_texture_object + +# Ignore extensions subsumed in OpenGL 1.2 and 1.2.1 (from OpenGL 1.2.1 spec, Appendix D) +IgnoreExtension GL_EXT_bgra +IgnoreExtension GL_EXT_blend_color +IgnoreExtension GL_EXT_blend_minmax +IgnoreExtension GL_EXT_blend_subtract +IgnoreExtension GL_EXT_color_subtable +IgnoreExtension GL_EXT_convolution +IgnoreExtension GL_EXT_draw_range_elements +IgnoreExtension GL_EXT_histogram +IgnoreExtension GL_EXT_packed_pixels +# FIXME: is GL_EXT_paletted_texture also obsolete? +IgnoreExtension GL_EXT_rescale_normal +IgnoreExtension GL_EXT_separate_specular_color +IgnoreExtension GL_EXT_texture3D +IgnoreExtension GL_HP_convolution_border_modes +IgnoreExtension GL_SGI_color_matrix +IgnoreExtension GL_SGI_color_table +IgnoreExtension GL_SGIS_texture_edge_clamp +IgnoreExtension GL_SGIS_texture_lod + +# Ignore extensions subsumed in OpenGL 1.3 (from OpenGL 1.3 spec, Appendix F) +IgnoreExtension GL_ARB_multisample +IgnoreExtension GL_ARB_multitexture +IgnoreExtension GL_ARB_texture_compression +IgnoreExtension GL_ARB_texture_cube_map +IgnoreExtension GL_ARB_texture_border_clamp +IgnoreExtension GL_ARB_texture_env_add +IgnoreExtension GL_ARB_texture_env_combine +IgnoreExtension GL_ARB_texture_env_dot3 +IgnoreExtension GL_ARB_transpose_matrix +IgnoreExtension GL_EXT_texture_cube_map +IgnoreExtension GL_EXT_texture_env_add +IgnoreExtension GL_EXT_texture_env_combine +IgnoreExtension GL_EXT_texture_env_dot3 +IgnoreExtension GL_SGIS_texture_border_clamp + +# # Opaques and other directives for platform-independent routines # @@ -127,51 +180,50 @@ Opaque boolean GLboolean ReturnsString glGetString # -# NIOOnly directives for vertex arrays and other core routines +# NIODirectOnly directives for vertex arrays and other core routines # -NIOOnly glColorPointer -NIOOnly glEdgeFlagPointer -NIOOnly glFeedbackBuffer -NIOOnly glIndexPointer -NIOOnly glNormalPointer -NIOOnly glSelectBuffer -NIOOnly glTexCoordPointer -NIOOnly glVertexPointer +NIODirectOnly glColorPointer +NIODirectOnly glEdgeFlagPointer +NIODirectOnly glFeedbackBuffer +NIODirectOnly glIndexPointer +NIODirectOnly glNormalPointer +NIODirectOnly glSelectBuffer +NIODirectOnly glTexCoordPointer +NIODirectOnly glVertexPointer # # FIXME: we should probably be ignoring the "EXT" variants of these # -NIOOnly glColorPointerEXT -NIOOnly glEdgeFlagPointerEXT -NIOOnly glIndexPointerEXT -NIOOnly glNormalPointerEXT -NIOOnly glTexCoordPointerEXT -NIOOnly glVertexPointerEXT +NIODirectOnly glColorPointerEXT +NIODirectOnly glEdgeFlagPointerEXT +NIODirectOnly glIndexPointerEXT +NIODirectOnly glNormalPointerEXT +NIODirectOnly glTexCoordPointerEXT +NIODirectOnly glVertexPointerEXT # -# NIOOnly directives for other extensions +# NIODirectOnly directives for other extensions # -NIOOnly glBinormalPointerEXT -NIOOnly glGetBufferSubDataARB +NIODirectOnly glBinormalPointerEXT +NIODirectOnly glGetBufferSubDataARB # FIXME: should add way to restrict argument to be a direct ByteBuffer -NIOOnly glGetProgramStringARB -NIOOnly glElementPointerATI -NIOOnly glElementPointerNV -NIOOnly glFogCoordPointer -NIOOnly glFogCoordPointerEXT -NIOOnly glMatrixIndexPointerARB -# NIOOnly glNewObjectBufferATI # FIXME: look up semantics of this routine -NIOOnly glPixelDataRangeNV -NIOOnly glSecondaryColorPointer -NIOOnly glSecondaryColorPointerEXT -NIOOnly glTangentPointerEXT -# NIOOnly glUpdateObjectBufferATI # FIXME: look up semantics of this routine -# NIOOnly glVariantPointerEXT # FIXME: look up semantics of this routine -NIOOnly glVertexArrayRangeNV -NIOOnly glVertexAttribPointerARB -NIOOnly glVertexAttribPointerNV -NIOOnly glVertexWeightPointerEXT -NIOOnly glWeightPointerARB -NIOOnly wglFreeMemoryNV -NIOOnly glXFreeMemoryNV +NIODirectOnly glGetProgramStringARB +NIODirectOnly glElementPointerATI +NIODirectOnly glElementPointerNV +NIODirectOnly glElementPointerAPPLE +NIODirectOnly glFogCoordPointer +NIODirectOnly glFogCoordPointerEXT +NIODirectOnly glMatrixIndexPointerARB +NIODirectOnly glPixelDataRangeNV +NIODirectOnly glSecondaryColorPointer +NIODirectOnly glSecondaryColorPointerEXT +NIODirectOnly glTangentPointerEXT +NIODirectOnly glVertexArrayRangeNV +NIODirectOnly glVertexArrayRangeApple +NIODirectOnly glVertexAttribPointerARB +NIODirectOnly glVertexAttribPointerNV +NIODirectOnly glVertexWeightPointerEXT +NIODirectOnly glWeightPointerARB +NIODirectOnly wglFreeMemoryNV +NIODirectOnly glXFreeMemoryNV # Capacity of wglAllocateMemoryNV/glXAllocateMemoryNV return value is # same as value of first argument @@ -189,11 +241,96 @@ ArgumentIsString glProgramNamedParameter4fvNV 2 ArgumentIsString glProgramNamedParameter4dvNV 2 ArgumentIsString glGetProgramNamedParameterfvNV 2 ArgumentIsString glGetProgramNamedParameterdvNV 2 +ArgumentIsString glShaderSource 2 ArgumentIsString glShaderSourceARB 2 +ArgumentIsString glGetUniformLocation 1 ArgumentIsString glGetUniformLocationARB 1 +ArgumentIsString glBindAttribLocation 2 ArgumentIsString glBindAttribLocationARB 2 +ArgumentIsString glGetAttribLocation 1 ArgumentIsString glGetAttribLocationARB 1 +# +# Directives for Vertex Buffer Object and Pixel Buffer Object checking +# +# NOTE: we currently don't emit glue code for some of these but +# include them for completeness. +# +# FIXME: what about glMultiDrawElements? Do we want to add a VBO +# variant for that, or simply add checks to the top of the current +# implementation? +# +JavaPrologue glBegin inBeginEndPair = true; +JavaEpilogue glEnd inBeginEndPair = false; +BufferObjectKind UnpackPixel glBitmap +BufferObjectKind UnpackPixel glColorTable +BufferObjectKind UnpackPixel glColorSubTable +BufferObjectKind UnpackPixel glCompressedTexImage1D +BufferObjectKind UnpackPixel glCompressedTexImage1DARB +BufferObjectKind UnpackPixel glCompressedTexImage2D +BufferObjectKind UnpackPixel glCompressedTexImage2DARB +BufferObjectKind UnpackPixel glCompressedTexImage3D +BufferObjectKind UnpackPixel glCompressedTexImage3DARB +BufferObjectKind UnpackPixel glCompressedTexSubImage1D +BufferObjectKind UnpackPixel glCompressedTexSubImage1DARB +BufferObjectKind UnpackPixel glCompressedTexSubImage2D +BufferObjectKind UnpackPixel glCompressedTexSubImage2DARB +BufferObjectKind UnpackPixel glCompressedTexSubImage3D +BufferObjectKind UnpackPixel glCompressedTexSubImage3DARB +BufferObjectKind UnpackPixel glConvolutionFilter1D +BufferObjectKind UnpackPixel glConvolutionFilter2D +BufferObjectKind UnpackPixel glDrawPixels +BufferObjectKind UnpackPixel glPixelMapfv +BufferObjectKind UnpackPixel glPixelMapuiv +BufferObjectKind UnpackPixel glPixelMapusv +BufferObjectKind UnpackPixel glPolygonStipple +BufferObjectKind UnpackPixel glSeparableFilter2D +BufferObjectKind UnpackPixel glTexImage1D +BufferObjectKind UnpackPixel glTexImage2D +BufferObjectKind UnpackPixel glTexImage3D +BufferObjectKind UnpackPixel glTexSubImage1D +BufferObjectKind UnpackPixel glTexSubImage2D +BufferObjectKind UnpackPixel glTexSubImage3D + +BufferObjectKind PackPixel glGetColorTable +BufferObjectKind PackPixel glGetCompressedTexImage +BufferObjectKind PackPixel glGetCompressedTexImageARB +BufferObjectKind PackPixel glGetConvolutionFilter +BufferObjectKind PackPixel glGetHistogram +BufferObjectKind PackPixel glGetMinmax +BufferObjectKind PackPixel glGetPixelMapfv +BufferObjectKind PackPixel glGetPixelMapuiv +BufferObjectKind PackPixel glGetPixelMapusv +BufferObjectKind PackPixel glGetPolygonStipple +BufferObjectKind PackPixel glGetSeparableFilter +BufferObjectKind PackPixel glGetTexImage +BufferObjectKind PackPixel glReadPixels + +BufferObjectKind Array glColorPointer +BufferObjectKind Array glEdgeFlagPointer +BufferObjectKind Array glElementPointerATI +BufferObjectKind Array glFogCoordPointer +BufferObjectKind Array glFogCoordPointerEXT +# The next one is problematic. It isn't discussed by the specs and +# doesn't have any associated state. +BufferObjectKind Array glInterleavedArrays +BufferObjectKind Array glMatrixIndexPointerARB +BufferObjectKind Array glNormalPointer +BufferObjectKind Array glSecondaryColorPointer +BufferObjectKind Array glSecondaryColorPointerEXT +BufferObjectKind Array glTexCoordPointer +BufferObjectKind Array glVariantPointerEXT +BufferObjectKind Array glVertexPointer +BufferObjectKind Array glVertexAttribPointer +BufferObjectKind Array glVertexAttribPointerARB +BufferObjectKind Array glVertexAttribPointerNV +BufferObjectKind Array glVertexWeightPointerEXT +BufferObjectKind Array glWeightPointerARB + +BufferObjectKind Element glDrawElements +BufferObjectKind Element glDrawRangeElements +BufferObjectKind Element glDrawRangeElementsEXT + # Javadoc for the GL class ClassJavadoc GL /** ClassJavadoc GL * <P> 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 * <P> 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 * </P> -ClassJavadoc GL * ClassJavadoc GL * <P> Exceptions to the window system extension naming rules: ClassJavadoc GL * ClassJavadoc GL * <UL> ClassJavadoc GL * -ClassJavadoc GL * <LI> The NVidia vertex_array_range (VAR) extension, in particular {@link -ClassJavadoc GL * WGL#wglAllocateMemoryNV} / {@link GLX#glXAllocateMemoryNV} and -ClassJavadoc GL * associated routines. {@link #glAllocateMemoryNV} has been provided -ClassJavadoc GL * for window system-independent access to VAR. {@link -ClassJavadoc GL * #isFunctionAvailable} will translate an argument of -ClassJavadoc GL * "glAllocateMemoryNV" or "glFreeMemoryNV" into the appropriate +ClassJavadoc GL * <LI> The memory allocators for the NVidia vertex_array_range (VAR) +ClassJavadoc GL * extension, in particular <code>wglAllocateMemoryNV</code> / +ClassJavadoc GL * <code>glXAllocateMemoryNV</code> 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. </P> ClassJavadoc GL * ClassJavadoc GL * <LI> WGL_ARB_pbuffer, WGL_ARB_pixel_format, and other @@ -320,11 +448,11 @@ CustomJavaCode GL * depth of the display). Any application that is concerned CustomJavaCode GL * these situations correctly should confirm availability after a display CustomJavaCode GL * change before calling a questionable OpenGL function. To detect a change in CustomJavaCode GL * the display device, please see {@link -CustomJavaCode GL * GLEventListener#displayChanged(GLDrawable,boolean,boolean)}. +CustomJavaCode GL * GLEventListener#displayChanged(GLAutoDrawable,boolean,boolean)}. CustomJavaCode GL * CustomJavaCode GL * @param glFunctionName the name of the OpenGL function (e.g., use -CustomJavaCode GL * "glPolygonOffsetEXT" to check if the {@link -CustomJavaCode GL * #glPolygonOffsetEXT(float,float)} is available). +CustomJavaCode GL * "glBindRenderbufferEXT" to check if {@link +CustomJavaCode GL * #glBindRenderbufferEXT(int,int)} is available). CustomJavaCode GL */ CustomJavaCode GL public boolean isFunctionAvailable(String glFunctionName); @@ -339,8 +467,8 @@ CustomJavaCode GL */ CustomJavaCode GL public boolean isExtensionAvailable(String glExtensionName); CustomJavaCode GL /** -CustomJavaCode GL * Provides platform-independent access to the {@link WGL#wglAllocateMemoryNV} / -CustomJavaCode GL * {@link GLX#glXAllocateMemoryNV} extension. +CustomJavaCode GL * Provides platform-independent access to the <code>wglAllocateMemoryNV</code> / +CustomJavaCode GL * <code>glXAllocateMemoryNV</code> 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 * <P> +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 <inttypes.h> -CustomCCode #include <stdlib.h> - -CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in -CustomCCode "glext.h" are parsed. */ -CustomCCode #define GL_GLEXT_PROTOTYPES - -CustomCCode /* Include the OpenGL headers */ -CustomCCode #include <GL/gl.h> - -CustomCCode #include </usr/include/machine/types.h> - -CustomCCode /* Provide Windows typedefs */ -CustomCCode typedef void* LPVOID; -CustomCCode typedef unsigned int* PUINT; - -CustomJavaCode MacOSXGLImpl public MacOSXGLImpl(MacOSXGLContext context) -CustomJavaCode MacOSXGLImpl { -CustomJavaCode MacOSXGLImpl this._context = context; -CustomJavaCode MacOSXGLImpl } - -CustomJavaCode MacOSXGLImpl /** This constructor should be used manually in order to -CustomJavaCode MacOSXGLImpl create a GL object that can be used with the Cocoa NSOpenGLView. */ -CustomJavaCode MacOSXGLImpl public MacOSXGLImpl() -CustomJavaCode MacOSXGLImpl { -CustomJavaCode MacOSXGLImpl this._context = new MacOSXDummyGLContext(this); -CustomJavaCode MacOSXGLImpl } - -CustomJavaCode MacOSXGLImpl public boolean isFunctionAvailable(String glFunctionName) -CustomJavaCode MacOSXGLImpl { -CustomJavaCode MacOSXGLImpl return _context.isFunctionAvailable(glFunctionName); -CustomJavaCode MacOSXGLImpl } - -CustomJavaCode MacOSXGLImpl public boolean isExtensionAvailable(String glExtensionName) -CustomJavaCode MacOSXGLImpl { -CustomJavaCode MacOSXGLImpl return _context.isExtensionAvailable(glExtensionName); -CustomJavaCode MacOSXGLImpl } - -CustomJavaCode MacOSXGLImpl /** Forces a recomputation of which extensions are available. -CustomJavaCode MacOSXGLImpl Should only be called if this MacOSXGLImpl is being used -CustomJavaCode MacOSXGLImpl in conjunction with an NSOpenGLView instead of a GLCanvas. */ -CustomJavaCode MacOSXGLImpl public void resetGLFunctionAvailability() -CustomJavaCode MacOSXGLImpl { -CustomJavaCode MacOSXGLImpl if (!(_context instanceof MacOSXDummyGLContext)) { -CustomJavaCode MacOSXGLImpl throw new GLException("Should only be called if being used with NSOpenGLView"); -CustomJavaCode MacOSXGLImpl } -CustomJavaCode MacOSXGLImpl ((MacOSXDummyGLContext) _context).resetGLFunctionAvailability(); -CustomJavaCode MacOSXGLImpl } - -CustomJavaCode MacOSXGLImpl private MacOSXGLContext _context; - -CustomJavaCode MacOSXGLImpl /** -CustomJavaCode MacOSXGLImpl * Provides platform-independent access to the wglAllocateMemoryNV / -CustomJavaCode MacOSXGLImpl * glXAllocateMemoryNV extension. -CustomJavaCode MacOSXGLImpl */ -CustomJavaCode MacOSXGLImpl public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) -CustomJavaCode MacOSXGLImpl { -CustomJavaCode MacOSXGLImpl // FIXME -CustomJavaCode MacOSXGLImpl throw new GLException("Not yet implemented"); -CustomJavaCode MacOSXGLImpl } - -CustomJavaCode MacOSXGLImpl public void setSwapInterval(int interval) { // FIXME: not implemented yet -CustomJavaCode MacOSXGLImpl _context.setSwapInterval(interval); -CustomJavaCode MacOSXGLImpl } - -IncludeAs CustomJavaCode MacOSXGLImpl gl-impl-CustomJavaCode.java -IncludeAs CustomCCode gl-impl-CustomCCode.c diff --git a/make/gl-impl-win32.cfg b/make/gl-impl-win32.cfg deleted file mode 100644 index 252425659..000000000 --- a/make/gl-impl-win32.cfg +++ /dev/null @@ -1,70 +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.windows -ImplJavaClass WindowsGLImpl -Include gl-common-win32.cfg -Include gl-glx-common.cfg - -EmitProcAddressTable true -ProcAddressTableClassName GLProcAddressTable -ContextVariableName _context - -CustomCCode #define WIN32_LEAN_AND_MEAN -CustomCCode #include <windows.h> -CustomCCode #undef WIN32_LEAN_AND_MEAN -CustomCCode #include <stdlib.h> -CustomCCode #include <stddef.h> -CustomCCode #include <malloc.h> - -CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in -CustomCCode "glext.h" are parsed. */ -CustomCCode #define GL_GLEXT_PROTOTYPES - -CustomCCode /* Define WGL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in -CustomCCode "wglext.h" are parsed. */ -CustomCCode #define WGL_GLEXT_PROTOTYPES - -CustomCCode /* Include the OpenGL headers */ -CustomCCode #include <GL/gl.h> -CustomCCode #include <GL/wglext.h> - -CustomCCode /* This typedef is only needed for VC6 */ -CustomCCode #if _MSC_VER <= 1200 -CustomCCode typedef int intptr_t; -CustomCCode #endif - -CustomJavaCode WindowsGLImpl public WindowsGLImpl(WindowsGLContext context) { -CustomJavaCode WindowsGLImpl this._context = context; -CustomJavaCode WindowsGLImpl } - -CustomJavaCode WindowsGLImpl public boolean isFunctionAvailable(String glFunctionName) -CustomJavaCode WindowsGLImpl { -CustomJavaCode WindowsGLImpl return _context.isFunctionAvailable(glFunctionName); -CustomJavaCode WindowsGLImpl } - -CustomJavaCode WindowsGLImpl public boolean isExtensionAvailable(String glExtensionName) -CustomJavaCode WindowsGLImpl { -CustomJavaCode WindowsGLImpl return _context.isExtensionAvailable(glExtensionName); -CustomJavaCode WindowsGLImpl } - -CustomJavaCode WindowsGLImpl private WindowsGLContext _context; - -CustomJavaCode WindowsGLImpl /** -CustomJavaCode WindowsGLImpl * Provides platform-independent access to the wglAllocateMemoryNV / -CustomJavaCode WindowsGLImpl * glXAllocateMemoryNV extension. -CustomJavaCode WindowsGLImpl */ -CustomJavaCode WindowsGLImpl public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) { -CustomJavaCode WindowsGLImpl return wglAllocateMemoryNV(arg0, arg1, arg2, arg3); -CustomJavaCode WindowsGLImpl } - -CustomJavaCode WindowsGLImpl public void setSwapInterval(int interval) { -CustomJavaCode WindowsGLImpl if (isExtensionAvailable("WGL_EXT_swap_control")) { -CustomJavaCode WindowsGLImpl wglSwapIntervalEXT(interval); -CustomJavaCode WindowsGLImpl } -CustomJavaCode WindowsGLImpl } - -IncludeAs CustomJavaCode WindowsGLImpl gl-impl-CustomJavaCode.java -IncludeAs CustomCCode gl-impl-CustomCCode.c diff --git a/make/gl-impl-x11.cfg b/make/gl-impl-x11.cfg deleted file mode 100644 index b60a28787..000000000 --- a/make/gl-impl-x11.cfg +++ /dev/null @@ -1,67 +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.x11 -ImplJavaClass X11GLImpl -Include gl-common-x11.cfg -Include gl-glx-common.cfg - -EmitProcAddressTable true -ProcAddressTableClassName GLProcAddressTable -ContextVariableName _context - -CustomCCode #include <inttypes.h> -CustomCCode #include <stdlib.h> -CustomCCode #include <X11/Xlib.h> - -CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in -CustomCCode "glext.h" are parsed. */ -CustomCCode #define GL_GLEXT_PROTOTYPES - -CustomCCode /* Define GLX_GLXEXT_PROTOTYPES so that the OpenGL extension prototypes in -CustomCCode "glxext.h" are parsed. */ -CustomCCode #define GLX_GLXEXT_PROTOTYPES - -CustomCCode /* Include the OpenGL headers */ -CustomCCode #include <GL/gl.h> -CustomCCode #include <GL/glx.h> -CustomCCode #include <GL/glxext.h> - -CustomCCode /* Provide Windows typedefs */ -CustomCCode typedef void* LPVOID; -CustomCCode typedef unsigned int* PUINT; - -CustomJavaCode X11GLImpl public X11GLImpl(X11GLContext context) { -CustomJavaCode X11GLImpl this._context = context; -CustomJavaCode X11GLImpl } - -CustomJavaCode X11GLImpl public boolean isFunctionAvailable(String glFunctionName) -CustomJavaCode X11GLImpl { -CustomJavaCode X11GLImpl return _context.isFunctionAvailable(glFunctionName); -CustomJavaCode X11GLImpl } - -CustomJavaCode X11GLImpl public boolean isExtensionAvailable(String glExtensionName) -CustomJavaCode X11GLImpl { -CustomJavaCode X11GLImpl return _context.isExtensionAvailable(glExtensionName); -CustomJavaCode X11GLImpl } - -CustomJavaCode X11GLImpl private X11GLContext _context; - -CustomJavaCode X11GLImpl /** -CustomJavaCode X11GLImpl * Provides platform-independent access to the wglAllocateMemoryNV / -CustomJavaCode X11GLImpl * glXAllocateMemoryNV extension. -CustomJavaCode X11GLImpl */ -CustomJavaCode X11GLImpl public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) { -CustomJavaCode X11GLImpl return glXAllocateMemoryNV(arg0, arg1, arg2, arg3); -CustomJavaCode X11GLImpl } - -CustomJavaCode X11GLImpl public void setSwapInterval(int interval) { -CustomJavaCode X11GLImpl if (isExtensionAvailable("GLX_SGI_swap_control")) { -CustomJavaCode X11GLImpl glXSwapIntervalSGI(interval); -CustomJavaCode X11GLImpl } -CustomJavaCode X11GLImpl } - -IncludeAs CustomJavaCode X11GLImpl gl-impl-CustomJavaCode.java -IncludeAs CustomCCode gl-impl-CustomCCode.c diff --git a/make/gl-macosx.cfg b/make/gl-macosx.cfg index a22b13477..156f66b77 100644 --- a/make/gl-macosx.cfg +++ b/make/gl-macosx.cfg @@ -1,10 +1,30 @@ -# This .cfg file is used to generate the GL interface. -Package net.java.games.jogl -Style InterfaceOnly +# This .cfg file is used to generate the GL interface and implementing class. +Package javax.media.opengl +Style InterfaceAndImpl JavaClass GL -Extends GL WGL -Extends GL GLX -Extends GL CGL +ImplPackage com.sun.opengl.impl +ImplJavaClass GLImpl Include gl-common-macosx.cfg -EmitProcAddressTable false +EmitProcAddressTable true +ProcAddressTableClassName GLProcAddressTable +ContextVariableName _context + +CustomCCode #include <inttypes.h> +CustomCCode #include <stdlib.h> + +CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glext.h" are parsed. */ +CustomCCode #define GL_GLEXT_PROTOTYPES + +CustomCCode /* Include the OpenGL headers */ +CustomCCode #include <GL/gl.h> + +CustomCCode #include </usr/include/machine/types.h> + +CustomCCode /* Provide Windows typedefs */ +CustomCCode typedef void* LPVOID; +CustomCCode typedef unsigned int* PUINT; + +IncludeAs CustomJavaCode GLImpl gl-impl-CustomJavaCode.java +IncludeAs CustomCCode gl-impl-CustomCCode.c diff --git a/make/gl-wgl-win32.cfg b/make/gl-wgl-win32.cfg deleted file mode 100644 index fb5f9556e..000000000 --- a/make/gl-wgl-win32.cfg +++ /dev/null @@ -1,10 +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 WGL -Include gl-common-win32.cfg - -# Ignore everything that doesn't start with wgl or WGL -Ignore ^[^wW].+ diff --git a/make/gl-win32.cfg b/make/gl-win32.cfg index 83cb3e3bd..950d67320 100644 --- a/make/gl-win32.cfg +++ b/make/gl-win32.cfg @@ -1,10 +1,33 @@ -# This .cfg file is used to generate the GL interface. -Package net.java.games.jogl -Style InterfaceOnly +# This .cfg file is used to generate the GL interface and implementing class. +Package javax.media.opengl +Style InterfaceAndImpl JavaClass GL -Extends GL WGL -Extends GL GLX -Extends GL CGL +ImplPackage com.sun.opengl.impl +ImplJavaClass GLImpl Include gl-common-win32.cfg -EmitProcAddressTable false +EmitProcAddressTable true +ProcAddressTableClassName GLProcAddressTable +ContextVariableName _context + +CustomCCode #define WIN32_LEAN_AND_MEAN +CustomCCode #include <windows.h> +CustomCCode #undef WIN32_LEAN_AND_MEAN +CustomCCode #include <stdlib.h> +CustomCCode #include <stddef.h> +CustomCCode #include <malloc.h> + +CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glext.h" are parsed. */ +CustomCCode #define GL_GLEXT_PROTOTYPES + +CustomCCode /* Include the OpenGL headers */ +CustomCCode #include <GL/gl.h> + +CustomCCode /* This typedef is only needed for VC6 */ +CustomCCode #if _MSC_VER <= 1200 +CustomCCode typedef int intptr_t; +CustomCCode #endif + +IncludeAs CustomJavaCode GLImpl gl-impl-CustomJavaCode.java +IncludeAs CustomCCode gl-impl-CustomCCode.c diff --git a/make/gl-x11.cfg b/make/gl-x11.cfg index e20deed55..fd793c5b9 100644 --- a/make/gl-x11.cfg +++ b/make/gl-x11.cfg @@ -1,11 +1,35 @@ -# This .cfg file is used to generate the class which implements the GL -# interface on a particular platform. -Package net.java.games.jogl -Style InterfaceOnly +# This .cfg file is used to generate the GL interface and implementing class. +Package javax.media.opengl +Style InterfaceAndImpl JavaClass GL -Extends GL WGL -Extends GL GLX -Extends GL CGL +ImplPackage com.sun.opengl.impl +ImplJavaClass GLImpl Include gl-common-x11.cfg -EmitProcAddressTable false
\ No newline at end of file +EmitProcAddressTable true +ProcAddressTableClassName GLProcAddressTable +ContextVariableName _context + +CustomCCode #include <inttypes.h> +CustomCCode #include <stdlib.h> +CustomCCode #include <X11/Xlib.h> + +CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glext.h" are parsed. */ +CustomCCode #define GL_GLEXT_PROTOTYPES + +CustomCCode /* Define GLX_GLXEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glxext.h" are parsed. */ +CustomCCode #define GLX_GLXEXT_PROTOTYPES + +CustomCCode /* Include the OpenGL headers */ +CustomCCode #include <GL/gl.h> +CustomCCode #include <GL/glx.h> +CustomCCode #include <GL/glxext.h> + +CustomCCode /* Provide Windows typedefs */ +CustomCCode typedef void* LPVOID; +CustomCCode typedef unsigned int* PUINT; + +IncludeAs CustomJavaCode GLImpl gl-impl-CustomJavaCode.java +IncludeAs CustomCCode gl-impl-CustomCCode.c diff --git a/make/glu-CustomJavaCode.java b/make/glu-CustomJavaCode.java new file mode 100644 index 000000000..be919da1e --- /dev/null +++ b/make/glu-CustomJavaCode.java @@ -0,0 +1,1457 @@ +private static boolean useJavaMipmapCode = true; + +static { + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + String val = System.getProperty("jogl.glu.nojava"); + if (val != null && !val.toLowerCase().equals("false")) { + useJavaMipmapCode = false; + } + return null; + } + }); +} + +/** + * Instantiates a new OpenGL Utility Library object. A GLU object may + * be instantiated at any point in the application and is not + * inherently tied to any particular OpenGL context; however, the GLU + * object may only be used when an OpenGL context is current on the + * current thread. Attempts to call most of the methods in the GLU + * library when no OpenGL context is current will cause an exception + * to be thrown. + * + * <P> + * + * 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 <i>callable</i> on the machine running the + * program and <i>available</i> on the current display.<P> + * + * A GLU function is <i>callable</i> if it is a GLU core- or extension-function + * that is supported by the underlying GLU implementation. The function is + * <i>available</i> if the OpenGL implementation on the display meets the + * requirements of the GLU function being called (because GLU functions utilize + * OpenGL functions). <P> + * + * Whether or not a GLU function is <i>callable</i> is determined as follows: + * <ul> + * <li>If the function is a GLU core function (i.e., not an + * extension), <code>gluGetString(GLU_VERSION)</code> 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. + * + * <li> If the function is a GLU extension, the function name is + * cross-referenced with the list returned by + * <code>gluGetString(GLU_EXTENSIONS)</code> to see if the function is one of + * the extensions that is supported by the underlying GLU implementation. + * </ul> + * + * Whether or not a GLU function is <i>available</i> is determined as follows: + * <ul> + * <li>If the function is a GLU core function then the function is first + * cross-referenced with the GLU specifications to find the minimum GLU + * version required to <i>call</i> that GLU function. Then the following table + * is consulted to determine the minimum GL version required for that version + * of GLU: + * <ul> + * <li> GLU 1.0 requires OpenGL 1.0 + * <li> GLU 1.1 requires OpenGL 1.0 + * <li> GLU 1.2 requires OpenGL 1.1 + * <li> GLU 1.3 requires OpenGL 1.2 + * </ul> + * Finally, <code>glGetString(GL_VERSION)</code> 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 <i>available</i> on the display. + * + * <li> If the function is a GLU extension, the function name is + * cross-referenced with the list returned by + * <code>gluGetString(GLU_EXTENSIONS)</code> to see if the function is one of + * the extensions that is supported by the underlying GLU implementation. + * </ul> + * + * <b>NOTE:</b>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 <code> + * gluNurbsCallbackDataEXT(GLUnurbs, GLvoid)</code> 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 +// + +/***************************************************************************** + * <b>gluNewTess</b> 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(); +} + +/***************************************************************************** + * <b>gluDeleteTess</b> 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(); +} + +/***************************************************************************** + * <b>gluTessProperty</b> 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 <i>which</i> are as + * follows:<P> + * + * <b>GLU_TESS_WINDING_RULE</b> + * <UL> + * Determines which parts of the polygon are on the "interior". + * <em>value</em> may be set to one of + * <BR><b>GLU_TESS_WINDING_ODD</b>, + * <BR><b>GLU_TESS_WINDING_NONZERO</b>, + * <BR><b>GLU_TESS_WINDING_POSITIVE</b>, or + * <BR><b>GLU_TESS_WINDING_NEGATIVE</b>, or + * <BR><b>GLU_TESS_WINDING_ABS_GEQ_TWO</b>.<P> + * + * 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.<P> + * + * 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.<P> + * + * 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. + * </UL> + * <BR><b>GLU_TESS_BOUNDARY_ONLY</b> + * <UL> + * 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 <b>GLU_TESS_BEGIN</b> and <b>GLU_TESS_BEGIN_DATA</b> + * callbacks use the type GL_LINE_LOOP for each contour. + * </UL> + * <BR><b>GLU_TESS_TOLERANCE</b> + * <UL> + * 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.<P> + * + * 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.<P> + * + * 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. + * </UL> + * + * @param tessellator + * Specifies the tessellation object created with + * {@link #gluNewTess gluNewTess} + * @param which + * Specifies the property to be set. Valid values are + * <b>GLU_TESS_WINDING_RULE</b>, <b>GLU_TESS_BOUNDARDY_ONLY</b>, + * <b>GLU_TESS_TOLERANCE</b>. + * @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); +} + +/***************************************************************************** + * <b>gluGetTessProperty</b> 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 <b>GLU_TESS_WINDING_RULE</b>, <b>GLU_TESS_BOUNDARY_ONLY</b>, + * and <b>GLU_TESS_TOLERANCES</b>. + * @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); +} + +/***************************************************************************** + * <b>gluTessNormal</b> 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 + * <b>gluTessNormal</b>(tess, 0.0, 0.0, 0.0) before rendering any polygons.<P> + * + * 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).<P> + * + * The supplied normal persists until it is changed by another call to + * <b>gluTessNormal</b>. + * + * @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); +} + +/***************************************************************************** + * <b>gluTessCallback</b> 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 <i>aCallback</i> is null, then the existing callback + * becomes undefined.<P> + * + * 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:<P> + * + * <b>GLU_TESS_BEGIN</b> + * <UL> + * 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 + * <b>GLU_TESS_BOUNDARY_ONLY</b> property is set to <b>GL_FALSE</b>, then + * the argument is set to either <b>GL_TRIANGLE_FAN</b>, + * <b>GL_TRIANGLE_STRIP</b>, or <b>GL_TRIANGLES</b>. If the + * <b>GLU_TESS_BOUNDARY_ONLY</b> property is set to <b>GL_TRUE</b>, then the + * argument will be set to <b>GL_LINE_LOOP</b>. The method prototype for + * this callback is: + * </UL> + * + * <PRE> + * void begin(int type);</PRE><P> + * + * <b>GLU_TESS_BEGIN_DATA</b> + * <UL> + * The same as the <b>GLU_TESS_BEGIN</b> 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: + * </UL> + * + * <PRE> + * void beginData(int type, Object polygonData);</PRE> + * + * <b>GLU_TESS_EDGE_FLAG</b> + * <UL> + * 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 <b>GL_TRUE</b>, 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 <b>GL_FALSE</b>, 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.<P> + * + * Since triangle fans and triangle strips do not support edge flags, the + * begin callback is not called with <b>GL_TRIANGLE_FAN</b> or + * <b>GL_TRIANGLE_STRIP</b> 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: + * </UL> + * + * <PRE> + * void edgeFlag(boolean boundaryEdge);</PRE> + * + * <b>GLU_TESS_EDGE_FLAG_DATA</b> + * <UL> + * The same as the <b>GLU_TESS_EDGE_FLAG</b> 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: + * </UL> + * + * <PRE> + * void edgeFlagData(boolean boundaryEdge, Object polygonData);</PRE> + * + * <b>GLU_TESS_VERTEX</b> + * <UL> + * 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: + * </UL> + * + * <PRE> + * void vertex(Object vertexData);</PRE> + * + * <b>GLU_TESS_VERTEX_DATA</b> + * <UL> + * The same as the <b>GLU_TESS_VERTEX</b> 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: + * </UL> + * + * <PRE> + * void vertexData(Object vertexData, Object polygonData);</PRE> + * + * <b>GLU_TESS_END</b> + * <UL> + * 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: + * </UL> + * + * <PRE> + * void end();</PRE> + * + * <b>GLU_TESS_END_DATA</b> + * <UL> + * The same as the <b>GLU_TESS_END</b> 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: + * </UL> + * + * <PRE> + * void endData(Object polygonData);</PRE> + * + * <b>GLU_TESS_COMBINE</b> + * <UL> + * 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: + * </UL> + * + * <PRE> + * void combine(double[] coords, Object[] data, + * float[] weight, Object[] outData);</PRE> + * + * <UL> + * The vertex is defined as a linear combination of up to four existing + * vertices, stored in <i>data</i>. The coefficients of the linear + * combination are given by <i>weight</i>; these weights always add up to 1. + * All vertex pointers are valid even when some of the weights are 0. + * <i>coords</i> gives the location of the new vertex.<P> + * + * The user must allocate another vertex, interpolate parameters using + * <i>data</i> and <i>weight</i>, and return the new vertex pointer + * in <i>outData</i>. This handle is supplied during rendering callbacks. + * The user is responsible for freeing the memory some time after + * {@link #gluTessEndPolygon gluTessEndPolygon} is + * called.<P> + * + * For example, if the polygon lies in an arbitrary plane in 3-space, and a + * color is associated with each vertex, the <b>GLU_TESS_COMBINE</b> + * callback might look like this: + * </UL> + * <PRE> + * 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; + * }</PRE> + * + * <UL> + * If the tessellation detects an intersection, then the + * <b>GLU_TESS_COMBINE</b> or <b>GLU_TESS_COMBINE_DATA</b> callback (see + * below) must be defined, and it must write a non-null reference into + * <i>outData</i>. Otherwise the <b>GLU_TESS_NEED_COMBINE_CALLBACK</b> error + * occurs, and no output is generated. + * </UL> + * + * <b>GLU_TESS_COMBINE_DATA</b> + * <UL> + * The same as the <b>GLU_TESS_COMBINE</b> 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: + * </UL> + * + * <PRE> + * void combineData(double[] coords, Object[] data, + float[] weight, Object[] outData, + Object polygonData);</PRE> + * + * <b>GLU_TESS_ERROR</b> + * <UL> + * 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 <b>GLU_TESS_MISSING_BEGIN_POLYGON</b>, + * <b>GLU_TESS_MISSING_END_POLYGON</b>, + * <b>GLU_TESS_MISSING_BEGIN_CONTOUR</b>, + * <b>GLU_TESS_MISSING_END_CONTOUR</b>, <b>GLU_TESS_COORD_TOO_LARGE</b>, + * <b>GLU_TESS_NEED_COMBINE_CALLBACK</b> or <b>GLU_OUT_OF_MEMORY</b>. + * Character strings describing these errors can be retrieved with the + * {@link #gluErrorString gluErrorString} call. The + * method prototype for this callback is: + * </UL> + * + * <PRE> + * void error(int errnum);</PRE> + * + * <UL> + * The GLU library will recover from the first four errors by inserting the + * missing call(s). <b>GLU_TESS_COORD_TOO_LARGE</b> indicates that some + * vertex coordinate exceeded the predefined constant + * <b>GLU_TESS_MAX_COORD</b> 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.) + * <b>GLU_TESS_NEED_COMBINE_CALLBACK</b> indicates that the tessellation + * detected an intersection between two edges in the input data, and the + * <b>GLU_TESS_COMBINE</b> or <b>GLU_TESS_COMBINE_DATA</b> callback was not + * provided. No output is generated. <b>GLU_OUT_OF_MEMORY</b> indicates that + * there is not enough memory so no output is generated. + * </UL> + * + * <b>GLU_TESS_ERROR_DATA</b> + * <UL> + * 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: + * </UL> + * + * <PRE> + * void errorData(int errnum, Object polygonData);</PRE> + * + * @param tessellator + * Specifies the tessellation object (created with + * {@link #gluNewTess gluNewTess}). + * @param which + * Specifies the callback being defined. The following values are + * valid: <b>GLU_TESS_BEGIN</b>, <b>GLU_TESS_BEGIN_DATA</b>, + * <b>GLU_TESS_EDGE_FLAG</b>, <b>GLU_TESS_EDGE_FLAG_DATA</b>, + * <b>GLU_TESS_VERTEX</b>, <b>GLU_TESS_VERTEX_DATA</b>, + * <b>GLU_TESS_END</b>, <b>GLU_TESS_END_DATA</b>, + * <b>GLU_TESS_COMBINE</b>, <b>GLU_TESS_COMBINE_DATA</b>, + * <b>GLU_TESS_ERROR</b>, and <b>GLU_TESS_ERROR_DATA</b>. + * @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); +} + +/***************************************************************************** + * <b>gluTessVertex</b> describes a vertex on a polygon that the program + * defines. Successive <b>gluTessVertex</b> calls describe a closed contour. + * For example, to describe a quadrilateral <b>gluTessVertex</b> should be + * called four times. <b>gluTessVertex</b> can only be called between + * {@link #gluTessBeginContour gluTessBeginContour} and + * {@link #gluTessBeginContour gluTessEndContour}.<P> + * + * <b>data</b> 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 + * <b>GLU_TESS_VERTEX</b> or <b>GLU_TESS_VERTEX_DATA</b> 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); +} + +/***************************************************************************** + * <b>gluTessBeginPolygon</b> and + * {@link #gluTessEndPolygon gluTessEndPolygon} delimit + * the definition of a convex, concave or self-intersecting polygon. Within + * each <b>gluTessBeginPolygon</b>/ + * {@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.<P> + * + * <b>data</b> 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.<P> + * + * 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); +} + +/***************************************************************************** + * <b>gluTessBeginContour</b> and + * {@link #gluTessEndContour gluTessEndContour} delimit + * the definition of a polygon contour. Within each + * <b>gluTessBeginContour</b>/ + * {@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. <b>gluTessBeginContour</b> + * 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(); +} + +/***************************************************************************** + * <b>gluTessEndContour</b> and + * {@link #gluTessBeginContour gluTessBeginContour} + * delimit the definition of a polygon contour. Within each + * {@link #gluTessBeginContour gluTessBeginContour}/ + * <b>gluTessEndContour</b> 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(); +} + +/***************************************************************************** + * <b>gluTessEndPolygon</b> and + * {@link #gluTessBeginPolygon gluTessBeginPolygon} + * delimit the definition of a convex, concave or self-intersecting polygon. + * Within each {@link #gluTessBeginPolygon + * gluTessBeginPolygon}/<b>gluTessEndPolygon</b> 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.<P> + * + * Once <b>gluTessEndPolygon</b> 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(); +} + +/***************************************************************************** + + * <b>gluBeginPolygon</b> and {@link #gluEndPolygon gluEndPolygon} + * delimit the definition of a nonconvex polygon. To define such a + * polygon, first call <b>gluBeginPolygon</b>. 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.<P> + + * + * 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(); +} + +/***************************************************************************** + * <b>gluNextContour</b> is used to describe polygons with multiple + * contours. After you describe the first contour through a series of + * {@link #gluTessVertex gluTessVertex} calls, a + * <b>gluNextContour</b> 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.<P> + * + * The type parameter defines what type of contour follows. The following + * values are valid. <P> + * + * <b>GLU_EXTERIOR</b> + * <UL> + * An exterior contour defines an exterior boundary of the polygon. + * </UL> + * <b>GLU_INTERIOR</b> + * <UL> + * An interior contour defines an interior boundary of the polygon (such as + * a hole). + * </UL> + * <b>GLU_UNKNOWN</b> + * <UL> + * An unknown contour is analyzed by the library to determine whether it is + * interior or exterior. + * </UL> + * <b>GLU_CCW, GLU_CW</b> + * <UL> + * The first <b>GLU_CCW</b> or <b>GLU_CW</b> 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 + * <b>GLU_CCW</b> or <b>GLU_CW</b>, then all contours must be of the same + * type (if they are not, then all <b>GLU_CCW</b> and <b>GLU_CW</b> contours + * will be changed to <b>GLU_UNKNOWN</b>). Note that there is no + * real difference between the <b>GLU_CCW</b> and <b>GLU_CW</b> contour + * types. + * </UL><P> + * + * To define the type of the first contour, you can call <b>gluNextContour</b> + * before describing the first contour. If you do not call + * <b>gluNextContour</b> before the first contour, the first contour is marked + * <b>GLU_EXTERIOR</b>.<P> + * + * <UL> + * <b>Note:</b> The <b>gluNextContour</b> function is obsolete and is + * provided for backward compatibility only. The <b>gluNextContour</b> + * function is mapped to {@link #gluTessEndContour + * gluTessEndContour} followed by + * {@link #gluTessBeginContour gluTessBeginContour}. + * </UL> + * + * @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); +} + +/***************************************************************************** + * <b>gluEndPolygon</b> 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 <b>gluEndPolygon</b> to signal the end of + * the definition. See the {@link #gluTessVertex + * gluTessVertex} and {@link #gluNextContour + * gluNextContour} reference pages for more details.<P> + * + * Once <b>gluEndPolygon</b> 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: <br> <code> void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); </code> */ +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: <br> <code> void gluDeleteQuadric(GLUquadric * quad); </code> */ +public void gluDeleteQuadric(GLUquadric quad) { +} + +/** Interface to C language function: <br> <code> void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); </code> */ +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: <br> <code> GLUquadric * gluNewQuadric(void); </code> */ +public GLUquadric gluNewQuadric() { + return new GLUquadricImpl(); +} + +/** Interface to C language function: <br> <code> void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); </code> */ +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: <br> <code> void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw); </code> */ +public void gluQuadricDrawStyle(GLUquadric quad, int draw) { + ((GLUquadricImpl) quad).setDrawStyle(draw); +} + +/** Interface to C language function: <br> <code> void gluQuadricNormals(GLUquadric * quad, GLenum normal); </code> */ +public void gluQuadricNormals(GLUquadric quad, int normal) { + ((GLUquadricImpl) quad).setNormals(normal); +} + +/** Interface to C language function: <br> <code> void gluQuadricOrientation(GLUquadric * quad, GLenum orientation); </code> */ +public void gluQuadricOrientation(GLUquadric quad, int orientation) { + ((GLUquadricImpl) quad).setOrientation(orientation); +} + +/** Interface to C language function: <br> <code> void gluQuadricTexture(GLUquadric * quad, GLboolean texture); </code> */ +public void gluQuadricTexture(GLUquadric quad, boolean texture) { + ((GLUquadricImpl) quad).setTextureFlag(texture); +} + +/** Interface to C language function: <br> <code> void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks); </code> */ +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: <br> <code> GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ); </code> */ +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: <br> <code> GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ); </code> */ +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: <br> <code> 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); </code> */ +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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ +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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ +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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ +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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ +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: <br> <code> 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); </code> */ +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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ +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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ +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 <GL/glu.h> # Raise GLException instead of RuntimeException in glue code RuntimeExceptionType GLException @@ -26,25 +46,6 @@ Opaque boolean GLboolean Opaque boolean BOOL # -# Some functions that return native byte pointers or accept them as -# arguments should have them auto-converted to Java Strings -# -ReturnsString gluGetString -ReturnsString gluErrorString -ArgumentIsString gluCheckExtension 0 1 - -# -# Some routines should only use the Java New IO package -# -#NIOOnly gluScaleImage -#NIOOnly gluBuild1DMipmaps -#NIOOnly gluBuild2DMipmaps -#NIOOnly gluBuild3DMipmaps -#NIOOnly gluBuild1DMipmapLevels -#NIOOnly gluBuild2DMipmapLevels -#NIOOnly gluBuild3DMipmapLevels - -# # Don't output #defines of GLU version identifier strings as constants, # because we don't need them java-side. # @@ -67,24 +68,38 @@ Ignore GLU_EXT_.+ # Javadoc for the GLU class ClassJavadoc GLU /** -ClassJavadoc GLU * Provides access to the OpenGL utility library routines. -ClassJavadoc GLU * See {@link GL} for more information. +ClassJavadoc GLU * Provides access to the OpenGL Utility Library (GLU). This library +ClassJavadoc GLU * provides standard methods for setting up view volumes, building +ClassJavadoc GLU * mipmaps and performing other common operations. +ClassJavadoc GLU * +ClassJavadoc GLU * <P> +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 <GL/glu.h> - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, byte[] data) - * C function: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmapLevels__IIIIIIII_3BJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jint level, jint base, jint max, jbyteArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPLEVELSPROC ptr_gluBuild1DMipmapLevels; - void * _ptr8 = NULL; - GLint _res; - ptr_gluBuild1DMipmapLevels = (PFNGLUBUILD1DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmapLevels != NULL); - if (data != NULL) { - _ptr8 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr8); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, short[] data) - * C function: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmapLevels__IIIIIIII_3SJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jint level, jint base, jint max, jshortArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPLEVELSPROC ptr_gluBuild1DMipmapLevels; - void * _ptr8 = NULL; - GLint _res; - ptr_gluBuild1DMipmapLevels = (PFNGLUBUILD1DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmapLevels != NULL); - if (data != NULL) { - _ptr8 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr8); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, int[] data) - * C function: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmapLevels__IIIIIIII_3IJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jint level, jint base, jint max, jintArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPLEVELSPROC ptr_gluBuild1DMipmapLevels; - void * _ptr8 = NULL; - GLint _res; - ptr_gluBuild1DMipmapLevels = (PFNGLUBUILD1DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmapLevels != NULL); - if (data != NULL) { - _ptr8 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr8); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, float[] data) - * C function: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmapLevels__IIIIIIII_3FJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jint level, jint base, jint max, jfloatArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPLEVELSPROC ptr_gluBuild1DMipmapLevels; - void * _ptr8 = NULL; - GLint _res; - ptr_gluBuild1DMipmapLevels = (PFNGLUBUILD1DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmapLevels != NULL); - if (data != NULL) { - _ptr8 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr8); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, java.nio.ByteBuffer data) - * C function: GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmapLevels__IIIIIIIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jint level, jint base, jint max, jobject data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPLEVELSPROC ptr_gluBuild1DMipmapLevels; - void * _ptr8 = NULL; - GLint _res; - if (data != NULL) { - _ptr8 = (void *) (*env)->GetDirectBufferAddress(env, data); - } else { - _ptr8 = NULL; - } - ptr_gluBuild1DMipmapLevels = (PFNGLUBUILD1DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmapLevels != NULL); - _res = (* ptr_gluBuild1DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr8); - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, byte[] data) - * C function: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmaps__IIIII_3BJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jbyteArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPSPROC ptr_gluBuild1DMipmaps; - void * _ptr5 = NULL; - GLint _res; - ptr_gluBuild1DMipmaps = (PFNGLUBUILD1DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmaps != NULL); - if (data != NULL) { - _ptr5 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (void *) _ptr5); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr5, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, short[] data) - * C function: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmaps__IIIII_3SJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jshortArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPSPROC ptr_gluBuild1DMipmaps; - void * _ptr5 = NULL; - GLint _res; - ptr_gluBuild1DMipmaps = (PFNGLUBUILD1DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmaps != NULL); - if (data != NULL) { - _ptr5 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (void *) _ptr5); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr5, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, int[] data) - * C function: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmaps__IIIII_3IJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jintArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPSPROC ptr_gluBuild1DMipmaps; - void * _ptr5 = NULL; - GLint _res; - ptr_gluBuild1DMipmaps = (PFNGLUBUILD1DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmaps != NULL); - if (data != NULL) { - _ptr5 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (void *) _ptr5); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr5, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, float[] data) - * C function: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmaps__IIIII_3FJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jfloatArray data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPSPROC ptr_gluBuild1DMipmaps; - void * _ptr5 = NULL; - GLint _res; - ptr_gluBuild1DMipmaps = (PFNGLUBUILD1DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmaps != NULL); - if (data != NULL) { - _ptr5 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild1DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (void *) _ptr5); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr5, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, java.nio.ByteBuffer data) - * C function: GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild1DMipmaps__IIIIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint format, jint type, jobject data, jlong glProcAddress) { - PFNGLUBUILD1DMIPMAPSPROC ptr_gluBuild1DMipmaps; - void * _ptr5 = NULL; - GLint _res; - if (data != NULL) { - _ptr5 = (void *) (*env)->GetDirectBufferAddress(env, data); - } else { - _ptr5 = NULL; - } - ptr_gluBuild1DMipmaps = (PFNGLUBUILD1DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild1DMipmaps != NULL); - _res = (* ptr_gluBuild1DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLenum) format, (GLenum) type, (void *) _ptr5); - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, byte[] data) - * C function: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmapLevels__IIIIIIIII_3BJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jint level, jint base, jint max, jbyteArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPLEVELSPROC ptr_gluBuild2DMipmapLevels; - void * _ptr9 = NULL; - GLint _res; - ptr_gluBuild2DMipmapLevels = (PFNGLUBUILD2DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmapLevels != NULL); - if (data != NULL) { - _ptr9 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr9); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr9, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, short[] data) - * C function: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmapLevels__IIIIIIIII_3SJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jint level, jint base, jint max, jshortArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPLEVELSPROC ptr_gluBuild2DMipmapLevels; - void * _ptr9 = NULL; - GLint _res; - ptr_gluBuild2DMipmapLevels = (PFNGLUBUILD2DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmapLevels != NULL); - if (data != NULL) { - _ptr9 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr9); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr9, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, int[] data) - * C function: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmapLevels__IIIIIIIII_3IJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jint level, jint base, jint max, jintArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPLEVELSPROC ptr_gluBuild2DMipmapLevels; - void * _ptr9 = NULL; - GLint _res; - ptr_gluBuild2DMipmapLevels = (PFNGLUBUILD2DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmapLevels != NULL); - if (data != NULL) { - _ptr9 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr9); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr9, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, float[] data) - * C function: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmapLevels__IIIIIIIII_3FJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jint level, jint base, jint max, jfloatArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPLEVELSPROC ptr_gluBuild2DMipmapLevels; - void * _ptr9 = NULL; - GLint _res; - ptr_gluBuild2DMipmapLevels = (PFNGLUBUILD2DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmapLevels != NULL); - if (data != NULL) { - _ptr9 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr9); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr9, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, java.nio.ByteBuffer data) - * C function: GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmapLevels__IIIIIIIIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jint level, jint base, jint max, jobject data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPLEVELSPROC ptr_gluBuild2DMipmapLevels; - void * _ptr9 = NULL; - GLint _res; - if (data != NULL) { - _ptr9 = (void *) (*env)->GetDirectBufferAddress(env, data); - } else { - _ptr9 = NULL; - } - ptr_gluBuild2DMipmapLevels = (PFNGLUBUILD2DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmapLevels != NULL); - _res = (* ptr_gluBuild2DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr9); - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, byte[] data) - * C function: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmaps__IIIIII_3BJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jbyteArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPSPROC ptr_gluBuild2DMipmaps; - void * _ptr6 = NULL; - GLint _res; - ptr_gluBuild2DMipmaps = (PFNGLUBUILD2DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmaps != NULL); - if (data != NULL) { - _ptr6 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (void *) _ptr6); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr6, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, short[] data) - * C function: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmaps__IIIIII_3SJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jshortArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPSPROC ptr_gluBuild2DMipmaps; - void * _ptr6 = NULL; - GLint _res; - ptr_gluBuild2DMipmaps = (PFNGLUBUILD2DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmaps != NULL); - if (data != NULL) { - _ptr6 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (void *) _ptr6); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr6, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, int[] data) - * C function: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmaps__IIIIII_3IJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jintArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPSPROC ptr_gluBuild2DMipmaps; - void * _ptr6 = NULL; - GLint _res; - ptr_gluBuild2DMipmaps = (PFNGLUBUILD2DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmaps != NULL); - if (data != NULL) { - _ptr6 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (void *) _ptr6); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr6, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, float[] data) - * C function: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmaps__IIIIII_3FJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jfloatArray data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPSPROC ptr_gluBuild2DMipmaps; - void * _ptr6 = NULL; - GLint _res; - ptr_gluBuild2DMipmaps = (PFNGLUBUILD2DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmaps != NULL); - if (data != NULL) { - _ptr6 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild2DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (void *) _ptr6); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr6, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, java.nio.ByteBuffer data) - * C function: GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild2DMipmaps__IIIIIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint format, jint type, jobject data, jlong glProcAddress) { - PFNGLUBUILD2DMIPMAPSPROC ptr_gluBuild2DMipmaps; - void * _ptr6 = NULL; - GLint _res; - if (data != NULL) { - _ptr6 = (void *) (*env)->GetDirectBufferAddress(env, data); - } else { - _ptr6 = NULL; - } - ptr_gluBuild2DMipmaps = (PFNGLUBUILD2DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild2DMipmaps != NULL); - _res = (* ptr_gluBuild2DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLenum) format, (GLenum) type, (void *) _ptr6); - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: 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) - * C 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); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmapLevels__IIIIIIIIII_3BJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jint level, jint base, jint max, jbyteArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPLEVELSPROC ptr_gluBuild3DMipmapLevels; - void * _ptr10 = NULL; - GLint _res; - ptr_gluBuild3DMipmapLevels = (PFNGLUBUILD3DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmapLevels != NULL); - if (data != NULL) { - _ptr10 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr10); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr10, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: 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) - * C 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); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmapLevels__IIIIIIIIII_3SJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jint level, jint base, jint max, jshortArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPLEVELSPROC ptr_gluBuild3DMipmapLevels; - void * _ptr10 = NULL; - GLint _res; - ptr_gluBuild3DMipmapLevels = (PFNGLUBUILD3DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmapLevels != NULL); - if (data != NULL) { - _ptr10 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr10); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr10, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: 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) - * C 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); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmapLevels__IIIIIIIIII_3IJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jint level, jint base, jint max, jintArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPLEVELSPROC ptr_gluBuild3DMipmapLevels; - void * _ptr10 = NULL; - GLint _res; - ptr_gluBuild3DMipmapLevels = (PFNGLUBUILD3DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmapLevels != NULL); - if (data != NULL) { - _ptr10 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr10); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr10, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: 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) - * C 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); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmapLevels__IIIIIIIIII_3FJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jint level, jint base, jint max, jfloatArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPLEVELSPROC ptr_gluBuild3DMipmapLevels; - void * _ptr10 = NULL; - GLint _res; - ptr_gluBuild3DMipmapLevels = (PFNGLUBUILD3DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmapLevels != NULL); - if (data != NULL) { - _ptr10 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr10); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr10, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: 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.ByteBuffer data) - * C 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); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmapLevels__IIIIIIIIIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jint level, jint base, jint max, jobject data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPLEVELSPROC ptr_gluBuild3DMipmapLevels; - void * _ptr10 = NULL; - GLint _res; - if (data != NULL) { - _ptr10 = (void *) (*env)->GetDirectBufferAddress(env, data); - } else { - _ptr10 = NULL; - } - ptr_gluBuild3DMipmapLevels = (PFNGLUBUILD3DMIPMAPLEVELSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmapLevels != NULL); - _res = (* ptr_gluBuild3DMipmapLevels) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (GLint) level, (GLint) base, (GLint) max, (void *) _ptr10); - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data) - * C function: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmaps__IIIIIII_3BJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jbyteArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPSPROC ptr_gluBuild3DMipmaps; - void * _ptr7 = NULL; - GLint _res; - ptr_gluBuild3DMipmaps = (PFNGLUBUILD3DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmaps != NULL); - if (data != NULL) { - _ptr7 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (void *) _ptr7); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr7, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data) - * C function: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmaps__IIIIIII_3SJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jshortArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPSPROC ptr_gluBuild3DMipmaps; - void * _ptr7 = NULL; - GLint _res; - ptr_gluBuild3DMipmaps = (PFNGLUBUILD3DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmaps != NULL); - if (data != NULL) { - _ptr7 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (void *) _ptr7); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr7, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data) - * C function: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmaps__IIIIIII_3IJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jintArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPSPROC ptr_gluBuild3DMipmaps; - void * _ptr7 = NULL; - GLint _res; - ptr_gluBuild3DMipmaps = (PFNGLUBUILD3DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmaps != NULL); - if (data != NULL) { - _ptr7 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (void *) _ptr7); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr7, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data) - * C function: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmaps__IIIIIII_3FJ(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jfloatArray data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPSPROC ptr_gluBuild3DMipmaps; - void * _ptr7 = NULL; - GLint _res; - ptr_gluBuild3DMipmaps = (PFNGLUBUILD3DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmaps != NULL); - if (data != NULL) { - _ptr7 = (void *) (*env)->GetPrimitiveArrayCritical(env, data, NULL); - } - _res = (* ptr_gluBuild3DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (void *) _ptr7); - if (data != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, data, _ptr7, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, java.nio.ByteBuffer data) - * C function: GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluBuild3DMipmaps__IIIIIIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint target, jint internalFormat, jint width, jint height, jint depth, jint format, jint type, jobject data, jlong glProcAddress) { - PFNGLUBUILD3DMIPMAPSPROC ptr_gluBuild3DMipmaps; - void * _ptr7 = NULL; - GLint _res; - if (data != NULL) { - _ptr7 = (void *) (*env)->GetDirectBufferAddress(env, data); - } else { - _ptr7 = NULL; - } - ptr_gluBuild3DMipmaps = (PFNGLUBUILD3DMIPMAPSPROC) (intptr_t) glProcAddress; - assert(ptr_gluBuild3DMipmaps != NULL); - _res = (* ptr_gluBuild3DMipmaps) ((GLenum) target, (GLint) internalFormat, (GLsizei) width, (GLsizei) height, (GLsizei) depth, (GLenum) format, (GLenum) type, (void *) _ptr7); - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, byte[] dataIn, int wOut, int hOut, int typeOut, byte[] dataOut) - * C function: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluScaleImage__IIII_3BIII_3BJ(JNIEnv *env, jobject _unused, jint format, jint wIn, jint hIn, jint typeIn, jbyteArray dataIn, jint wOut, jint hOut, jint typeOut, jbyteArray dataOut, jlong glProcAddress) { - PFNGLUSCALEIMAGEPROC ptr_gluScaleImage; - void * _ptr4 = NULL; - GLvoid * _ptr8 = NULL; - GLint _res; - ptr_gluScaleImage = (PFNGLUSCALEIMAGEPROC) (intptr_t) glProcAddress; - assert(ptr_gluScaleImage != NULL); - if (dataIn != NULL) { - _ptr4 = (void *) (*env)->GetPrimitiveArrayCritical(env, dataIn, NULL); - } - if (dataOut != NULL) { - _ptr8 = (GLvoid *) (*env)->GetPrimitiveArrayCritical(env, dataOut, NULL); - } - _res = (* ptr_gluScaleImage) ((GLenum) format, (GLsizei) wIn, (GLsizei) hIn, (GLenum) typeIn, (void *) _ptr4, (GLsizei) wOut, (GLsizei) hOut, (GLenum) typeOut, (GLvoid *) _ptr8); - if (dataIn != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataIn, _ptr4, JNI_ABORT); - } - if (dataOut != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataOut, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, short[] dataIn, int wOut, int hOut, int typeOut, short[] dataOut) - * C function: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluScaleImage__IIII_3SIII_3SJ(JNIEnv *env, jobject _unused, jint format, jint wIn, jint hIn, jint typeIn, jshortArray dataIn, jint wOut, jint hOut, jint typeOut, jshortArray dataOut, jlong glProcAddress) { - PFNGLUSCALEIMAGEPROC ptr_gluScaleImage; - void * _ptr4 = NULL; - GLvoid * _ptr8 = NULL; - GLint _res; - ptr_gluScaleImage = (PFNGLUSCALEIMAGEPROC) (intptr_t) glProcAddress; - assert(ptr_gluScaleImage != NULL); - if (dataIn != NULL) { - _ptr4 = (void *) (*env)->GetPrimitiveArrayCritical(env, dataIn, NULL); - } - if (dataOut != NULL) { - _ptr8 = (GLvoid *) (*env)->GetPrimitiveArrayCritical(env, dataOut, NULL); - } - _res = (* ptr_gluScaleImage) ((GLenum) format, (GLsizei) wIn, (GLsizei) hIn, (GLenum) typeIn, (void *) _ptr4, (GLsizei) wOut, (GLsizei) hOut, (GLenum) typeOut, (GLvoid *) _ptr8); - if (dataIn != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataIn, _ptr4, JNI_ABORT); - } - if (dataOut != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataOut, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, int[] dataIn, int wOut, int hOut, int typeOut, int[] dataOut) - * C function: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluScaleImage__IIII_3IIII_3IJ(JNIEnv *env, jobject _unused, jint format, jint wIn, jint hIn, jint typeIn, jintArray dataIn, jint wOut, jint hOut, jint typeOut, jintArray dataOut, jlong glProcAddress) { - PFNGLUSCALEIMAGEPROC ptr_gluScaleImage; - void * _ptr4 = NULL; - GLvoid * _ptr8 = NULL; - GLint _res; - ptr_gluScaleImage = (PFNGLUSCALEIMAGEPROC) (intptr_t) glProcAddress; - assert(ptr_gluScaleImage != NULL); - if (dataIn != NULL) { - _ptr4 = (void *) (*env)->GetPrimitiveArrayCritical(env, dataIn, NULL); - } - if (dataOut != NULL) { - _ptr8 = (GLvoid *) (*env)->GetPrimitiveArrayCritical(env, dataOut, NULL); - } - _res = (* ptr_gluScaleImage) ((GLenum) format, (GLsizei) wIn, (GLsizei) hIn, (GLenum) typeIn, (void *) _ptr4, (GLsizei) wOut, (GLsizei) hOut, (GLenum) typeOut, (GLvoid *) _ptr8); - if (dataIn != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataIn, _ptr4, JNI_ABORT); - } - if (dataOut != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataOut, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, float[] dataIn, int wOut, int hOut, int typeOut, float[] dataOut) - * C function: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluScaleImage__IIII_3FIII_3FJ(JNIEnv *env, jobject _unused, jint format, jint wIn, jint hIn, jint typeIn, jfloatArray dataIn, jint wOut, jint hOut, jint typeOut, jfloatArray dataOut, jlong glProcAddress) { - PFNGLUSCALEIMAGEPROC ptr_gluScaleImage; - void * _ptr4 = NULL; - GLvoid * _ptr8 = NULL; - GLint _res; - ptr_gluScaleImage = (PFNGLUSCALEIMAGEPROC) (intptr_t) glProcAddress; - assert(ptr_gluScaleImage != NULL); - if (dataIn != NULL) { - _ptr4 = (void *) (*env)->GetPrimitiveArrayCritical(env, dataIn, NULL); - } - if (dataOut != NULL) { - _ptr8 = (GLvoid *) (*env)->GetPrimitiveArrayCritical(env, dataOut, NULL); - } - _res = (* ptr_gluScaleImage) ((GLenum) format, (GLsizei) wIn, (GLsizei) hIn, (GLenum) typeIn, (void *) _ptr4, (GLsizei) wOut, (GLsizei) hOut, (GLenum) typeOut, (GLvoid *) _ptr8); - if (dataIn != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataIn, _ptr4, JNI_ABORT); - } - if (dataOut != NULL) { - (*env)->ReleasePrimitiveArrayCritical(env, dataOut, _ptr8, JNI_ABORT); - } - return _res; -} - - -/* Java->C glue code: - * Java package: net.java.games.jogl.impl.GLUImpl - * Java method: int dispatch_gluScaleImage(int format, int wIn, int hIn, int typeIn, java.nio.ByteBuffer dataIn, int wOut, int hOut, int typeOut, java.nio.ByteBuffer dataOut) - * C function: GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); - */ -JNIEXPORT jint JNICALL -Java_net_java_games_jogl_impl_GLUImpl_dispatch_1gluScaleImage__IIIILjava_nio_Buffer_2IIILjava_nio_Buffer_2J(JNIEnv *env, jobject _unused, jint format, jint wIn, jint hIn, jint typeIn, jobject dataIn, jint wOut, jint hOut, jint typeOut, jobject dataOut, jlong glProcAddress) { - PFNGLUSCALEIMAGEPROC ptr_gluScaleImage; - void * _ptr4 = NULL; - GLvoid * _ptr8 = NULL; - GLint _res; - if (dataIn != NULL) { - _ptr4 = (void *) (*env)->GetDirectBufferAddress(env, dataIn); - } else { - _ptr4 = NULL; - } - if (dataOut != NULL) { - _ptr8 = (GLvoid *) (*env)->GetDirectBufferAddress(env, dataOut); - } else { - _ptr8 = NULL; - } - ptr_gluScaleImage = (PFNGLUSCALEIMAGEPROC) (intptr_t) glProcAddress; - assert(ptr_gluScaleImage != NULL); - _res = (* ptr_gluScaleImage) ((GLenum) format, (GLsizei) wIn, (GLsizei) hIn, (GLenum) typeIn, (void *) _ptr4, (GLsizei) wOut, (GLsizei) hOut, (GLenum) typeOut, (GLvoid *) _ptr8); - return _res; -} diff --git a/make/glu-impl-common-CustomJavaCode.java b/make/glu-impl-common-CustomJavaCode.java deleted file mode 100644 index 0706aa390..000000000 --- a/make/glu-impl-common-CustomJavaCode.java +++ /dev/null @@ -1,1426 +0,0 @@ -private static boolean useJavaMipmapCode = true; - -static { - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - String val = System.getProperty("jogl.glu.nojava"); - if (val != null && !val.toLowerCase().equals("false")) { - useJavaMipmapCode = false; - } - return null; - } - }); -} - -/** Indicates whether the given GLU routine is available to be called. */ -public boolean isFunctionAvailable(String gluFunctionName) -{ - return (gluProcAddressTable.getAddressFor(gluFunctionName) != 0); -} - -private GLUProcAddressTable gluProcAddressTable; -private GL gl; - -public GLUImpl(GLUProcAddressTable gluProcAddressTable) -{ - this.gluProcAddressTable = gluProcAddressTable; - this.project = new Project(); -} - -// Used for pure-Java port of GLU -public void setGL(GL gl) { - this.gl = gl; -} - -//---------------------------------------------------------------------- -// Tesselator functionality -// - -public GLUtesselator gluNewTess() { - return GLUtesselatorImpl.gluNewTess(); -} - -public void gluDeleteTess(GLUtesselator tesselator) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluDeleteTess(); -} - -public void gluTessProperty(GLUtesselator tesselator, int which, double value) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessProperty(which, value); -} - -public void gluGetTessProperty(GLUtesselator tesselator, int which, double[] value) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluGetTessProperty(which, value); -} - -public void gluTessNormal(GLUtesselator tesselator, double x, double y, double z) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessNormal(x, y, z); -} - -public void gluTessCallback(GLUtesselator tesselator, int which, GLUtesselatorCallback aCallback) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessCallback(which, aCallback); -} - -public void gluTessVertex(GLUtesselator tesselator, double[] coords, Object data) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessVertex(coords, data); -} - -public void gluTessBeginPolygon(GLUtesselator tesselator, Object data) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessBeginPolygon(data); -} - -public void gluTessBeginContour(GLUtesselator tesselator) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessBeginContour(); -} - -public void gluTessEndContour(GLUtesselator tesselator) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessEndContour(); -} - -public void gluTessEndPolygon(GLUtesselator tesselator) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluTessEndPolygon(); -} - -public void gluBeginPolygon(GLUtesselator tesselator) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluBeginPolygon(); -} - -public void gluNextContour(GLUtesselator tesselator, int type) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluNextContour(type); -} - -public void gluEndPolygon(GLUtesselator tesselator) { - GLUtesselatorImpl tess = (GLUtesselatorImpl) tesselator; - tess.gluEndPolygon(); -} - -//---------------------------------------------------------------------- -// Quadric functionality -// - -/** Interface to C language function: <br> <code> void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); </code> */ -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: <br> <code> void gluDeleteQuadric(GLUquadric * quad); </code> */ -public void gluDeleteQuadric(GLUquadric quad) { -} - -/** Interface to C language function: <br> <code> void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); </code> */ -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: <br> <code> GLUquadric * gluNewQuadric(void); </code> */ -public GLUquadric gluNewQuadric() { - return new GLUquadricImpl(); -} - -/** Interface to C language function: <br> <code> void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); </code> */ -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: <br> <code> void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw); </code> */ -public void gluQuadricDrawStyle(GLUquadric quad, int draw) { - ((GLUquadricImpl) quad).setDrawStyle(draw); -} - -/** Interface to C language function: <br> <code> void gluQuadricNormals(GLUquadric * quad, GLenum normal); </code> */ -public void gluQuadricNormals(GLUquadric quad, int normal) { - ((GLUquadricImpl) quad).setNormals(normal); -} - -/** Interface to C language function: <br> <code> void gluQuadricOrientation(GLUquadric * quad, GLenum orientation); </code> */ -public void gluQuadricOrientation(GLUquadric quad, int orientation) { - ((GLUquadricImpl) quad).setOrientation(orientation); -} - -/** Interface to C language function: <br> <code> void gluQuadricTexture(GLUquadric * quad, GLboolean texture); </code> */ -public void gluQuadricTexture(GLUquadric quad, boolean texture) { - ((GLUquadricImpl) quad).setTextureFlag(texture); -} - -/** Interface to C language function: <br> <code> void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> 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); </code> */ - 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 <br>: <code> 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); </code> */ - 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: <br> <code> 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); </code> */ - 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 <br>: <code> 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); </code> */ - 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: <br> <code> 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); </code> */ - 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 <br>: <code> 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); </code> */ - 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: <br> <code> 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); </code> */ - 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 <br>: <code> 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); </code> */ - 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: <br> <code> 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); </code> */ - 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 <br>: <code> 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); </code> */ - 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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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 <br>: <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ - 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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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 <br>: <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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 <br>: <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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 <br>: <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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 <br>: <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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 <br>: <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ - 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-win32-GLU13Hacks.cfg b/make/glu-impl-win32-GLU13Hacks.cfg deleted file mode 100644 index 186ee5ca1..000000000 --- a/make/glu-impl-win32-GLU13Hacks.cfg +++ /dev/null @@ -1,122 +0,0 @@ -#### FIXME!!!!!!! -# win32 only ships with GLU 1.2 support so we can't link -# the native JNI bindings. -# -# For now, don't autogenerate bindings for these GLU 1.3 routines on -# win32. What we'll do instead is implement them by hand, and make -# them throw exceptions for the time being until we have a GLU1.3 -# solution for win32. -Ignore gluBuild(1|2|3)DMipmapLevels -Ignore gluBuild3DMipmaps -Ignore gluCheckExtension - -CustomJavaCode GLUImpl /** Entry point to C language function: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> 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); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *CustomJavaCode GLUImpl data); </code>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: <br> <code> GLboolean gluCheckExtension(const GLubyte *CustomJavaCode GLUImpl extName, const GLubyte *CustomJavaCode GLUImpl extString); </code>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-interface-common-CustomJavaCode.java b/make/glu-interface-common-CustomJavaCode.java deleted file mode 100644 index 8be08f0a6..000000000 --- a/make/glu-interface-common-CustomJavaCode.java +++ /dev/null @@ -1,982 +0,0 @@ -//---------------------------------------------------------------------- -// Projection routines -// - -/** Interface to C language function: <br> <code> GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ); </code> */ -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: <br> <code> GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ); </code> */ -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: <br> <code> 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); </code> */ -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 -// - -/***************************************************************************** - * <b>gluBeginPolygon</b> and {@link net.java.games.jogl.GLU#gluEndPolygon - * gluEndPolygon} delimit the definition of a nonconvex polygon. To define - * such a polygon, first call <b>gluBeginPolygon</b>. 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.<P> - * - * 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); - - -/***************************************************************************** - * <b>gluDeleteTess</b> 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); - - -/***************************************************************************** - * <b>gluEndPolygon</b> 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 <b>gluEndPolygon</b> 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.<P> - * - * Once <b>gluEndPolygon</b> 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); - - -/***************************************************************************** - * <b>gluGetTessProperty</b> 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 <b>GLU_TESS_WINDING_RULE</b>, <b>GLU_TESS_BOUNDARY_ONLY</b>, - * and <b>GLU_TESS_TOLERANCES</b>. - * @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); - - -/***************************************************************************** - * <b>gluNewTess</b> 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(); - - -/***************************************************************************** - * <b>gluNextContour</b> 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 - * <b>gluNextContour</b> 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.<P> - * - * The type parameter defines what type of contour follows. The following - * values are valid. <P> - * - * <b>GLU_EXTERIOR</b> - * <UL> - * An exterior contour defines an exterior boundary of the polygon. - * </UL> - * <b>GLU_INTERIOR</b> - * <UL> - * An interior contour defines an interior boundary of the polygon (such as - * a hole). - * </UL> - * <b>GLU_UNKNOWN</b> - * <UL> - * An unknown contour is analyzed by the library to determine whether it is - * interior or exterior. - * </UL> - * <b>GLU_CCW, GLU_CW</b> - * <UL> - * The first <b>GLU_CCW</b> or <b>GLU_CW</b> 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 - * <b>GLU_CCW</b> or <b>GLU_CW</b>, then all contours must be of the same - * type (if they are not, then all <b>GLU_CCW</b> and <b>GLU_CW</b> contours - * will be changed to <b>GLU_UNKNOWN</b>). Note that there is no - * real difference between the <b>GLU_CCW</b> and <b>GLU_CW</b> contour - * types. - * </UL><P> - * - * To define the type of the first contour, you can call <b>gluNextContour</b> - * before describing the first contour. If you do not call - * <b>gluNextContour</b> before the first contour, the first contour is marked - * <b>GLU_EXTERIOR</b>.<P> - * - * <UL> - * <b>Note:</b> The <b>gluNextContour</b> function is obsolete and is - * provided for backward compatibility only. The <b>gluNextContour</b> - * function is mapped to {@link net.java.games.jogl.GLU#gluTessEndContour - * gluTessEndContour} followed by - * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour}. - * </UL> - * - * @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); - - -/***************************************************************************** - * <b>gluTessBeginContour</b> and - * {@link net.java.games.jogl.GLU#gluTessEndContour gluTessEndContour} delimit - * the definition of a polygon contour. Within each - * <b>gluTessBeginContour</b>/ - * {@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. <b>gluTessBeginContour</b> - * 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); - - -/***************************************************************************** - * <b>gluTessBeginPolygon</b> and - * {@link net.java.games.jogl.GLU#gluTessEndPolygon gluTessEndPolygon} delimit - * the definition of a convex, concave or self-intersecting polygon. Within - * each <b>gluTessBeginPolygon</b>/ - * {@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.<P> - * - * <b>data</b> 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.<P> - * - * 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); - - -/***************************************************************************** - * <b>gluTessCallback</b> 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 <i>aCallback</i> is null, then the existing callback - * becomes undefined.<P> - * - * 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:<P> - * - * <b>GLU_TESS_BEGIN</b> - * <UL> - * 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 - * <b>GLU_TESS_BOUNDARY_ONLY</b> property is set to <b>GL_FALSE</b>, then - * the argument is set to either <b>GL_TRIANGLE_FAN</b>, - * <b>GL_TRIANGLE_STRIP</b>, or <b>GL_TRIANGLES</b>. If the - * <b>GLU_TESS_BOUNDARY_ONLY</b> property is set to <b>GL_TRUE</b>, then the - * argument will be set to <b>GL_LINE_LOOP</b>. The method prototype for - * this callback is: - * </UL> - * - * <PRE> - * void begin(int type);</PRE><P> - * - * <b>GLU_TESS_BEGIN_DATA</b> - * <UL> - * The same as the <b>GLU_TESS_BEGIN</b> 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: - * </UL> - * - * <PRE> - * void beginData(int type, Object polygonData);</PRE> - * - * <b>GLU_TESS_EDGE_FLAG</b> - * <UL> - * 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 <b>GL_TRUE</b>, 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 <b>GL_FALSE</b>, 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.<P> - * - * Since triangle fans and triangle strips do not support edge flags, the - * begin callback is not called with <b>GL_TRIANGLE_FAN</b> or - * <b>GL_TRIANGLE_STRIP</b> 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: - * </UL> - * - * <PRE> - * void edgeFlag(boolean boundaryEdge);</PRE> - * - * <b>GLU_TESS_EDGE_FLAG_DATA</b> - * <UL> - * The same as the <b>GLU_TESS_EDGE_FLAG</b> 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: - * </UL> - * - * <PRE> - * void edgeFlagData(boolean boundaryEdge, Object polygonData);</PRE> - * - * <b>GLU_TESS_VERTEX</b> - * <UL> - * 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: - * </UL> - * - * <PRE> - * void vertex(Object vertexData);</PRE> - * - * <b>GLU_TESS_VERTEX_DATA</b> - * <UL> - * The same as the <b>GLU_TESS_VERTEX</b> 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: - * </UL> - * - * <PRE> - * void vertexData(Object vertexData, Object polygonData);</PRE> - * - * <b>GLU_TESS_END</b> - * <UL> - * 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: - * </UL> - * - * <PRE> - * void end();</PRE> - * - * <b>GLU_TESS_END_DATA</b> - * <UL> - * The same as the <b>GLU_TESS_END</b> 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: - * </UL> - * - * <PRE> - * void endData(Object polygonData);</PRE> - * - * <b>GLU_TESS_COMBINE</b> - * <UL> - * 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: - * </UL> - * - * <PRE> - * void combine(double[] coords, Object[] data, - * float[] weight, Object[] outData);</PRE> - * - * <UL> - * The vertex is defined as a linear combination of up to four existing - * vertices, stored in <i>data</i>. The coefficients of the linear - * combination are given by <i>weight</i>; these weights always add up to 1. - * All vertex pointers are valid even when some of the weights are 0. - * <i>coords</i> gives the location of the new vertex.<P> - * - * The user must allocate another vertex, interpolate parameters using - * <i>data</i> and <i>weight</i>, and return the new vertex pointer - * in <i>outData</i>. 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.<P> - * - * For example, if the polygon lies in an arbitrary plane in 3-space, and a - * color is associated with each vertex, the <b>GLU_TESS_COMBINE</b> - * callback might look like this: - * </UL> - * <PRE> - * 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; - * }</PRE> - * - * <UL> - * If the tessellation detects an intersection, then the - * <b>GLU_TESS_COMBINE</b> or <b>GLU_TESS_COMBINE_DATA</b> callback (see - * below) must be defined, and it must write a non-null reference into - * <i>outData</i>. Otherwise the <b>GLU_TESS_NEED_COMBINE_CALLBACK</b> error - * occurs, and no output is generated. - * </UL> - * - * <b>GLU_TESS_COMBINE_DATA</b> - * <UL> - * The same as the <b>GLU_TESS_COMBINE</b> 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: - * </UL> - * - * <PRE> - * void combineData(double[] coords, Object[] data, - float[] weight, Object[] outData, - Object polygonData);</PRE> - * - * <b>GLU_TESS_ERROR</b> - * <UL> - * 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 <b>GLU_TESS_MISSING_BEGIN_POLYGON</b>, - * <b>GLU_TESS_MISSING_END_POLYGON</b>, - * <b>GLU_TESS_MISSING_BEGIN_CONTOUR</b>, - * <b>GLU_TESS_MISSING_END_CONTOUR</b>, <b>GLU_TESS_COORD_TOO_LARGE</b>, - * <b>GLU_TESS_NEED_COMBINE_CALLBACK</b> or <b>GLU_OUT_OF_MEMORY</b>. - * 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: - * </UL> - * - * <PRE> - * void error(int errnum);</PRE> - * - * <UL> - * The GLU library will recover from the first four errors by inserting the - * missing call(s). <b>GLU_TESS_COORD_TOO_LARGE</b> indicates that some - * vertex coordinate exceeded the predefined constant - * <b>GLU_TESS_MAX_COORD</b> 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.) - * <b>GLU_TESS_NEED_COMBINE_CALLBACK</b> indicates that the tessellation - * detected an intersection between two edges in the input data, and the - * <b>GLU_TESS_COMBINE</b> or <b>GLU_TESS_COMBINE_DATA</b> callback was not - * provided. No output is generated. <b>GLU_OUT_OF_MEMORY</b> indicates that - * there is not enough memory so no output is generated. - * </UL> - * - * <b>GLU_TESS_ERROR_DATA</b> - * <UL> - * 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: - * </UL> - * - * <PRE> - * void errorData(int errnum, Object polygonData);</PRE> - * - * @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: <b>GLU_TESS_BEGIN</b>, <b>GLU_TESS_BEGIN_DATA</b>, - * <b>GLU_TESS_EDGE_FLAG</b>, <b>GLU_TESS_EDGE_FLAG_DATA</b>, - * <b>GLU_TESS_VERTEX</b>, <b>GLU_TESS_VERTEX_DATA</b>, - * <b>GLU_TESS_END</b>, <b>GLU_TESS_END_DATA</b>, - * <b>GLU_TESS_COMBINE</b>, <b>GLU_TESS_COMBINE_DATA</b>, - * <b>GLU_TESS_ERROR</b>, and <b>GLU_TESS_ERROR_DATA</b>. - * @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); - - -/***************************************************************************** - * <b>gluTessEndContour</b> 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}/ - * <b>gluTessEndContour</b> 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); - - -/***************************************************************************** - * <b>gluTessEndPolygon</b> 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}/<b>gluTessEndPolygon</b> 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.<P> - * - * Once <b>gluTessEndPolygon</b> 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); - - -/***************************************************************************** - * <b>gluTessNormal</b> 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 - * <b>gluTessNormal</b>(tess, 0.0, 0.0, 0.0) before rendering any polygons.<P> - * - * 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).<P> - * - * The supplied normal persists until it is changed by another call to - * <b>gluTessNormal</b>. - * - * @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); - - -/***************************************************************************** - * <b>gluTessProperty</b> 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 <i>which</i> are as - * follows:<P> - * - * <b>GLU_TESS_WINDING_RULE</b> - * <UL> - * Determines which parts of the polygon are on the "interior". - * <em>value</em> may be set to one of - * <BR><b>GLU_TESS_WINDING_ODD</b>, - * <BR><b>GLU_TESS_WINDING_NONZERO</b>, - * <BR><b>GLU_TESS_WINDING_POSITIVE</b>, or - * <BR><b>GLU_TESS_WINDING_NEGATIVE</b>, or - * <BR><b>GLU_TESS_WINDING_ABS_GEQ_TWO</b>.<P> - * - * 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.<P> - * - * 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.<P> - * - * 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. - * </UL> - * <BR><b>GLU_TESS_BOUNDARY_ONLY</b> - * <UL> - * 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 <b>GLU_TESS_BEGIN</b> and <b>GLU_TESS_BEGIN_DATA</b> - * callbacks use the type GL_LINE_LOOP for each contour. - * </UL> - * <BR><b>GLU_TESS_TOLERANCE</b> - * <UL> - * 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.<P> - * - * 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.<P> - * - * 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. - * </UL> - * - * @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 - * <b>GLU_TESS_WINDING_RULE</b>, <b>GLU_TESS_BOUNDARDY_ONLY</b>, - * <b>GLU_TESS_TOLERANCE</b>. - * @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); - - -/***************************************************************************** - * <b>gluTessVertex</b> describes a vertex on a polygon that the program - * defines. Successive <b>gluTessVertex</b> calls describe a closed contour. - * For example, to describe a quadrilateral <b>gluTessVertex</b> should be - * called four times. <b>gluTessVertex</b> can only be called between - * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessBeginContour} and - * {@link net.java.games.jogl.GLU#gluTessBeginContour gluTessEndContour}.<P> - * - * <b>data</b> 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 - * <b>GLU_TESS_VERTEX</b> or <b>GLU_TESS_VERTEX_DATA</b> 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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, byte[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, short[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, int[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, float[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data); </code> */ -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: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, byte[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, short[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, int[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, float[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, java.nio.Buffer data); - -/** Interface to C language function: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> 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); </code> */ -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: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, byte[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, short[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, int[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, float[] data); - -/** Interface to C language function: <br> <code> GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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: <br> <code> GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut); </code> */ -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 <i>callable</i> on the machine running the - * program and <i>available</i> on the current display.<P> - * - * A GLU function is <i>callable</i> if it is a GLU core- or extension-function - * that is supported by the underlying GLU implementation. The function is - * <i>available</i> if the OpenGL implementation on the display meets the - * requirements of the GLU function being called (because GLU functions utilize - * OpenGL functions). <P> - * - * Whether or not a GLU function is <i>callable</i> is determined as follows: - * <ul> - * <li>If the function is a GLU core function (i.e., not an - * extension), <code>gluGetString(GLU_VERSION)</code> 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. - * - * <li> If the function is a GLU extension, the function name is - * cross-referenced with the list returned by - * <code>gluGetString(GLU_EXTENSIONS)</code> to see if the function is one of - * the extensions that is supported by the underlying GLU implementation. - * </ul> - * - * Whether or not a GLU function is <i>available</i> is determined as follows: - * <ul> - * <li>If the function is a GLU core function then the function is first - * cross-referenced with the GLU specifications to find the minimum GLU - * version required to <i>call</i> that GLU function. Then the following table - * is consulted to determine the minimum GL version required for that version - * of GLU: - * <ul> - * <li> GLU 1.0 requires OpenGL 1.0 - * <li> GLU 1.1 requires OpenGL 1.0 - * <li> GLU 1.2 requires OpenGL 1.1 - * <li> GLU 1.3 requires OpenGL 1.2 - * </ul> - * Finally, <code>glGetString(GL_VERSION)</code> 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 <i>available</i> on the display. - * - * <li> If the function is a GLU extension, the function name is - * cross-referenced with the list returned by - * <code>gluGetString(GLU_EXTENSIONS)</code> to see if the function is one of - * the extensions that is supported by the underlying GLU implementation. - * </ul> - * - * <b>NOTE:</b>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 <code> - * gluNurbsCallbackDataEXT(GLUnurbs, GLvoid)</code> extension is available). - */ -public boolean isFunctionAvailable(String gluFunctionName); diff --git a/make/glu-impl-macosx.cfg b/make/glu-macosx.cfg index 21e9b3700..ef106a3eb 100644..100755 --- a/make/glu-impl-macosx.cfg +++ b/make/glu-macosx.cfg @@ -6,4 +6,4 @@ CustomCCode #include <jni.h> CustomCCode #include </usr/include/machine/types.h> -Include glu-impl-common.cfg +Include glu-common.cfg diff --git a/make/glu-impl-win32.cfg b/make/glu-win32.cfg index 983513712..5221a5c01 100644..100755 --- a/make/glu-impl-win32.cfg +++ b/make/glu-win32.cfg @@ -11,9 +11,5 @@ CustomCCode #if _MSC_VER <= 1200 CustomCCode typedef int intptr_t; CustomCCode #endif -Include glu-impl-common.cfg +Include glu-common.cfg -# FIXME!!!! -# Include some hacks to get around the fact that GLU1.3 is not yet -# supported in Windows distributions. -# Include glu-impl-win32-GLU13Hacks.cfg diff --git a/make/glu-impl-x11.cfg b/make/glu-x11.cfg index 35fc7034d..ec7b1bce4 100644..100755 --- a/make/glu-impl-x11.cfg +++ b/make/glu-x11.cfg @@ -3,4 +3,5 @@ CustomCCode #include <inttypes.h> -Include glu-impl-common.cfg +Include glu-common.cfg + diff --git a/make/glu.cfg b/make/glu.cfg deleted file mode 100644 index d4374a127..000000000 --- a/make/glu.cfg +++ /dev/null @@ -1,9 +0,0 @@ -# This .cfg file is used to generate the GLU interface for all -# platforms. - -Style InterfaceOnly - -Include glu-common.cfg - -# Custom Java code for GLU interface -IncludeAs CustomJavaCode GLU glu-interface-common-CustomJavaCode.java diff --git a/make/glx-x11.cfg b/make/glx-x11.cfg index 39098f0a8..fd381760e 100644 --- a/make/glx-x11.cfg +++ b/make/glx-x11.cfg @@ -1,6 +1,6 @@ # This .cfg file is used to generate the interface to the GLX routines # used internally by the X11GLContext implementation. -Package net.java.games.jogl.impl.x11 +Package com.sun.opengl.impl.x11 JavaClass GLX Style allstatic Include gl-common-x11.cfg @@ -30,15 +30,15 @@ ArgumentIsString XOpenDisplay 0 CustomJavaCode GLX public static native int DefaultScreen(long display); CustomJavaCode GLX public static native long RootWindow(long display, int screen); CustomCCode JNIEXPORT jlong JNICALL -CustomCCode Java_net_java_games_jogl_impl_x11_GLX_DefaultScreen(JNIEnv *env, jclass _unused, jlong display) { +CustomCCode Java_com_sun_opengl_impl_x11_GLX_DefaultScreen(JNIEnv *env, jclass _unused, jlong display) { CustomCCode return DefaultScreen((Display*) (intptr_t) display); CustomCCode } CustomCCode JNIEXPORT jlong JNICALL -CustomCCode Java_net_java_games_jogl_impl_x11_GLX_RootWindow(JNIEnv *env, jclass _unused, jlong display, jint screen) { +CustomCCode Java_com_sun_opengl_impl_x11_GLX_RootWindow(JNIEnv *env, jclass _unused, jlong display, jint screen) { CustomCCode return RootWindow((Display*) (intptr_t) display, screen); CustomCCode } CustomCCode JNIEXPORT jlong JNICALL -CustomCCode Java_net_java_games_jogl_impl_x11_GLX_dlsym(JNIEnv *env, jclass _unused, jstring name) { +CustomCCode Java_com_sun_opengl_impl_x11_GLX_dlsym(JNIEnv *env, jclass _unused, jstring name) { CustomCCode const jbyte* chars; CustomCCode void* res; CustomCCode chars = (*env)->GetStringUTFChars(env, name, NULL); @@ -47,6 +47,22 @@ CustomCCode (*env)->ReleaseStringUTFChars(env, name, chars); CustomCCode return (jlong) ((intptr_t) res); CustomCCode } +# Get returned array's capacity from XGetVisualInfo to be correct +TemporaryCVariableDeclaration XGetVisualInfo int count; +TemporaryCVariableAssignment XGetVisualInfo count = _ptr3[0]; +ReturnValueCapacity XGetVisualInfo count * sizeof(XVisualInfo) +# FIXME: this is terrible but currently needed because we have two +# overloadings for the third argument (IntBuffer and int[]) and can't +# specify different glue code for different overloadings +# +# The NoNio directive which was present in an earlier version of +# GlueGen, which resolved this more cleanly, is also not yet available +# in this version. +ReturnedArrayLength XGetVisualInfo ((((Object) {3}) instanceof Buffer) ? ((IntBuffer) ((Object) {3})).get(0) : ((int[]) ((Object) {3}))[0]) +ReturnValueCapacity glXChooseVisual sizeof(XVisualInfo) +ReturnValueCapacity glXGetVisualFromFBConfig sizeof(XVisualInfo) +ReturnValueCapacity glXGetVisualFromFBConfigSGIX sizeof(XVisualInfo) + # Ignore everything not in the GLX core (up through GLX 1.4) aside from glXGetProcAddress # FIXME: this needs to be kept in sync with the stub headers more than usual Ignore glXFreeContextEXT diff --git a/make/glxext.cfg b/make/glxext.cfg new file mode 100755 index 000000000..b3186a254 --- /dev/null +++ b/make/glxext.cfg @@ -0,0 +1,133 @@ +# This .cfg file is used to generate the interface and implementing +# class for the GLX extensions. +Package com.sun.opengl.impl.x11 +Style InterfaceAndImpl +JavaClass GLXExt +ImplPackage com.sun.opengl.impl.x11 +ImplJavaClass GLXExtImpl +Include gl-common-x11.cfg + +EmitProcAddressTable true +ProcAddressTableClassName GLXExtProcAddressTable +ContextVariableName _context + +# Ignore everything that doesn't start with glX or GLX +IgnoreNot ^(glX|GLX).+ + +CustomCCode #include <inttypes.h> +CustomCCode #include <stdlib.h> +CustomCCode #include <X11/Xlib.h> + +CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glext.h" are parsed. */ +CustomCCode #define GL_GLEXT_PROTOTYPES + +CustomCCode /* Define GLX_GLXEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glxext.h" are parsed. */ +CustomCCode #define GLX_GLXEXT_PROTOTYPES + +CustomCCode /* Include the OpenGL headers */ +CustomCCode #include <GL/gl.h> +CustomCCode #include <GL/glx.h> +CustomCCode #include <GL/glxext.h> + +CustomCCode /* Provide Windows typedefs */ +CustomCCode typedef void* LPVOID; +CustomCCode typedef unsigned int* PUINT; + +CustomJavaCode GLXExt public boolean isFunctionAvailable(String glFunctionName); +CustomJavaCode GLXExt public boolean isExtensionAvailable(String glExtensionName); + +CustomJavaCode GLXExtImpl public GLXExtImpl(X11GLContext context) { +CustomJavaCode GLXExtImpl this._context = context; +CustomJavaCode GLXExtImpl } + +CustomJavaCode GLXExtImpl public boolean isFunctionAvailable(String glFunctionName) +CustomJavaCode GLXExtImpl { +CustomJavaCode GLXExtImpl return _context.isFunctionAvailable(glFunctionName); +CustomJavaCode GLXExtImpl } + +CustomJavaCode GLXExtImpl public boolean isExtensionAvailable(String glExtensionName) +CustomJavaCode GLXExtImpl { +CustomJavaCode GLXExtImpl return _context.isExtensionAvailable(glExtensionName); +CustomJavaCode GLXExtImpl } + +CustomJavaCode GLXExtImpl private X11GLContext _context; + + +# These Ignores cause the core GLX routines to be ignored from the +# GLXExt interface and GLXExtImpl implementing 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 +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 diff --git a/make/jawt-macosx.cfg b/make/jawt-macosx.cfg index ebdbad734..10097ec65 100644 --- a/make/jawt-macosx.cfg +++ b/make/jawt-macosx.cfg @@ -1,7 +1,7 @@ # This .cfg file is used to generate the interface to the JAWT, which # is used by the MacOSXOnscreenGLContext. Style AllStatic -Package net.java.games.jogl.impl +Package com.sun.opengl.impl JavaClass JAWTFactory JavaOutputDir ../build/gensrc/classes NativeOutputDir ../build/gensrc/native/jogl @@ -20,8 +20,8 @@ CustomCCode #include <jawt.h> CustomCCode #include </usr/include/machine/types.h> -Import net.java.games.jogl.impl.JAWT_PlatformInfo -StructPackage JAWT_MacOSXDrawingSurfaceInfo net.java.games.jogl.impl.macosx +Import com.sun.opengl.impl.JAWT_PlatformInfo +StructPackage JAWT_MacOSXDrawingSurfaceInfo com.sun.opengl.impl.macosx EmitStruct JAWT_MacOSXDrawingSurfaceInfo Implements JAWT_MacOSXDrawingSurfaceInfo JAWT_PlatformInfo diff --git a/make/jawt-win32.cfg b/make/jawt-win32.cfg index 4fe44b085..c8a81ecfd 100644 --- a/make/jawt-win32.cfg +++ b/make/jawt-win32.cfg @@ -1,7 +1,7 @@ # This .cfg file is used to generate the interface to the JAWT, which # is used by the WindowsOnscreenGLContext. Style AllStatic -Package net.java.games.jogl.impl +Package com.sun.opengl.impl JavaClass JAWTFactory JavaOutputDir ..\build\gensrc\classes NativeOutputDir ..\build\gensrc\native\jogl @@ -19,8 +19,8 @@ CustomCCode #if _MSC_VER <= 1200 CustomCCode typedef int intptr_t; CustomCCode #endif -Import net.java.games.jogl.impl.JAWT_PlatformInfo -StructPackage JAWT_Win32DrawingSurfaceInfo net.java.games.jogl.impl.windows +Import com.sun.opengl.impl.JAWT_PlatformInfo +StructPackage JAWT_Win32DrawingSurfaceInfo com.sun.opengl.impl.windows EmitStruct JAWT_Win32DrawingSurfaceInfo Implements JAWT_Win32DrawingSurfaceInfo JAWT_PlatformInfo CustomJavaCode JAWT_DrawingSurfaceInfo public JAWT_PlatformInfo platformInfo() { diff --git a/make/jawt-x11.cfg b/make/jawt-x11.cfg index 5794ed4e0..d326c2f26 100644 --- a/make/jawt-x11.cfg +++ b/make/jawt-x11.cfg @@ -1,7 +1,7 @@ # This .cfg file is used to generate the interface to the JAWT, which # is used by the X11OnscreenGLContext. Style AllStatic -Package net.java.games.jogl.impl +Package com.sun.opengl.impl JavaClass JAWTFactory JavaOutputDir ../build/gensrc/classes NativeOutputDir ../build/gensrc/native/jogl @@ -14,8 +14,8 @@ IgnoreField JAWT_DrawingSurfaceInfo platformInfo IgnoreField JAWT_X11DrawingSurfaceInfo GetAWTColor CustomCCode #include <inttypes.h> CustomCCode #include <jawt.h> -Import net.java.games.jogl.impl.JAWT_PlatformInfo -StructPackage JAWT_X11DrawingSurfaceInfo net.java.games.jogl.impl.x11 +Import com.sun.opengl.impl.JAWT_PlatformInfo +StructPackage JAWT_X11DrawingSurfaceInfo com.sun.opengl.impl.x11 EmitStruct JAWT_X11DrawingSurfaceInfo Implements JAWT_X11DrawingSurfaceInfo JAWT_PlatformInfo diff --git a/make/lib/cpptasks-cvs-040628.jar b/make/lib/cpptasks-cvs-040628.jar Binary files differdeleted file mode 100755 index 01e20f93f..000000000 --- a/make/lib/cpptasks-cvs-040628.jar +++ /dev/null diff --git a/make/lib/cpptasks-patch.tar.gz b/make/lib/cpptasks-patch.tar.gz Binary files differnew file mode 100644 index 000000000..22f1cdeaa --- /dev/null +++ b/make/lib/cpptasks-patch.tar.gz diff --git a/make/lib/cpptasks-version.txt b/make/lib/cpptasks-version.txt new file mode 100755 index 000000000..2e7dd7244 --- /dev/null +++ b/make/lib/cpptasks-version.txt @@ -0,0 +1,4 @@ +Current cpptasks is from CVS repository at +:pserver:[email protected]:/cvsroot/ant-contrib +as of 10/5/2005 with patches applied for Forte C compiler (Bug +1314266) and fat binary generation on Mac OS X (Bug 1313421). diff --git a/make/stub_includes/cg/CG/cg.h b/make/stub_includes/cg/CG/cg.h index 5ff03872f..fe1cf2a75 100644 --- a/make/stub_includes/cg/CG/cg.h +++ b/make/stub_includes/cg/CG/cg.h @@ -8,7 +8,7 @@ /* * - * Copyright (c) 2002, NVIDIA Corporation. + * Copyright (c) 2002-2004, NVIDIA Corporation. * * * @@ -62,15 +62,7 @@ #define _cg_h -#define CG_VERSION_1_2 1 -#define CG_VERSION_NUM 1200 - - -// -// This #define foreces the old API for now. This will be removed soon, but -// the user will still have the ability to enable it. -// -// #define CG_DEPRECATED_1_1_API 1 +#define CG_VERSION_NUM 1400 // Set up for either Win32 import/export/lib. #ifndef CGDLL_API @@ -103,7 +95,15 @@ typedef int CGbool; typedef struct _CGcontext *CGcontext; typedef struct _CGprogram *CGprogram; typedef struct _CGparameter *CGparameter; +typedef struct _CGeffect *CGeffect; +typedef struct _CGtechnique *CGtechnique; +typedef struct _CGpass *CGpass; +typedef struct _CGstate *CGstate; +typedef struct _CGstateassignment *CGstateassignment; +typedef struct _CGannotation *CGannotation; +typedef void *CGhandle; +typedef CGbool (*CGstatecallback)(CGstateassignment); //!!! PREPROCESS BEGIN @@ -114,7 +114,8 @@ typedef enum CG_ARRAY, CG_TYPE_START_ENUM = 1024, -//# define CG_DATATYPE_MACRO(name, compiler_name, enum_name, ncols, nrows) enum_name , +// # define CG_DATATYPE_MACRO(name, compiler_name, enum_name, base_name, ncols, nrows, pc) \ +// enum_name , #include <CG/cg_datatypes.h> @@ -122,7 +123,9 @@ typedef enum typedef enum { -//# define CG_BINDLOCATION_MACRO(name,enum_name,compiler_name,enum_int,addressable,param_type) enum_name = enum_int, +// # define CG_BINDLOCATION_MACRO(name,enum_name,compiler_name,\ +// enum_int,addressable,param_type) \ +// enum_name = enum_int, #include <CG/cg_bindlocations.h> @@ -135,7 +138,8 @@ typedef enum CG_PROFILE_START = 6144, CG_PROFILE_UNKNOWN, -//# define CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile) CG_PROFILE_##compiler_id_caps = int_id, +// # define CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile) \ +// CG_PROFILE_##compiler_id_caps = int_id, #include <CG/cg_profiles.h> @@ -144,15 +148,29 @@ typedef enum typedef enum { -//# define CG_ERROR_MACRO(code, enum_name, new_enum_name, message) new_enum_name = code, +// # define CG_ERROR_MACRO(code, enum_name, message) \ +// enum_name = code, # include <CG/cg_errors.h> } CGerror; +typedef enum + { + CG_PARAMETERCLASS_UNKNOWN = 0, + CG_PARAMETERCLASS_SCALAR, + CG_PARAMETERCLASS_VECTOR, + CG_PARAMETERCLASS_MATRIX, + CG_PARAMETERCLASS_STRUCT, + CG_PARAMETERCLASS_ARRAY, + CG_PARAMETERCLASS_SAMPLER, + CG_PARAMETERCLASS_OBJECT + } CGparameterclass; + //!!! PREPROCESS END typedef enum { -//# define CG_ENUM_MACRO(enum_name, enum_val) enum_name = enum_val, +// # define CG_ENUM_MACRO(enum_name, enum_val) \ +// enum_name = enum_val, # include <CG/cg_enums.h> } CGenum; @@ -163,6 +181,7 @@ extern "C" { #endif typedef void (*CGerrorCallbackFunc)(void); +typedef void (*CGerrorHandlerFunc)(CGcontext ctx, CGerror err, void *data); /*************************************************************************/ /*** Functions ***/ @@ -176,7 +195,9 @@ CGDLL_API CGcontext cgCreateContext(void); CGDLL_API void cgDestroyContext(CGcontext ctx); CGDLL_API CGbool cgIsContext(CGcontext ctx); CGDLL_API const char *cgGetLastListing(CGcontext ctx); +CGDLL_API void cgSetLastListing(CGhandle handle, const char *listing); CGDLL_API void cgSetAutoCompile(CGcontext ctx, CGenum flag); +CGDLL_API CGenum cgGetAutoCompile(CGcontext ctx); /*** Program functions ***/ CGDLL_API CGprogram cgCreateProgram(CGcontext ctx, @@ -203,6 +224,9 @@ CGDLL_API void cgCompileProgram(CGprogram program); CGDLL_API CGbool cgIsProgramCompiled(CGprogram program); CGDLL_API const char *cgGetProgramString(CGprogram prog, CGenum pname); CGDLL_API CGprofile cgGetProgramProfile(CGprogram prog); +CGDLL_API void cgSetProgramProfile(CGprogram prog, CGprofile profile); + +CGDLL_API void cgSetPassProgramParameters(CGprogram); /*** Parameter functions ***/ @@ -242,6 +266,7 @@ CGDLL_API CGparameter cgGetArrayParameter(CGparameter aparam, int index); CGDLL_API int cgGetArrayDimension(CGparameter param); CGDLL_API CGtype cgGetArrayType(CGparameter param); CGDLL_API int cgGetArraySize(CGparameter param, int dimension); +CGDLL_API int cgGetArrayTotalSize(CGparameter param); CGDLL_API void cgSetArraySize(CGparameter param, int size); CGDLL_API void cgSetMultiDimArraySize(CGparameter param, const int *sizes); @@ -250,6 +275,10 @@ CGDLL_API CGcontext cgGetParameterContext(CGparameter param); CGDLL_API CGbool cgIsParameter(CGparameter param); CGDLL_API const char *cgGetParameterName(CGparameter param); CGDLL_API CGtype cgGetParameterType(CGparameter param); +CGDLL_API CGtype cgGetParameterBaseType(CGparameter param); +CGDLL_API CGparameterclass cgGetParameterClass(CGparameter param); +CGDLL_API int cgGetParameterRows(CGparameter param); +CGDLL_API int cgGetParameterColumns(CGparameter param); CGDLL_API CGtype cgGetParameterNamedType(CGparameter param); CGDLL_API const char *cgGetParameterSemantic(CGparameter param); CGDLL_API CGresource cgGetParameterResource(CGparameter param); @@ -258,9 +287,25 @@ CGDLL_API unsigned long cgGetParameterResourceIndex(CGparameter param); CGDLL_API CGenum cgGetParameterVariability(CGparameter param); CGDLL_API CGenum cgGetParameterDirection(CGparameter param); CGDLL_API CGbool cgIsParameterReferenced(CGparameter param); +CGDLL_API CGbool cgIsParameterUsed(CGparameter param, CGhandle handle); CGDLL_API const double *cgGetParameterValues(CGparameter param, CGenum value_type, int *nvalues); +CGDLL_API void cgSetParameterValuedr(CGparameter param, int n, const double *vals); +CGDLL_API void cgSetParameterValuedc(CGparameter param, int n, const double *vals); +CGDLL_API void cgSetParameterValuefr(CGparameter param, int n, const float *vals); +CGDLL_API void cgSetParameterValuefc(CGparameter param, int n, const float *vals); +CGDLL_API void cgSetParameterValueir(CGparameter param, int n, const int *vals); +CGDLL_API void cgSetParameterValueic(CGparameter param, int n, const int *vals); +CGDLL_API int cgGetParameterValuedr(CGparameter param, int n, double *vals); +CGDLL_API int cgGetParameterValuedc(CGparameter param, int n, double *vals); +CGDLL_API int cgGetParameterValuefr(CGparameter param, int n, float *vals); +CGDLL_API int cgGetParameterValuefc(CGparameter param, int n, float *vals); +CGDLL_API int cgGetParameterValueir(CGparameter param, int n, int *vals); +CGDLL_API int cgGetParameterValueic(CGparameter param, int n, int *vals); +CGDLL_API const char *cgGetStringParameterValue(CGparameter param); +CGDLL_API void cgSetStringParameterValue(CGparameter param, const char *str); + CGDLL_API int cgGetParameterOrdinalNumber(CGparameter param); CGDLL_API CGbool cgIsParameterGlobal(CGparameter param); CGDLL_API int cgGetParameterIndex(CGparameter param); @@ -268,7 +313,6 @@ CGDLL_API int cgGetParameterIndex(CGparameter param); CGDLL_API void cgSetParameterVariability(CGparameter param, CGenum vary); CGDLL_API void cgSetParameterSemantic(CGparameter param, const char *semantic); - CGDLL_API void cgSetParameter1f(CGparameter param, float x); CGDLL_API void cgSetParameter2f(CGparameter param, float x, float y); CGDLL_API void cgSetParameter3f(CGparameter param, float x, float y, float z); @@ -288,8 +332,20 @@ CGDLL_API void cgSetParameter4d(CGparameter param, double y, double z, double w); - - +CGDLL_API void cgSetParameter1i(CGparameter param, int x); +CGDLL_API void cgSetParameter2i(CGparameter param, int x, int y); +CGDLL_API void cgSetParameter3i(CGparameter param, int x, int y, int z); +CGDLL_API void cgSetParameter4i(CGparameter param, + int x, + int y, + int z, + int w); + + +CGDLL_API void cgSetParameter1iv(CGparameter param, const int *v); +CGDLL_API void cgSetParameter2iv(CGparameter param, const int *v); +CGDLL_API void cgSetParameter3iv(CGparameter param, const int *v); +CGDLL_API void cgSetParameter4iv(CGparameter param, const int *v); CGDLL_API void cgSetParameter1fv(CGparameter param, const float *v); CGDLL_API void cgSetParameter2fv(CGparameter param, const float *v); CGDLL_API void cgSetParameter3fv(CGparameter param, const float *v); @@ -299,21 +355,29 @@ CGDLL_API void cgSetParameter2dv(CGparameter param, const double *v); CGDLL_API void cgSetParameter3dv(CGparameter param, const double *v); CGDLL_API void cgSetParameter4dv(CGparameter param, const double *v); +CGDLL_API void cgSetMatrixParameterir(CGparameter param, const int *matrix); CGDLL_API void cgSetMatrixParameterdr(CGparameter param, const double *matrix); CGDLL_API void cgSetMatrixParameterfr(CGparameter param, const float *matrix); +CGDLL_API void cgSetMatrixParameteric(CGparameter param, const int *matrix); CGDLL_API void cgSetMatrixParameterdc(CGparameter param, const double *matrix); CGDLL_API void cgSetMatrixParameterfc(CGparameter param, const float *matrix); +CGDLL_API void cgGetMatrixParameterir(CGparameter param, int *matrix); +CGDLL_API void cgGetMatrixParameterdr(CGparameter param, double *matrix); +CGDLL_API void cgGetMatrixParameterfr(CGparameter param, float *matrix); +CGDLL_API void cgGetMatrixParameteric(CGparameter param, int *matrix); +CGDLL_API void cgGetMatrixParameterdc(CGparameter param, double *matrix); +CGDLL_API void cgGetMatrixParameterfc(CGparameter param, float *matrix); /*** Type Functions ***/ CGDLL_API const char *cgGetTypeString(CGtype type); CGDLL_API CGtype cgGetType(const char *type_string); -CGDLL_API CGtype cgGetNamedUserType(CGprogram program, const char *name); +CGDLL_API CGtype cgGetNamedUserType(CGhandle handle, const char *name); -CGDLL_API int cgGetNumUserTypes(CGprogram program); -CGDLL_API CGtype cgGetUserType(CGprogram program, int index); +CGDLL_API int cgGetNumUserTypes(CGhandle handle); +CGDLL_API CGtype cgGetUserType(CGhandle handle, int index); CGDLL_API int cgGetNumParentTypes(CGtype type); CGDLL_API CGtype cgGetParentType(CGtype type, int index); @@ -339,27 +403,134 @@ CGDLL_API CGprofile cgGetProfile(const char *profile_string); /*** Error Functions ***/ CGDLL_API CGerror cgGetError(void); +CGDLL_API CGerror cgGetFirstError(void); CGDLL_API const char *cgGetErrorString(CGerror error); CGDLL_API const char *cgGetLastErrorString(CGerror *error); CGDLL_API void cgSetErrorCallback(CGerrorCallbackFunc func); CGDLL_API CGerrorCallbackFunc cgGetErrorCallback(void); +CGDLL_API void cgSetErrorHandler(CGerrorHandlerFunc func, void *data); +CGDLL_API CGerrorHandlerFunc cgGetErrorHandler(void **data); /*** Misc Functions ***/ CGDLL_API const char *cgGetString(CGenum sname); -/*** Support for deprecated Cg 1.1 API ***/ - -CGDLL_API CGparameter cgGetNextParameter_depr1_1(CGparameter current); -CGDLL_API CGparameter cgGetNextLeafParameter_depr1_1(CGparameter current); - -#ifdef CG_DEPRECATED_1_1_API - -#define cgGetNextParameter cgGetNextParameter_depr1_1 -#define cgGetNextLeafParameter cgGetNextLeafParameter_depr1_1 - -#endif +/*** CgFX Functions ***/ + +CGDLL_API CGeffect cgCreateEffect(CGcontext, const char *code, const char **args); +CGDLL_API CGeffect cgCreateEffectFromFile(CGcontext, const char *filename, + const char **args); +CGDLL_API void cgDestroyEffect(CGeffect); +CGDLL_API CGcontext cgGetEffectContext(CGeffect); +CGDLL_API CGbool cgIsEffect(CGeffect effect); + +CGDLL_API CGeffect cgGetFirstEffect(CGcontext); +CGDLL_API CGeffect cgGetNextEffect(CGeffect); + +CGDLL_API CGprogram cgCreateProgramFromEffect(CGeffect effect, + CGprofile profile, + const char *entry, + const char **args); + +CGDLL_API CGtechnique cgGetFirstTechnique(CGeffect); +CGDLL_API CGtechnique cgGetNextTechnique(CGtechnique); +CGDLL_API CGtechnique cgGetNamedTechnique(CGeffect, const char *name); +CGDLL_API const char *cgGetTechniqueName(CGtechnique); +CGDLL_API CGbool cgIsTechnique(CGtechnique); +CGDLL_API CGbool cgValidateTechnique(CGtechnique); +CGDLL_API CGbool cgIsTechniqueValidated(CGtechnique); +CGDLL_API CGeffect cgGetTechniqueEffect(CGtechnique); + +CGDLL_API CGpass cgGetFirstPass(CGtechnique); +CGDLL_API CGpass cgGetNamedPass(CGtechnique, const char *name); +CGDLL_API CGpass cgGetNextPass(CGpass); +CGDLL_API CGbool cgIsPass(CGpass); +CGDLL_API const char *cgGetPassName(CGpass); +CGDLL_API CGtechnique cgGetPassTechnique(CGpass); + +CGDLL_API void cgSetPassState(CGpass); +CGDLL_API void cgResetPassState(CGpass); + +CGDLL_API CGstateassignment cgGetFirstStateAssignment(CGpass); +CGDLL_API CGstateassignment cgGetNamedStateAssignment(CGpass, const char *name); +CGDLL_API CGstateassignment cgGetNextStateAssignment(CGstateassignment); +CGDLL_API CGbool cgIsStateAssignment(CGstateassignment); +CGDLL_API CGbool cgCallStateSetCallback(CGstateassignment); +CGDLL_API CGbool cgCallStateValidateCallback(CGstateassignment); +CGDLL_API CGbool cgCallStateResetCallback(CGstateassignment); +CGDLL_API CGpass cgGetStateAssignmentPass(CGstateassignment); +CGDLL_API CGparameter cgGetSamplerStateAssignmentParameter(CGstateassignment); + +CGDLL_API const float *cgGetFloatStateAssignmentValues(CGstateassignment, int *nVals); +CGDLL_API const int *cgGetIntStateAssignmentValues(CGstateassignment, int *nVals); +CGDLL_API const CGbool *cgGetBoolStateAssignmentValues(CGstateassignment, int *nVals); +CGDLL_API const char *cgGetStringStateAssignmentValue(CGstateassignment); +CGDLL_API CGprogram cgGetProgramStateAssignmentValue(CGstateassignment); +CGDLL_API CGparameter cgGetTextureStateAssignmentValue(CGstateassignment); +CGDLL_API CGparameter cgGetSamplerStateAssignmentValue(CGstateassignment); +CGDLL_API int cgGetStateAssignmentIndex(CGstateassignment); + +CGDLL_API int cgGetNumDependentStateAssignmentParameters(CGstateassignment); +CGDLL_API CGparameter cgGetDependentStateAssignmentParameter(CGstateassignment, int index); + +CGDLL_API CGstate cgGetStateAssignmentState(CGstateassignment); +CGDLL_API CGstate cgGetSamplerStateAssignmentState(CGstateassignment); + +CGDLL_API CGstate cgCreateState(CGcontext, const char *name, CGtype); +CGDLL_API CGstate cgCreateArrayState(CGcontext, const char *name, CGtype, int nelems); +CGDLL_API void cgSetStateCallbacks(CGstate, CGstatecallback set, CGstatecallback reset, + CGstatecallback validate); +CGDLL_API CGstatecallback cgGetStateSetCallback(CGstate); +CGDLL_API CGstatecallback cgGetStateResetCallback(CGstate); +CGDLL_API CGstatecallback cgGetStateValidateCallback(CGstate); +CGDLL_API CGtype cgGetStateType(CGstate); +CGDLL_API const char *cgGetStateName(CGstate); +CGDLL_API CGstate cgGetNamedState(CGcontext, const char *name); +CGDLL_API CGstate cgGetFirstState(CGcontext); +CGDLL_API CGstate cgGetNextState(CGstate); +CGDLL_API CGbool cgIsState(CGstate); +CGDLL_API void cgAddStateEnumerant(CGstate, const char *name, int value); + +CGDLL_API CGstate cgCreateSamplerState(CGcontext, const char *name, CGtype); +CGDLL_API CGstate cgCreateArraySamplerState(CGcontext, const char *name, CGtype, int nelems); +CGDLL_API CGstate cgGetNamedSamplerState(CGcontext, const char *name); +CGDLL_API CGstate cgGetFirstSamplerState(CGcontext); + +CGDLL_API CGstateassignment cgGetFirstSamplerStateAssignment(CGparameter); +CGDLL_API CGstateassignment cgGetNamedSamplerStateAssignment(CGparameter, const char *); +CGDLL_API void cgSetSamplerState(CGparameter); + +CGDLL_API CGparameter cgGetNamedEffectParameter(CGeffect, const char *); +CGDLL_API CGparameter cgGetFirstLeafEffectParameter(CGeffect); +CGDLL_API CGparameter cgGetFirstEffectParameter(CGeffect); +CGDLL_API CGparameter cgGetEffectParameterBySemantic(CGeffect, const char *); + +CGDLL_API CGannotation cgGetFirstTechniqueAnnotation(CGtechnique); +CGDLL_API CGannotation cgGetFirstPassAnnotation(CGpass); +CGDLL_API CGannotation cgGetFirstParameterAnnotation(CGparameter); +CGDLL_API CGannotation cgGetFirstProgramAnnotation(CGprogram); +CGDLL_API CGannotation cgGetNextAnnotation(CGannotation); + +CGDLL_API CGannotation cgGetNamedTechniqueAnnotation(CGtechnique, const char *); +CGDLL_API CGannotation cgGetNamedPassAnnotation(CGpass, const char *); +CGDLL_API CGannotation cgGetNamedParameterAnnotation(CGparameter, const char *); +CGDLL_API CGannotation cgGetNamedProgramAnnotation(CGprogram, const char *); + +CGDLL_API CGbool cgIsAnnotation(CGannotation); + +CGDLL_API const char *cgGetAnnotationName(CGannotation); +CGDLL_API CGtype cgGetAnnotationType(CGannotation); + +CGDLL_API const float *cgGetFloatAnnotationValues(CGannotation, int *nvalues); +CGDLL_API const int *cgGetIntAnnotationValues(CGannotation, int *nvalues); +CGDLL_API const char *cgGetStringAnnotationValue(CGannotation); +CGDLL_API const int *cgGetBooleanAnnotationValues(CGannotation, int *nvalues); + +CGDLL_API int cgGetNumDependentAnnotationParameters(CGannotation); +CGDLL_API CGparameter cgGetDependentAnnotationParameter(CGannotation, int index); + +CGDLL_API void cgEvaluateProgram(CGprogram, float *, int ncomps, int nx, int ny, int nz); #endif @@ -367,5 +538,4 @@ CGDLL_API CGparameter cgGetNextLeafParameter_depr1_1(CGparameter current); } #endif - #endif diff --git a/make/stub_includes/cg/CG/cg_datatypes.h b/make/stub_includes/cg/CG/cg_datatypes.h index a728ca638..2eb0ff85a 100644 --- a/make/stub_includes/cg/CG/cg_datatypes.h +++ b/make/stub_includes/cg/CG/cg_datatypes.h @@ -69,124 +69,124 @@ * compiler_name : The name of the data type within the compiler syntax. * enum_name : The C enumerant. * nrows : Number of rows for matrix types. Should be 0 other-wise. - * ncols : Number of columns for matrix types. Should be 0 - * other-wise. + * ncols : Number of columns for scalar, vector, and matrix types. * */ -/*CG_DATATYPE_MACRO(Half,half,*/CG_HALF,//0,1) -/*CG_DATATYPE_MACRO(Half2,half2,*/CG_HALF2,//0,2) -/*CG_DATATYPE_MACRO(Half3,half3,*/CG_HALF3,//0,3) -/*CG_DATATYPE_MACRO(Half4,half4,*/CG_HALF4,//0,4) -/*CG_DATATYPE_MACRO(Half1x1,half1x1,*/CG_HALF1x1,//1,1) -/*CG_DATATYPE_MACRO(Half1x2,half1x2,*/CG_HALF1x2,//1,2) -/*CG_DATATYPE_MACRO(Half1x3,half1x3,*/CG_HALF1x3,//1,3) -/*CG_DATATYPE_MACRO(Half1x4,half1x4,*/CG_HALF1x4,//1,4) -/*CG_DATATYPE_MACRO(Half2x1,half2x1,*/CG_HALF2x1,//2,1) -/*CG_DATATYPE_MACRO(Half2x2,half2x2,*/CG_HALF2x2,//2,2) -/*CG_DATATYPE_MACRO(Half2x3,half2x3,*/CG_HALF2x3,//2,3) -/*CG_DATATYPE_MACRO(Half2x4,half2x4,*/CG_HALF2x4,//2,4) -/*CG_DATATYPE_MACRO(Half3x1,half3x1,*/CG_HALF3x1,//3,1) -/*CG_DATATYPE_MACRO(Half3x2,half3x2,*/CG_HALF3x2,//3,2) -/*CG_DATATYPE_MACRO(Half3x3,half3x3,*/CG_HALF3x3,//3,3) -/*CG_DATATYPE_MACRO(Half3x4,half3x4,*/CG_HALF3x4,//3,4) -/*CG_DATATYPE_MACRO(Half4x1,half4x1,*/CG_HALF4x1,//4,1) -/*CG_DATATYPE_MACRO(Half4x2,half4x2,*/CG_HALF4x2,//4,2) -/*CG_DATATYPE_MACRO(Half4x3,half4x3,*/CG_HALF4x3,//4,3) -/*CG_DATATYPE_MACRO(Half4x4,half4x4,*/CG_HALF4x4,//4,4) -/*CG_DATATYPE_MACRO(Float,float,*/CG_FLOAT,//0,1) -/*CG_DATATYPE_MACRO(Float2,float2,*/CG_FLOAT2,//0,2) -/*CG_DATATYPE_MACRO(Float3,float3,*/CG_FLOAT3,//0,3) -/*CG_DATATYPE_MACRO(Float4,float4,*/CG_FLOAT4,//0,4) -/*CG_DATATYPE_MACRO(Float1x1,float1x1,*/CG_FLOAT1x1,//1,1) -/*CG_DATATYPE_MACRO(Float1x2,float1x2,*/CG_FLOAT1x2,//1,2) -/*CG_DATATYPE_MACRO(Float1x3,float1x3,*/CG_FLOAT1x3,//1,3) -/*CG_DATATYPE_MACRO(Float1x4,float1x4,*/CG_FLOAT1x4,//1,4) -/*CG_DATATYPE_MACRO(Float2x1,float2x1,*/CG_FLOAT2x1,//2,1) -/*CG_DATATYPE_MACRO(Float2x2,float2x2,*/CG_FLOAT2x2,//2,2) -/*CG_DATATYPE_MACRO(Float2x3,float2x3,*/CG_FLOAT2x3,//2,3) -/*CG_DATATYPE_MACRO(Float2x4,float2x4,*/CG_FLOAT2x4,//2,4) -/*CG_DATATYPE_MACRO(Float3x1,float3x1,*/CG_FLOAT3x1,//3,1) -/*CG_DATATYPE_MACRO(Float3x2,float3x2,*/CG_FLOAT3x2,//3,2) -/*CG_DATATYPE_MACRO(Float3x3,float3x3,*/CG_FLOAT3x3,//3,3) -/*CG_DATATYPE_MACRO(Float3x4,float3x4,*/CG_FLOAT3x4,//3,4) -/*CG_DATATYPE_MACRO(Float4x1,float4x1,*/CG_FLOAT4x1,//4,1) -/*CG_DATATYPE_MACRO(Float4x2,float4x2,*/CG_FLOAT4x2,//4,2) -/*CG_DATATYPE_MACRO(Float4x3,float4x3,*/CG_FLOAT4x3,//4,3) -/*CG_DATATYPE_MACRO(Float4x4,float4x4,*/CG_FLOAT4x4,//4,4) -/*CG_DATATYPE_MACRO(Sampler1D,sampler1D,*/CG_SAMPLER1D,//0,0) -/*CG_DATATYPE_MACRO(Sampler2D,sampler2D,*/CG_SAMPLER2D,//0,0) -/*CG_DATATYPE_MACRO(Sampler3D,sampler3D,*/CG_SAMPLER3D,//0,0) -/*CG_DATATYPE_MACRO(SamplerRECT,samplerRECT,*/CG_SAMPLERRECT,//0,0) -/*CG_DATATYPE_MACRO(SamplerCUBE,samplerCUBE,*/CG_SAMPLERCUBE,//0,0) -/*CG_DATATYPE_MACRO(Fixed,fixed,*/CG_FIXED,//0,1) -/*CG_DATATYPE_MACRO(Fixed2,fixed2,*/CG_FIXED2,//0,2) -/*CG_DATATYPE_MACRO(Fixed3,fixed3,*/CG_FIXED3,//0,3) -/*CG_DATATYPE_MACRO(Fixed4,fixed4,*/CG_FIXED4,//0,4) -/*CG_DATATYPE_MACRO(Fixed1x1,fixed1x1,*/CG_FIXED1x1,//1,1) -/*CG_DATATYPE_MACRO(Fixed1x2,fixed1x2,*/CG_FIXED1x2,//1,2) -/*CG_DATATYPE_MACRO(Fixed1x3,fixed1x3,*/CG_FIXED1x3,//1,3) -/*CG_DATATYPE_MACRO(Fixed1x4,fixed1x4,*/CG_FIXED1x4,//1,4) -/*CG_DATATYPE_MACRO(Fixed2x1,fixed2x1,*/CG_FIXED2x1,//2,1) -/*CG_DATATYPE_MACRO(Fixed2x2,fixed2x2,*/CG_FIXED2x2,//2,2) -/*CG_DATATYPE_MACRO(Fixed2x3,fixed2x3,*/CG_FIXED2x3,//2,3) -/*CG_DATATYPE_MACRO(Fixed2x4,fixed2x4,*/CG_FIXED2x4,//2,4) -/*CG_DATATYPE_MACRO(Fixed3x1,fixed3x1,*/CG_FIXED3x1,//3,1) -/*CG_DATATYPE_MACRO(Fixed3x2,fixed3x2,*/CG_FIXED3x2,//3,2) -/*CG_DATATYPE_MACRO(Fixed3x3,fixed3x3,*/CG_FIXED3x3,//3,3) -/*CG_DATATYPE_MACRO(Fixed3x4,fixed3x4,*/CG_FIXED3x4,//3,4) -/*CG_DATATYPE_MACRO(Fixed4x1,fixed4x1,*/CG_FIXED4x1,//4,1) -/*CG_DATATYPE_MACRO(Fixed4x2,fixed4x2,*/CG_FIXED4x2,//4,2) -/*CG_DATATYPE_MACRO(Fixed4x3,fixed4x3,*/CG_FIXED4x3,//4,3) -/*CG_DATATYPE_MACRO(Fixed4x4,fixed4x4,*/CG_FIXED4x4,//4,4) -/*CG_DATATYPE_MACRO(Half1,half1,*/CG_HALF1,//0,1) -/*CG_DATATYPE_MACRO(Float1,float1,*/CG_FLOAT1,//0,1) -/*CG_DATATYPE_MACRO(Fixed1,fixed1,*/CG_FIXED1,//0,1) -/*CG_DATATYPE_MACRO(Int,int,*/CG_INT,//0,1) -/*CG_DATATYPE_MACRO(Int1,int1,*/CG_INT1,//0,1) -/*CG_DATATYPE_MACRO(Int2,int2,*/CG_INT2,//0,2) -/*CG_DATATYPE_MACRO(Int3,int3,*/CG_INT3,//0,3) -/*CG_DATATYPE_MACRO(Int4,int4,*/CG_INT4,//0,4) -/*CG_DATATYPE_MACRO(Int1x1,int1x1,*/CG_INT1x1,//1,1) -/*CG_DATATYPE_MACRO(Int1x2,int1x2,*/CG_INT1x2,//1,2) -/*CG_DATATYPE_MACRO(Int1x3,int1x3,*/CG_INT1x3,//1,3) -/*CG_DATATYPE_MACRO(Int1x4,int1x4,*/CG_INT1x4,//1,4) -/*CG_DATATYPE_MACRO(Int2x1,int2x1,*/CG_INT2x1,//2,1) -/*CG_DATATYPE_MACRO(Int2x2,int2x2,*/CG_INT2x2,//2,2) -/*CG_DATATYPE_MACRO(Int2x3,int2x3,*/CG_INT2x3,//2,3) -/*CG_DATATYPE_MACRO(Int2x4,int2x4,*/CG_INT2x4,//2,4) -/*CG_DATATYPE_MACRO(Int3x1,int3x1,*/CG_INT3x1,//3,1) -/*CG_DATATYPE_MACRO(Int3x2,int3x2,*/CG_INT3x2,//3,2) -/*CG_DATATYPE_MACRO(Int3x3,int3x3,*/CG_INT3x3,//3,3) -/*CG_DATATYPE_MACRO(Int3x4,int3x4,*/CG_INT3x4,//3,4) -/*CG_DATATYPE_MACRO(Int4x1,int4x1,*/CG_INT4x1,//4,1) -/*CG_DATATYPE_MACRO(Int4x2,int4x2,*/CG_INT4x2,//4,2) -/*CG_DATATYPE_MACRO(Int4x3,int4x3,*/CG_INT4x3,//4,3) -/*CG_DATATYPE_MACRO(Int4x4,int4x4,*/CG_INT4x4,//4,4) -/*CG_DATATYPE_MACRO(Bool,bool,*/CG_BOOL,//0,1) -/*CG_DATATYPE_MACRO(Bool1,bool1,*/CG_BOOL1,//0,1) -/*CG_DATATYPE_MACRO(Bool2,bool2,*/CG_BOOL2,//0,2) -/*CG_DATATYPE_MACRO(Bool3,bool3,*/CG_BOOL3,//0,3) -/*CG_DATATYPE_MACRO(Bool4,bool4,*/CG_BOOL4,//0,4) -/*CG_DATATYPE_MACRO(Bool1x1,bool1x1,*/CG_BOOL1x1,//1,1) -/*CG_DATATYPE_MACRO(Bool1x2,bool1x2,*/CG_BOOL1x2,//1,2) -/*CG_DATATYPE_MACRO(Bool1x3,bool1x3,*/CG_BOOL1x3,//1,3) -/*CG_DATATYPE_MACRO(Bool1x4,bool1x4,*/CG_BOOL1x4,//1,4) -/*CG_DATATYPE_MACRO(Bool2x1,bool2x1,*/CG_BOOL2x1,//2,1) -/*CG_DATATYPE_MACRO(Bool2x2,bool2x2,*/CG_BOOL2x2,//2,2) -/*CG_DATATYPE_MACRO(Bool2x3,bool2x3,*/CG_BOOL2x3,//2,3) -/*CG_DATATYPE_MACRO(Bool2x4,bool2x4,*/CG_BOOL2x4,//2,4) -/*CG_DATATYPE_MACRO(Bool3x1,bool3x1,*/CG_BOOL3x1,//3,1) -/*CG_DATATYPE_MACRO(Bool3x2,bool3x2,*/CG_BOOL3x2,//3,2) -/*CG_DATATYPE_MACRO(Bool3x3,bool3x3,*/CG_BOOL3x3,//3,3) -/*CG_DATATYPE_MACRO(Bool3x4,bool3x4,*/CG_BOOL3x4,//3,4) -/*CG_DATATYPE_MACRO(Bool4x1,bool4x1,*/CG_BOOL4x1,//4,1) -/*CG_DATATYPE_MACRO(Bool4x2,bool4x2,*/CG_BOOL4x2,//4,2) -/*CG_DATATYPE_MACRO(Bool4x3,bool4x3,*/CG_BOOL4x3,//4,3) -/*CG_DATATYPE_MACRO(Bool4x4,bool4x4,*/CG_BOOL4x4,//4,4) +/*CG_DATATYPE_MACRO(Half,half,*/CG_HALF,//CG_HALF,0,1,CG_PARAMETERCLASS_SCALAR) +/*CG_DATATYPE_MACRO(Half2,half2,*/CG_HALF2,//CG_HALF,0,2,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Half3,half3,*/CG_HALF3,//CG_HALF,0,3,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Half4,half4,*/CG_HALF4,//CG_HALF,0,4,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Half1x1,half1x1,*/CG_HALF1x1,//CG_HALF,1,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half1x2,half1x2,*/CG_HALF1x2,//CG_HALF,1,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half1x3,half1x3,*/CG_HALF1x3,//CG_HALF,1,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half1x4,half1x4,*/CG_HALF1x4,//CG_HALF,1,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half2x1,half2x1,*/CG_HALF2x1,//CG_HALF,2,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half2x2,half2x2,*/CG_HALF2x2,//CG_HALF,2,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half2x3,half2x3,*/CG_HALF2x3,//CG_HALF,2,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half2x4,half2x4,*/CG_HALF2x4,//CG_HALF,2,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half3x1,half3x1,*/CG_HALF3x1,//CG_HALF,3,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half3x2,half3x2,*/CG_HALF3x2,//CG_HALF,3,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half3x3,half3x3,*/CG_HALF3x3,//CG_HALF,3,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half3x4,half3x4,*/CG_HALF3x4,//CG_HALF,3,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half4x1,half4x1,*/CG_HALF4x1,//CG_HALF,4,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half4x2,half4x2,*/CG_HALF4x2,//CG_HALF,4,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half4x3,half4x3,*/CG_HALF4x3,//CG_HALF,4,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half4x4,half4x4,*/CG_HALF4x4,//CG_HALF,4,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float,float,*/CG_FLOAT,//CG_FLOAT,0,1,CG_PARAMETERCLASS_SCALAR) +/*CG_DATATYPE_MACRO(Float2,float2,*/CG_FLOAT2,//CG_FLOAT,0,2,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Float3,float3,*/CG_FLOAT3,//CG_FLOAT,0,3,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Float4,float4,*/CG_FLOAT4,//CG_FLOAT,0,4,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Float1x1,float1x1,*/CG_FLOAT1x1,//CG_FLOAT,1,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float1x2,float1x2,*/CG_FLOAT1x2,//CG_FLOAT,1,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float1x3,float1x3,*/CG_FLOAT1x3,//CG_FLOAT,1,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float1x4,float1x4,*/CG_FLOAT1x4,//CG_FLOAT,1,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float2x1,float2x1,*/CG_FLOAT2x1,//CG_FLOAT,2,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float2x2,float2x2,*/CG_FLOAT2x2,//CG_FLOAT,2,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float2x3,float2x3,*/CG_FLOAT2x3,//CG_FLOAT,2,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float2x4,float2x4,*/CG_FLOAT2x4,//CG_FLOAT,2,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float3x1,float3x1,*/CG_FLOAT3x1,//CG_FLOAT,3,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float3x2,float3x2,*/CG_FLOAT3x2,//CG_FLOAT,3,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float3x3,float3x3,*/CG_FLOAT3x3,//CG_FLOAT,3,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float3x4,float3x4,*/CG_FLOAT3x4,//CG_FLOAT,3,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float4x1,float4x1,*/CG_FLOAT4x1,//CG_FLOAT,4,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float4x2,float4x2,*/CG_FLOAT4x2,//CG_FLOAT,4,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float4x3,float4x3,*/CG_FLOAT4x3,//CG_FLOAT,4,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Float4x4,float4x4,*/CG_FLOAT4x4,//CG_FLOAT,4,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Sampler1D,sampler1D,*/CG_SAMPLER1D,//CG_SAMPLER1D,0,0,CG_PARAMETERCLASS_SAMPLER) +/*CG_DATATYPE_MACRO(Sampler2D,sampler2D,*/CG_SAMPLER2D,//CG_SAMPLER2D,0,0,CG_PARAMETERCLASS_SAMPLER) +/*CG_DATATYPE_MACRO(Sampler3D,sampler3D,*/CG_SAMPLER3D,//CG_SAMPLER3D,0,0,CG_PARAMETERCLASS_SAMPLER) +/*CG_DATATYPE_MACRO(SamplerRECT,samplerRECT,*/CG_SAMPLERRECT,//CG_SAMPLERRECT,0,0,CG_PARAMETERCLASS_SAMPLER) +/*CG_DATATYPE_MACRO(SamplerCUBE,samplerCUBE,*/CG_SAMPLERCUBE,//CG_SAMPLERCUBE,0,0,CG_PARAMETERCLASS_SAMPLER) +/*CG_DATATYPE_MACRO(Fixed,fixed,*/CG_FIXED,//CG_FIXED,0,1,CG_PARAMETERCLASS_SCALAR) +/*CG_DATATYPE_MACRO(Fixed2,fixed2,*/CG_FIXED2,//CG_FIXED,0,2,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Fixed3,fixed3,*/CG_FIXED3,//CG_FIXED,0,3,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Fixed4,fixed4,*/CG_FIXED4,//CG_FIXED,0,4,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Fixed1x1,fixed1x1,*/CG_FIXED1x1,//CG_FIXED,1,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed1x2,fixed1x2,*/CG_FIXED1x2,//CG_FIXED,1,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed1x3,fixed1x3,*/CG_FIXED1x3,//CG_FIXED,1,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed1x4,fixed1x4,*/CG_FIXED1x4,//CG_FIXED,1,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed2x1,fixed2x1,*/CG_FIXED2x1,//CG_FIXED,2,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed2x2,fixed2x2,*/CG_FIXED2x2,//CG_FIXED,2,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed2x3,fixed2x3,*/CG_FIXED2x3,//CG_FIXED,2,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed2x4,fixed2x4,*/CG_FIXED2x4,//CG_FIXED,2,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed3x1,fixed3x1,*/CG_FIXED3x1,//CG_FIXED,3,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed3x2,fixed3x2,*/CG_FIXED3x2,//CG_FIXED,3,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed3x3,fixed3x3,*/CG_FIXED3x3,//CG_FIXED,3,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed3x4,fixed3x4,*/CG_FIXED3x4,//CG_FIXED,3,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed4x1,fixed4x1,*/CG_FIXED4x1,//CG_FIXED,4,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed4x2,fixed4x2,*/CG_FIXED4x2,//CG_FIXED,4,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed4x3,fixed4x3,*/CG_FIXED4x3,//CG_FIXED,4,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Fixed4x4,fixed4x4,*/CG_FIXED4x4,//CG_FIXED,4,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Half1,half1,*/CG_HALF1,//CG_HALF,0,1,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Float1,float1,*/CG_FLOAT1,//CG_FLOAT,0,1,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Fixed1,fixed1,*/CG_FIXED1,//CG_FIXED,0,1,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Int,int,*/CG_INT,//CG_INT,0,1,CG_PARAMETERCLASS_SCALAR) +/*CG_DATATYPE_MACRO(Int1,int1,*/CG_INT1,//CG_INT,0,1,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Int2,int2,*/CG_INT2,//CG_INT,0,2,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Int3,int3,*/CG_INT3,//CG_INT,0,3,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Int4,int4,*/CG_INT4,//CG_INT,0,4,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Int1x1,int1x1,*/CG_INT1x1,//CG_INT,1,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int1x2,int1x2,*/CG_INT1x2,//CG_INT,1,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int1x3,int1x3,*/CG_INT1x3,//CG_INT,1,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int1x4,int1x4,*/CG_INT1x4,//CG_INT,1,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int2x1,int2x1,*/CG_INT2x1,//CG_INT,2,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int2x2,int2x2,*/CG_INT2x2,//CG_INT,2,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int2x3,int2x3,*/CG_INT2x3,//CG_INT,2,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int2x4,int2x4,*/CG_INT2x4,//CG_INT,2,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int3x1,int3x1,*/CG_INT3x1,//CG_INT,3,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int3x2,int3x2,*/CG_INT3x2,//CG_INT,3,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int3x3,int3x3,*/CG_INT3x3,//CG_INT,3,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int3x4,int3x4,*/CG_INT3x4,//CG_INT,3,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int4x1,int4x1,*/CG_INT4x1,//CG_INT,4,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int4x2,int4x2,*/CG_INT4x2,//CG_INT,4,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int4x3,int4x3,*/CG_INT4x3,//CG_INT,4,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Int4x4,int4x4,*/CG_INT4x4,//CG_INT,4,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool,bool,*/CG_BOOL,//CG_BOOL,0,1,CG_PARAMETERCLASS_SCALAR) +/*CG_DATATYPE_MACRO(Bool1,bool1,*/CG_BOOL1,//CG_BOOL,0,1,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Bool2,bool2,*/CG_BOOL2,//CG_BOOL,0,2,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Bool3,bool3,*/CG_BOOL3,//CG_BOOL,0,3,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Bool4,bool4,*/CG_BOOL4,//CG_BOOL,0,4,CG_PARAMETERCLASS_VECTOR) +/*CG_DATATYPE_MACRO(Bool1x1,bool1x1,*/CG_BOOL1x1,//CG_BOOL,1,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool1x2,bool1x2,*/CG_BOOL1x2,//CG_BOOL,1,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool1x3,bool1x3,*/CG_BOOL1x3,//CG_BOOL,1,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool1x4,bool1x4,*/CG_BOOL1x4,//CG_BOOL,1,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool2x1,bool2x1,*/CG_BOOL2x1,//CG_BOOL,2,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool2x2,bool2x2,*/CG_BOOL2x2,//CG_BOOL,2,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool2x3,bool2x3,*/CG_BOOL2x3,//CG_BOOL,2,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool2x4,bool2x4,*/CG_BOOL2x4,//CG_BOOL,2,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool3x1,bool3x1,*/CG_BOOL3x1,//CG_BOOL,3,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool3x2,bool3x2,*/CG_BOOL3x2,//CG_BOOL,3,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool3x3,bool3x3,*/CG_BOOL3x3,//CG_BOOL,3,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool3x4,bool3x4,*/CG_BOOL3x4,//CG_BOOL,3,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool4x1,bool4x1,*/CG_BOOL4x1,//CG_BOOL,4,1,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool4x2,bool4x2,*/CG_BOOL4x2,//CG_BOOL,4,2,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool4x3,bool4x3,*/CG_BOOL4x3,//CG_BOOL,4,3,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(Bool4x4,bool4x4,*/CG_BOOL4x4,//CG_BOOL,4,4,CG_PARAMETERCLASS_MATRIX) +/*CG_DATATYPE_MACRO(String,string,*/CG_STRING,//CG_STRING,0,1,CG_PARAMETERCLASS_OBJECT) +/*CG_DATATYPE_MACRO(Program,program,*/CG_PROGRAM_TYPE,//CG_PROGRAM_TYPE,0,0,CG_PARAMETERCLASS_OBJECT) +/*CG_DATATYPE_MACRO(Texture,texture,*/CG_TEXTURE,//CG_TEXTURE,0,0,CG_PARAMETERCLASS_OBJECT) //#undef CG_DATATYPE_MACRO - - diff --git a/make/stub_includes/cg/CG/cg_enums.h b/make/stub_includes/cg/CG/cg_enums.h index 24d97a320..cb7262feb 100755 --- a/make/stub_includes/cg/CG/cg_enums.h +++ b/make/stub_includes/cg/CG/cg_enums.h @@ -89,7 +89,9 @@ /*CG_ENUM_MACRO(*/CG_CURRENT=/*, */4117,//) /*CG_ENUM_MACRO(*/CG_LITERAL=/*, */4118,//) /*CG_ENUM_MACRO(*/CG_VERSION=/*, */4119,//) +/*CG_ENUM_MACRO(*/CG_ROW_MAJOR=/*, */4120,//) +/*CG_ENUM_MACRO(*/CG_COLUMN_MAJOR=/*, */4121,//) -#undef CG_ENUM_MACRO +// #undef CG_ENUM_MACRO diff --git a/make/stub_includes/cg/CG/cg_errors.h b/make/stub_includes/cg/CG/cg_errors.h index 2ad510f8f..c785da252 100644 --- a/make/stub_includes/cg/CG/cg_errors.h +++ b/make/stub_includes/cg/CG/cg_errors.h @@ -8,7 +8,7 @@ /* * - * Copyright (c) 2002, NVIDIA Corporation. + * Copyright (c) 2002-2004, NVIDIA Corporation. * * * @@ -278,5 +278,70 @@ CG_TYPE_IS_NOT_DEFINED_IN_PROGRAM_ERROR= "source parameter is not defined within the given program " "or does not match the type with the same name in the program.")*/ +CG_INVALID_EFFECT_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/40,/* + CG_INVALID_EFFECT_HANDLE_ERROR, + "Invalid effect handle.")*/ + +CG_INVALID_STATE_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/41,/* + CG_INVALID_STATE_HANDLE_ERROR, + "Invalid state handle.")*/ + +CG_INVALID_STATE_ASSIGNMENT_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/42,/* + CG_INVALID_STATE_ASSIGNMENT_HANDLE_ERROR, + "Invalid stateassignment handle.")*/ + +CG_INVALID_PASS_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/43,/* + CG_INVALID_PASS_HANDLE_ERROR, + "Invalid pass handle.")*/ + +CG_INVALID_ANNOTATION_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/44,/* + CG_INVALID_ANNOTATION_HANDLE_ERROR, + "Invalid annotation handle.")*/ + +CG_INVALID_TECHNIQUE_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/45,/* + CG_INVALID_TECHNIQUE_HANDLE_ERROR, + "Invalid technique handle.")*/ + +CG_INVALID_PARAMETER_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/46,/* + CG_INVALID_PARAMETER_HANDLE_ERROR, + "Invalid parameter handle.")*/ + +CG_STATE_ASSIGNMENT_TYPE_MISMATCH_ERROR= +/*CG_ERROR_MACRO(*/47,/* + CG_STATE_ASSIGNMENT_TYPE_MISMATCH_ERROR, + "Invalid parameter handle.")*/ + +CG_INVALID_FUNCTION_HANDLE_ERROR= +/*CG_ERROR_MACRO(*/48,/* + CG_INVALID_FUNCTION_HANDLE_ERROR, + "Invalid function handle.")*/ + +CG_INVALID_TECHNIQUE_ERROR= +/*CG_ERROR_MACRO(*/49,/* + CG_INVALID_TECHNIQUE_ERROR, + "Technique did not pass validation.")*/ + +CG_INVALID_POINTER_ERROR= +/*CG_ERROR_MACRO(*/50,/* + CG_INVALID_POINTER_ERROR, + "The supplied pointer is NULL.")*/ + +CG_NOT_ENOUGH_DATA_ERROR= +/*CG_ERROR_MACRO(*/51,/* + CG_NOT_ENOUGH_DATA_ERROR, + "Not enough data was provided.")*/ + +CG_NON_NUMERIC_PARAMETER_ERROR= +/*CG_ERROR_MACRO(*/52,/* + CG_NON_NUMERIC_PARAMETER_ERROR, + "The parameter is not of a numeric type.")*/ + //#undef CG_ERROR_MACRO diff --git a/make/stub_includes/cg/CG/cg_profiles.h b/make/stub_includes/cg/CG/cg_profiles.h index c77f45229..8217a569a 100644 --- a/make/stub_includes/cg/CG/cg_profiles.h +++ b/make/stub_includes/cg/CG/cg_profiles.h @@ -91,6 +91,7 @@ /*CG_PROFILE_MACRO(DX9Pixel20,ps_2_0,*/CG_PROFILE_PS_2_0=/*,"ps_2_0",*/6162,//0) /*CG_PROFILE_MACRO(DX9Pixel2x,ps_2_x,*/CG_PROFILE_PS_2_X=/*,"ps_2_x",*/6163,//0) +/*CG_PROFILE_MACRO(Generic, generic,*/ GENERIC=/*, "generic",*/ 7002,//0) //#undef CG_PROFILE_MACRO #undef CG_IN_PROFILES_INCLUDE diff --git a/make/stub_includes/macosx/cglext.c b/make/stub_includes/macosx/cglext.c new file mode 100755 index 000000000..14010fcc4 --- /dev/null +++ b/make/stub_includes/macosx/cglext.c @@ -0,0 +1 @@ +#include <cglext.h> diff --git a/make/stub_includes/win32/wglext.c b/make/stub_includes/win32/wglext.c new file mode 100755 index 000000000..9c6120411 --- /dev/null +++ b/make/stub_includes/win32/wglext.c @@ -0,0 +1,13 @@ +#define GLAPI + +// Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +// "glext.h" are parsed. +#define GL_GLEXT_PROTOTYPES + +#include <GL/gl.h> + +// Bring in the wgl extensions +#define WGL_WGLEXT_PROTOTYPES +#define SKIP_WGL_HANDLE_DEFINITIONS +#include <windows.h> +#include <GL/wglext.h> diff --git a/make/stub_includes/win32/windows.h b/make/stub_includes/win32/windows.h index fa4ae1c95..e2d78deef 100644 --- a/make/stub_includes/win32/windows.h +++ b/make/stub_includes/win32/windows.h @@ -4,6 +4,7 @@ #define FAR #define WINBASEAPI #define WINGDIAPI +#define WINUSERAPI #define WINAPI #define APIENTRY #define CONST const diff --git a/make/stub_includes/win32/wingdi.h b/make/stub_includes/win32/wingdi.h index 2141135e7..35f754178 100644 --- a/make/stub_includes/win32/wingdi.h +++ b/make/stub_includes/win32/wingdi.h @@ -144,6 +144,25 @@ typedef struct tagPIXELFORMATDESCRIPTOR #define ERROR_PROC_NOT_FOUND 127 #define ERROR_INVALID_WINDOW_HANDLE 1400 +/* + * ShowWindow() Commands + */ +#define SW_HIDE 0 +#define SW_SHOWNORMAL 1 +#define SW_NORMAL 1 +#define SW_SHOWMINIMIZED 2 +#define SW_SHOWMAXIMIZED 3 +#define SW_MAXIMIZE 3 +#define SW_SHOWNOACTIVATE 4 +#define SW_SHOW 5 +#define SW_MINIMIZE 6 +#define SW_SHOWMINNOACTIVE 7 +#define SW_SHOWNA 8 +#define SW_RESTORE 9 +#define SW_SHOWDEFAULT 10 +#define SW_FORCEMINIMIZE 11 +#define SW_MAX 11 + // Windows routines WINBASEAPI DWORD WINAPI GetLastError(VOID); WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName); @@ -183,10 +202,11 @@ WINGDIAPI BOOL WINAPI DeleteDC(HDC); WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ); WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ); -// Routines for creation of a dummy device context and OpenGL context -// for the purposes of getting wglChoosePixelFormatARB and associated -// routines -WINGDIAPI HDC WINAPI GetDC(HDC); -WINGDIAPI HDC WINAPI CreateDummyWindow(int,int,int,int); -WINGDIAPI VOID WINAPI DestroyDummyWindow(HWND,HDC); -WINGDIAPI VOID WINAPI NativeEventLoop(); +// Routines for creation of a dummy window, device context and OpenGL +// context for the purposes of getting wglChoosePixelFormatARB and +// associated routines +HDC CreateDummyWindow(int,int,int,int); +WINUSERAPI BOOL WINAPI ShowWindow(HWND hWnd, int nCmdShow); +WINUSERAPI HDC WINAPI GetDC(HWND); +WINUSERAPI int WINAPI ReleaseDC(HWND hWnd, HDC hDC); +WINUSERAPI BOOL WINAPI DestroyWindow(HWND hWnd); diff --git a/make/stub_includes/common/gl-impl.c b/make/stub_includes/x11/glxext.c index 53221a21a..67906a088 100644 --- a/make/stub_includes/common/gl-impl.c +++ b/make/stub_includes/x11/glxext.c @@ -12,12 +12,3 @@ #include <X11/Xlib.h> #include <X11/Xutil.h> #include <GL/glxext.h> - -// Bring in the wgl extensions -#define WGL_WGLEXT_PROTOTYPES -#define SKIP_WGL_HANDLE_DEFINITIONS -#include <windows.h> -#include <GL/wglext.h> - -// Bring in the Mac OS X cgl extensions -#include <GL/cglext.h> diff --git a/make/wgl-CustomCCode.c b/make/wgl-CustomCCode.c index be233fd9a..0fe9ee628 100755 --- a/make/wgl-CustomCCode.c +++ b/make/wgl-CustomCCode.c @@ -1,37 +1,25 @@ #include <stdio.h> -LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +#define JOGL_DUMMY_WINDOW_NAME "__jogl_dummy_window" + +LRESULT CALLBACK DummyWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { + return DefWindowProc(hWnd,uMsg,wParam,lParam); +} + ATOM oglClass = 0; HWND CreateDummyWindow( int x, int y, int width, int height ) { - RECT rect; HINSTANCE hInstance; DWORD dwExStyle; DWORD dwStyle; HWND hWnd; - ZeroMemory( &rect, sizeof( rect ) ); - // I don't know if we need this but it can't hurt - if( width < 0 ) { - rect.left = x + width; - rect.right = x; - } else { - rect.left = x; - rect.right = x + width; - } - if( height < 0 ) { - rect.top = y + height; - rect.bottom = y; - } else { - rect.top = y; - rect.bottom = y + height; - } + hInstance = GetModuleHandle(NULL); - if( !oglClass ) { WNDCLASS wc; ZeroMemory( &wc, sizeof( wc ) ); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; - wc.lpfnWndProc = (WNDPROC) WndProc; + wc.lpfnWndProc = (WNDPROC) DummyWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; @@ -39,7 +27,7 @@ HWND CreateDummyWindow( int x, int y, int width, int height ) { wc.hCursor = NULL; wc.hbrBackground = NULL; wc.lpszMenuName = NULL; - wc.lpszClassName = "OpenGL"; + wc.lpszClassName = JOGL_DUMMY_WINDOW_NAME; if( !(oglClass = RegisterClass( &wc )) ) { printf( "RegisterClass Failed: %d\n", GetLastError() ); return( 0 ); @@ -48,52 +36,13 @@ HWND CreateDummyWindow( int x, int y, int width, int height ) { dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; dwStyle = WS_OVERLAPPEDWINDOW; - if( !(hWnd=CreateWindowEx( dwExStyle, "OpenGL", "OpenGL", + if( !(hWnd=CreateWindowEx( dwExStyle, + JOGL_DUMMY_WINDOW_NAME, + JOGL_DUMMY_WINDOW_NAME, dwStyle | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, - rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, + x, y, width, height, NULL, NULL, hInstance, NULL ) ) ) { return( 0 ); } return( hWnd ); } - -void NativeEventLoop() { - MSG msg; - BOOL ret; - // Grab windows system messages from queue - while( ( ret = GetMessage( &msg, NULL, 0, 0 ) ) != 0 ) { - if( ret == -1 ) { - printf( "Error GetMessage: %d", GetLastError() ); - } else { - DispatchMessage( &msg ); - } - } -} - -void DestroyDummyWindow(HWND handle, HDC hdc) { - // Post a close window message from shutdown hook thread to - // window message pump thread - if( !PostMessage( handle, WM_CLOSE, 0, (LPARAM) hdc ) ) { - printf( "PostMessage Failed: %d\n", GetLastError() ); - } -} - -LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch( uMsg ) { - case WM_CLOSE: - // Destroy HDC - if( ReleaseDC( hWnd, (HDC) lParam ) != 1 ) { - printf( "Error Releasing DC: %d\n", GetLastError() ); - } - // Destroy HWND - if( DestroyWindow( hWnd ) == 0 ) { - printf( "Error Destroying Window: %d\n", GetLastError() ); - } - break; - case WM_DESTROY: - // Terminate Dummy Window - PostQuitMessage(0); - return(0); - } - return DefWindowProc(hWnd,uMsg,wParam,lParam); -} diff --git a/make/wglext.cfg b/make/wglext.cfg new file mode 100644 index 000000000..bc27252a5 --- /dev/null +++ b/make/wglext.cfg @@ -0,0 +1,58 @@ +# This .cfg file is used to generate the interface and implementing +# class for the WGL extensions. +Package com.sun.opengl.impl.windows +Style InterfaceAndImpl +JavaClass WGLExt +ImplPackage com.sun.opengl.impl.windows +ImplJavaClass WGLExtImpl +Include gl-common-win32.cfg + +EmitProcAddressTable true +ProcAddressTableClassName WGLExtProcAddressTable +ContextVariableName _context + +# Ignore everything that doesn't start with wgl or WGL +Ignore ^[^wW].+ + +CustomCCode #define WIN32_LEAN_AND_MEAN +CustomCCode #include <windows.h> +CustomCCode #undef WIN32_LEAN_AND_MEAN +CustomCCode #include <stdlib.h> +CustomCCode #include <stddef.h> +CustomCCode #include <malloc.h> + +CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "glext.h" are parsed. */ +CustomCCode #define GL_GLEXT_PROTOTYPES + +CustomCCode /* Define WGL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +CustomCCode "wglext.h" are parsed. */ +CustomCCode #define WGL_GLEXT_PROTOTYPES + +CustomCCode /* Include the OpenGL headers */ +CustomCCode #include <GL/gl.h> +CustomCCode #include <GL/wglext.h> + +CustomCCode /* This typedef is only needed for VC6 */ +CustomCCode #if _MSC_VER <= 1200 +CustomCCode typedef int intptr_t; +CustomCCode #endif + +CustomJavaCode WGLExt public boolean isFunctionAvailable(String glFunctionName); +CustomJavaCode WGLExt public boolean isExtensionAvailable(String glExtensionName); + +CustomJavaCode WGLExtImpl public WGLExtImpl(WindowsGLContext context) { +CustomJavaCode WGLExtImpl this._context = context; +CustomJavaCode WGLExtImpl } + +CustomJavaCode WGLExtImpl public boolean isFunctionAvailable(String glFunctionName) +CustomJavaCode WGLExtImpl { +CustomJavaCode WGLExtImpl return _context.isFunctionAvailable(glFunctionName); +CustomJavaCode WGLExtImpl } + +CustomJavaCode WGLExtImpl public boolean isExtensionAvailable(String glExtensionName) +CustomJavaCode WGLExtImpl { +CustomJavaCode WGLExtImpl return _context.isExtensionAvailable(glExtensionName); +CustomJavaCode WGLExtImpl } + +CustomJavaCode WGLExtImpl private WindowsGLContext _context; diff --git a/make/wingdi-win32.cfg b/make/wingdi-win32.cfg index a3c5a5ebb..d5b630a89 100644 --- a/make/wingdi-win32.cfg +++ b/make/wingdi-win32.cfg @@ -1,6 +1,6 @@ # This .cfg file is used to generate the interface to the wgl routines # used internally by the WindowsGLContext implementation. -Package net.java.games.jogl.impl.windows +Package com.sun.opengl.impl.windows JavaOutputDir ..\build\gensrc\classes NativeOutputDir ..\build\gensrc\native\jogl JavaClass WGL |