summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/HowToBuild.html49
-rw-r--r--make/build-junit.xml3
-rw-r--r--nbproject/ide-file-targets.xml79
-rwxr-xr-xnbproject/project.xml49
-rw-r--r--src/jogl/classes/javax/media/opengl/GLProfile.java67
-rwxr-xr-xsrc/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java163
-rwxr-xr-xtools/jackpotc/bttf16
-rw-r--r--tools/jackpotc/jogl1Tojogl2.hint26
-rwxr-xr-xtools/jackpotc/setup21
-rw-r--r--tools/jackpotc/test/oldgears/.gitignore1
-rw-r--r--tools/jackpotc/test/oldgears/build.xml90
-rw-r--r--tools/jackpotc/test/oldgears/nbproject/build-impl.xml883
-rw-r--r--tools/jackpotc/test/oldgears/nbproject/genfiles.properties8
-rw-r--r--tools/jackpotc/test/oldgears/nbproject/project.properties74
-rw-r--r--tools/jackpotc/test/oldgears/nbproject/project.xml77
-rw-r--r--tools/jackpotc/test/oldgears/src/jogl111/gears/Gears.java6
-rw-r--r--www/index.html986
17 files changed, 915 insertions, 1683 deletions
diff --git a/doc/HowToBuild.html b/doc/HowToBuild.html
index df84c9d7a..271a179c8 100644
--- a/doc/HowToBuild.html
+++ b/doc/HowToBuild.html
@@ -90,32 +90,31 @@
<li>xorg-dev</li>
<li>Optional: Your card vendor's proprietary driver</li>
</ul>
-
</li>
- </ul>
- </li>
- <li> <b>OpenSuSE</b> 10.2 or later
- <ul>
- <li>git</li>
- <li>gcc</li>
- <li>x11-devel</li>
- <li>mesa-devel</li>
- </ul>
- </li>
- <li> <b>CentOS / Red Hat Enterprise Linux</b> 5.4 or later<br/>
- <ul>
- <li>git</li>
- <li>gcc</li>
- <li>mesa-libGL-devel</li>
- <li>libICE-devel</li>
- <li>libSM-devel</li>
- <li>libX11-devel</li>
- <li>libXau-devel</li>
- <li>libXdmcp-devel</li>
- <li>libXt-devel</li>
- <li>libXxf86vm-devel</li>
- <li>xorg-x11-proto-devel</li>
- <li>Optional: Your card vendor's proprietary driver</li>
+ <li> <b>OpenSuSE</b> 10.2 or later
+ <ul>
+ <li>git</li>
+ <li>gcc</li>
+ <li>x11-devel</li>
+ <li>mesa-devel</li>
+ </ul>
+ </li>
+ <li> <b>CentOS / Red Hat Enterprise Linux</b> 5.4 or later<br/>
+ <ul>
+ <li>git</li>
+ <li>gcc</li>
+ <li>mesa-libGL-devel</li>
+ <li>libICE-devel</li>
+ <li>libSM-devel</li>
+ <li>libX11-devel</li>
+ <li>libXau-devel</li>
+ <li>libXdmcp-devel</li>
+ <li>libXt-devel</li>
+ <li>libXxf86vm-devel</li>
+ <li>xorg-x11-proto-devel</li>
+ <li>Optional: Your card vendor's proprietary driver</li>
+ </ul>
+ </li>
</ul>
</li>
<li> <b>OpenSolaris</b> SPARC and x86, 32- and 64-bit
diff --git a/make/build-junit.xml b/make/build-junit.xml
index 3ec367cbb..9b7f48987 100644
--- a/make/build-junit.xml
+++ b/make/build-junit.xml
@@ -110,6 +110,7 @@
<batchtest todir="${results.junit}">
<fileset dir="${classes}">
<include name="${java.dir.test}/**/Test*CORE*"/>
+ <exclude name="**/*$$*"/>
</fileset>
<formatter usefile="false" type="brief"/>
<formatter usefile="true" type="xml"/>
@@ -127,6 +128,7 @@
<!-- results in absolute path -->
<fileset dir="${classes}">
<include name="${java.dir.test}/**/Test*NEWT*"/>
+ <exclude name="**/*$$*"/>
</fileset>
<sequential>
<var name="test.class.path" unset="true"/>
@@ -195,6 +197,7 @@
<batchtest todir="${results.junit}">
<fileset dir="${classes}">
<include name="${java.dir.test}/**/Test*AWT*"/>
+ <exclude name="**/*$$*"/>
</fileset>
<formatter usefile="false" type="brief"/>
<formatter usefile="true" type="xml"/>
diff --git a/nbproject/ide-file-targets.xml b/nbproject/ide-file-targets.xml
new file mode 100644
index 000000000..dd98d30f1
--- /dev/null
+++ b/nbproject/ide-file-targets.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project basedir=".." name="GlueGen-IDE">
+ <!-- edit the following targets according to your needs -->
+ <!-- (more info: http://www.netbeans.org/kb/articles/freeform-config.html-->
+ <property name="libpath" value="${basedir}/build/lib"/>
+ <target name="init">
+ <path id="cp">
+ <pathelement path="${jdk.home}/lib/tools.jar:${ant.core.lib}:${ant.home}/lib/ant-junit.jar"/>
+ <pathelement location="../gluegen/make/lib/junit.jar"/>
+ <pathelement location="../gluegen/build/gluegen-rt.jar"/>
+ <pathelement location="build/test/build/classes"/>
+ <pathelement location="build/jogl/classes"/>
+ <pathelement location="build/jogl/gensrc/classes"/>
+ <pathelement location="build/newt/classes"/>
+ <pathelement location="build/nativewindow/classes"/>
+ <pathelement location="build/nativewindow/gensrc/classes"/>
+ </path>
+ </target>
+ <target name="compile-test" depends="init">
+ <mkdir dir="build/test/build/classes"/>
+ <javac debug="true" debuglevel="lines,vars,source" destdir="build/test/build/classes" failonerror="false" source="1.5" srcdir="src/junit" includeantruntime="false">
+ <classpath refid="cp"/>
+ </javac>
+ </target>
+ <target name="compile-selected-files-in-junit" depends="init">
+ <fail unless="files">Must set property 'files'</fail>
+ <mkdir dir="build/test/build/classes"/>
+ <javac debug="true" debuglevel="lines,vars,source" destdir="build/test/build/classes" includes="${files}" source="1.5" srcdir="src/junit" includeantruntime="false">
+ <classpath refid="cp"/>
+ </javac>
+ </target>
+ <target name="run-selected-file-in-junit" depends="compile-test">
+ <fail unless="run.class">Must set property 'run.class'</fail>
+ <java classname="${run.class}" failonerror="true" fork="true">
+ <jvmarg value="-Djava.library.path=${libpath}"/>
+ <classpath refid="cp"/>
+ </java>
+ </target>
+ <target depends="compile-test" name="test-selected-file-in-junit">
+ <fail unless="run.class">Must set property 'run.class'</fail>
+ <junit errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="once" showoutput="true">
+ <test name="${run.class}"/>
+ <jvmarg value="-Djava.library.path=${libpath}"/>
+ <classpath refid="cp"/>
+ <formatter type="brief" usefile="false"/>
+ </junit>
+ </target>
+ <target name="debug-selected-file-in-junit" depends="compile-test,init">
+ <fail unless="debug.class">Must set property 'debug.class'</fail>
+ <nbjpdastart addressproperty="jpda.address" name="JOGL" transport="dt_socket">
+ <classpath refid="cp"/>
+ </nbjpdastart>
+ <junit errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="once" showoutput="true">
+ <test name="${debug.class}"/>
+ <classpath refid="cp"/>
+ <jvmarg value="-Djava.library.path=${libpath}"/>
+ <jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
+ <formatter type="brief" usefile="false"/>
+ </junit>
+ </target>
+ <!-- TODO: edit the following target according to your needs -->
+ <!-- (more info: http://www.netbeans.org/kb/articles/freeform-config.html#runsingle) -->
+ <target name="run-selected-file-in-java">
+ <fail unless="run.class">Must set property 'run.class'</fail>
+ <java classname="${run.class}" failonerror="true" fork="true">
+ <classpath/>
+ </java>
+ </target>
+ <!-- TODO: edit the following target according to your needs -->
+ <!-- (more info: http://www.netbeans.org/kb/articles/freeform-config.html#compilesingle) -->
+ <target name="compile-selected-files-in-java">
+ <fail unless="files">Must set property 'files'</fail>
+ <mkdir dir="build/classes"/>
+ <javac destdir="build/classes" includes="${files}" source="1.5" srcdir="src/java">
+ <classpath path="build/classes:${jdk.home}/lib/tools.jar:${ant.core.lib}:lib/antlr-3.2.jar"/>
+ </javac>
+ </target>
+</project>
diff --git a/nbproject/project.xml b/nbproject/project.xml
index 887e3f8c2..55eca73f7 100755
--- a/nbproject/project.xml
+++ b/nbproject/project.xml
@@ -102,6 +102,45 @@
</arity>
</context>
</action>
+ <action name="debug.single">
+ <script>nbproject/ide-file-targets.xml</script>
+ <target>debug-selected-file-in-junit</target>
+ <context>
+ <property>debug.class</property>
+ <folder>src/junit</folder>
+ <pattern>\.java$</pattern>
+ <format>java-name</format>
+ <arity>
+ <one-file-only/>
+ </arity>
+ </context>
+ </action>
+ <action name="debug.test.single">
+ <script>nbproject/ide-file-targets.xml</script>
+ <target>debug-selected-file-in-junit</target>
+ <context>
+ <property>debug.class</property>
+ <folder>src/junit</folder>
+ <pattern>\.java$</pattern>
+ <format>java-name</format>
+ <arity>
+ <one-file-only/>
+ </arity>
+ </context>
+ </action>
+ <action name="compile.single">
+ <script>nbproject/ide-file-targets.xml</script>
+ <target>compile-selected-files-in-junit</target>
+ <context>
+ <property>files</property>
+ <folder>src/junit</folder>
+ <pattern>\.java$</pattern>
+ <format>relative-path</format>
+ <arity>
+ <separated-files>,</separated-files>
+ </arity>
+ </context>
+ </action>
</ide-actions>
<export>
<type>folder</type>
@@ -149,15 +188,21 @@
</view>
<subprojects/>
</general-data>
- <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1">
+ <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>src/newt/classes</package-root>
<package-root>src/jogl/classes</package-root>
<package-root>src/nativewindow/classes</package-root>
<package-root>build/jogl/gensrc/classes</package-root>
<package-root>build/nativewindow/gensrc/classes</package-root>
+ <classpath mode="compile">../gluegen/build/gluegen-rt.jar</classpath>
+ <built-to>bin</built-to>
+ <source-level>1.4</source-level>
+ </compilation-unit>
+ <compilation-unit>
<package-root>src/junit</package-root>
- <classpath mode="compile">../gluegen/build/gluegen-rt.jar:../gluegen/make/lib/junit-4.5.jar</classpath>
+ <unit-tests/>
+ <classpath mode="compile">build/jogl/classes:build/jogl/gensrc/classes:build/newt/classes:build/nativewindow/classes:build/nativewindow/gensrc/classes:build/test/build/classes:${jdk.home}/lib/tools.jar:${ant.core.lib}:${ant.home}/lib/ant-junit.jar:../gluegen/make/lib/antlr.jar:../gluegen/make/lib/junit.jar:../gluegen/build/gluegen-rt.jar</classpath>
<built-to>bin</built-to>
<source-level>1.5</source-level>
</compilation-unit>
diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java
index 3d0f4a3ce..21d32e16a 100644
--- a/src/jogl/classes/javax/media/opengl/GLProfile.java
+++ b/src/jogl/classes/javax/media/opengl/GLProfile.java
@@ -36,15 +36,11 @@
package javax.media.opengl;
-import com.jogamp.common.util.*;
+import com.jogamp.common.util.ReflectionUtil;
import com.jogamp.opengl.impl.Debug;
-import com.jogamp.opengl.impl.GLJNILibLoader;
import com.jogamp.opengl.impl.GLDrawableFactoryImpl;
import com.jogamp.opengl.impl.GLDynamicLookupHelper;
-import com.jogamp.opengl.impl.GLDynamicLibraryBundleInfo;
import com.jogamp.opengl.impl.DesktopGLDynamicLookupHelper;
-import com.jogamp.opengl.impl.DesktopGLDynamicLibraryBundleInfo;
-import com.jogamp.common.jvm.JVMUtil;
import java.util.HashMap;
import java.util.Iterator;
import java.security.*;
@@ -60,7 +56,8 @@ import javax.media.nativewindow.NativeWindowFactory;
* The platform default profile may be used, using {@link GLProfile#GetProfileDefault()},
* or more specialized versions using the other static GetProfile methods.
*/
-public class GLProfile implements Cloneable {
+public class GLProfile {
+
public static final boolean DEBUG = Debug.debug("GLProfile");
//
@@ -89,7 +86,6 @@ public class GLProfile implements Cloneable {
public static final String glAvailabilityToString() {
boolean avail;
- String str;
StringBuffer sb = new StringBuffer();
sb.append("GLAvailability[Native[GL4bc ");
@@ -376,7 +372,7 @@ public class GLProfile implements Cloneable {
return glProfile;
}
}
- throw new GLException("Profiles "+list2String(profiles)+" not available");
+ throw new GLException("Profiles "+array2String(profiles)+" not available");
}
/** Indicates whether the native OpenGL ES1 profile is in use.
@@ -420,14 +416,6 @@ public class GLProfile implements Cloneable {
return getGLImplBaseClassName(profileImpl);
}
- public Object clone() {
- try {
- return super.clone();
- } catch (Exception e) {
- throw new GLException(e);
- }
- }
-
/**
* @param o GLProfile object to compare with
* @return true if given Object is a GLProfile and
@@ -436,20 +424,26 @@ public class GLProfile implements Cloneable {
public final boolean equals(Object o) {
if(o instanceof GLProfile) {
GLProfile glp = (GLProfile)o;
- return profile.equals(glp.getName()) &&
- profileImpl.equals(glp.getImplName()) ;
+ return profile.equals(glp.getName()) && profileImpl.equals(glp.getImplName()) ;
}
return false;
}
+
+ public int hashCode() {
+ int hash = 5;
+ hash = 97 * hash + (this.profileImpl != null ? this.profileImpl.hashCode() : 0);
+ hash = 97 * hash + (this.profile != null ? this.profile.hashCode() : 0);
+ return hash;
+ }
/**
* @param glp GLProfile to compare with
* @throws GLException if given GLProfile and this aren't equal
*/
- public final void verifyEquality(GLProfile glp)
- throws GLException
- {
- if(!this.equals(glp)) throw new GLException("GLProfiles are not equal: "+this+" != "+glp);
+ public final void verifyEquality(GLProfile glp) throws GLException {
+ if(!this.equals(glp)) {
+ throw new GLException("GLProfiles are not equal: "+this+" != "+glp);
+ }
}
public final String getName() {
@@ -856,16 +850,10 @@ public class GLProfile implements Cloneable {
* Tries the profiles implementation and native libraries.
* Throws an GLException if no profile could be found at all.
*/
- static {
- // run the whole static initialization privileged to speed up,
- // since this skips checking further access
- AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
+ private static void initProfiles() {
NativeWindowFactory.initSingleton();
- AccessControlContext acc = AccessController.getContext();
-
isAWTAvailable = NativeWindowFactory.isAWTAvailable() &&
ReflectionUtil.isClassAvailable("javax.media.opengl.awt.GLCanvas") ; // JOGL
@@ -889,7 +877,7 @@ public class GLProfile implements Cloneable {
//
// - Instantiate GLDrawableFactory incl its shared dummy drawable/context,
// which will register at GLContext ..
- //
+ //
t=null;
// if successfull it has a shared dummy drawable and context created
@@ -986,12 +974,23 @@ public class GLProfile implements Cloneable {
System.err.println("GLProfile.static "+glAvailabilityToString());
}
- return null;
- }
+ }
+
+ /**
+ * Initializes available profiles eagerly.
+ */
+ static {
+ // run the whole static initialization privileged to speed up,
+ // since this skips checking further access
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ initProfiles();
+ return null;
+ }
});
if(null==defaultGLProfile) {
- throw new GLException("No profile available: "+list2String(GL_PROFILE_LIST_ALL)+", "+glAvailabilityToString());
+ throw new GLException("No profile available: "+array2String(GL_PROFILE_LIST_ALL)+", "+glAvailabilityToString());
}
}
@@ -1004,7 +1003,7 @@ public class GLProfile implements Cloneable {
public static void initSingleton() {
}
- private static final String list2String(String[] list) {
+ private static final String array2String(String[] list) {
StringBuffer msg = new StringBuffer();
msg.append("[");
for (int i = 0; i < list.length; i++) {
diff --git a/src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java b/src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java
new file mode 100755
index 000000000..ed8a5dd0f
--- /dev/null
+++ b/src/junit/com/jogamp/test/junit/jogl/awt/TestSwingAWT01GLn.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (c) 2010 Michael Bien. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name Michael Bien or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * MICHAEL BIEN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ */
+
+package com.jogamp.test.junit.jogl.awt;
+
+import java.lang.reflect.InvocationTargetException;
+import javax.media.opengl.GLProfile;
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.awt.GLCanvas;
+import com.jogamp.opengl.util.Animator;
+
+import com.jogamp.test.junit.jogl.demos.gl2.gears.Gears;
+import java.awt.Frame;
+import java.awt.Window;
+import javax.swing.JFrame;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.junit.Assume.*;
+import static org.junit.Assert.*;
+import static javax.swing.SwingUtilities.*;
+
+/**
+ * Tests context creation + display on various kinds of Window implementations.
+ * @author Michael Bien
+ */
+public class TestSwingAWT01GLn {
+
+ private Window[] windows;
+
+
+ @BeforeClass
+ public static void startup() {
+ System.out.println("GLProfile <static> "+GLProfile.glAvailabilityToString());
+ }
+
+ @Before
+ public void init() {
+ windows = new Window[]{
+ new Window(null),
+ new Frame("Frame GL test"),
+ new JFrame("JFrame GL test")
+ };
+ }
+
+ protected void runTestGL(final GLCapabilities caps) throws InterruptedException, InvocationTargetException {
+
+ for (final Window window : windows) {
+
+ System.out.println("testing with "+window.getClass().getName());
+
+ // final array as mutable container hack
+ final GLCanvas[] glCanvas = new GLCanvas[1];
+
+ Runnable test = new Runnable() {
+ public void run() {
+ glCanvas[0] = new GLCanvas(caps);
+ glCanvas[0].addGLEventListener(new Gears());
+ window.add(glCanvas[0]);
+ window.setSize(512, 512);
+ glCanvas[0].display();
+ window.setVisible(true);
+ }
+ };
+
+ Runnable cleanup = new Runnable() {
+ public void run() {
+ System.out.println("cleaning up...");
+ window.setVisible(false);
+ try {
+ window.removeAll();
+ } catch (Throwable t) {
+ assumeNoException(t);
+ t.printStackTrace();
+ }
+ window.dispose();
+ }
+
+ };
+
+ //swing on EDT..
+ if(window instanceof JFrame) {
+ invokeAndWait(test);
+ }else{
+ test.run();
+ }
+
+ Animator animator = new Animator(glCanvas[0]);
+ animator.start();
+ Thread.sleep(500);
+ animator.stop();
+
+ if(window instanceof JFrame) {
+ invokeAndWait(cleanup);
+ }else{
+ cleanup.run();
+ }
+ }
+ }
+
+ @Test
+ public void test01GLDefault() throws InterruptedException, InvocationTargetException {
+ GLProfile glp = GLProfile.getDefault();
+ System.out.println("GLProfile Default: "+glp);
+ GLCapabilities caps = new GLCapabilities(glp);
+ runTestGL(caps);
+ }
+
+ @Test
+ public void test03GLMaxFixed() throws InterruptedException, InvocationTargetException {
+ GLProfile maxFixed = GLProfile.getMaxFixedFunc();
+ System.out.println("GLProfile MaxFixed: "+maxFixed);
+ GLCapabilities caps = new GLCapabilities(maxFixed);
+ try {
+ runTestGL(caps);
+ } catch (Throwable t) {
+ // FIXME:
+ // Stop test and ignore if GL3bc and GL4bc
+ // currently this won't work on ATI!
+ if(maxFixed.getName().equals(GLProfile.GL3bc) ||
+ maxFixed.getName().equals(GLProfile.GL4bc)) {
+ t.printStackTrace();
+ assumeNoException(t);
+ }
+ // else .. serious unexpected exception
+ }
+ }
+
+ public static void main(String args[]) {
+ org.junit.runner.JUnitCore.main(TestSwingAWT01GLn.class.getName());
+ }
+}
diff --git a/tools/jackpotc/bttf b/tools/jackpotc/bttf
index b1aed8c72..ba384702f 100755
--- a/tools/jackpotc/bttf
+++ b/tools/jackpotc/bttf
@@ -1,12 +1,20 @@
#!/bin/bash
-SRC="./test/oldgears/src/"
-LIBS="./test/oldgears/lib/old/jogl.jar:./test/oldgears/lib/new/jogl.all.jar:./test/oldgears/lib/new/jogl.awt.jar"
-OUTPUT="./test/oldgears/build"
+PROJECT="./test/oldgears"
+SRC="$PROJECT/src"
+GENSRC="$PROJECT/gensrc"
+LIBS="$PROJECT/lib/old/jogl.jar:$PROJECT/lib/new/jogl.all.jar:$PROJECT/lib/new/jogl.awt.jar"
+OUTPUT="$PROJECT/build"
FILESET=`find $SRC -type f -name "*.java"`
echo "Back to the Future"
+echo "transforming files: $FILESET"
mkdir $OUTPUT
./lib/jackpotc -sourcepath $SRC -cp $LIBS -d $OUTPUT -Ajackpot30_extra_hints=./jogl1Tojogl2.hint $FILESET
echo "patching..."
-patch -o ${OUTPUT}/Patched.java $FILESET ${OUTPUT}/META-INF/upgrade/upgrade.diff
+mkdir "$GENSRC"
+mkdir "$GENSRC/jogl2/"
+mkdir "$GENSRC/jogl2/gears/"
+patch -o $GENSRC/jogl2/gears/Gears.java $FILESET ${OUTPUT}/META-INF/upgrade/upgrade.diff
+
+echo "done"
diff --git a/tools/jackpotc/jogl1Tojogl2.hint b/tools/jackpotc/jogl1Tojogl2.hint
index 9352c959e..9fa7d39dc 100644
--- a/tools/jackpotc/jogl1Tojogl2.hint
+++ b/tools/jackpotc/jogl1Tojogl2.hint
@@ -1,14 +1,30 @@
-// rules for automatic jogl 1.1.1 -> jogl 2 refactorings
+// rules for automatic jogl 1.1.1 -> jogl 2 code transformation
-//'JOGL2 API change: javax.media.opengl.GLCanvas -> javax.media.opengl.awt.GLCanvas':
-//javax.media.opengl.GLCanvas=>javax.media.opengl.awt.GLCanvas;;
+// - - - simple move/rename refactorings - - -
+'JOGL2 API change: javax.media.opengl.GLCanvas -> javax.media.opengl.awt.GLCanvas':
+javax.media.opengl.GLCanvas=>javax.media.opengl.awt.GLCanvas;;
-//'JOGL2 API change: javax.media.opengl.GLJPanel -> javax.media.opengl.awt.GLJPanel':
-//javax.media.opengl.GLJPanel=>javax.media.opengl.awt.GLJPanel;;
+'JOGL2 API change: javax.media.opengl.GLJPanel -> javax.media.opengl.awt.GLJPanel':
+javax.media.opengl.GLJPanel=>javax.media.opengl.awt.GLJPanel;;
+
+// causes an error:
+// dummy.java:1: illegal character: \8203
+// SEVERE: null
+// java.lang.ClassCastException: com.sun.tools.javac.tree.JCTree$JCNewClass cannot be cast to com.sun.source.tree.ClassTree
+//'JOGL2 API change: com.sun.opengl.util.Animator -> com.​jogamp.​opengl.​util.Animator':
+//com.sun.opengl.util.Animator=>com.​jogamp.​opengl.​util.Animator;;
'JOGL2 API change: javax.media.opengl.GL -> javax.media.opengl.GL2':
javax.media.opengl.GL=>javax.media.opengl.GL2;;
+'JOGL2 API change: javax.media.opengl.DebugGL -> javax.media.opengl.DebugGL2':
+javax.media.opengl.DebugGL=>javax.media.opengl.DebugGL2;;
+
+'JOGL2 API change: javax.media.opengl.TraceGL -> javax.media.opengl.TraceGL2':
+javax.media.opengl.TraceGL=>javax.media.opengl.TraceGL2;;
+
+
+// - - - API changes - - -
'JOGL2 API change: new javax.media.opengl.GLCapabilities(javax.media.opengl.GLProfile)':
new javax.media.opengl.GLCapabilities()=>
new javax.media.opengl.GLCapabilities(javax.media.opengl.GLProfile.get(javax.media.opengl.GLProfile.GL2));;
diff --git a/tools/jackpotc/setup b/tools/jackpotc/setup
index c68e5a9b9..58731b72d 100755
--- a/tools/jackpotc/setup
+++ b/tools/jackpotc/setup
@@ -1,20 +1,27 @@
#!/bin/bash
+rm -Rf lib
mkdir lib
cd ./lib
+
+echo "downloading Jackpot..."
wget http://bitbucket.org/jlahoda/jackpot30/downloads/jackpotc.zip
unzip -oj jackpotc.zip
cd ../test
+rm -Rf oldgears/lib
mkdir oldgears/lib
mkdir oldgears/lib/new
mkdir oldgears/lib/old
-cd oldgears/lib/new
-#TOCO temporary location
-wget http://people.fh-landshut.de/~mbien/jogamp/ref/new/jogl.all.jar
-wget http://people.fh-landshut.de/~mbien/jogamp/ref/new/jogl.awt.jar
-wget http://people.fh-landshut.de/~mbien/jogamp/ref/new/gluegen-rt.jar
+cd oldgears/lib/new
+echo "downloading JOGL 2..."
+wget http://jogamp.org/deployment/jogl-next/jogl.all.jar
+wget http://jogamp.org/deployment/jogl-next/jogl.awt.jar
+wget http://jogamp.org/deployment/jogl-next/gluegen-rt.jar
cd ../old
-wget http://people.fh-landshut.de/~mbien/jogamp/ref/old/jogl.jar
-wget http://people.fh-landshut.de/~mbien/jogamp/ref/old/gluegen-rt.jar
+echo "downloading old JOGL 1.1.1 build..."
+wget http://jogamp.org/deployment/archive/jogl-old-1.1.1/jogl.jar
+wget http://jogamp.org/deployment/archive/gluegen-old-1.0b6/gluegen-rt.jar
+
+echo "done"
diff --git a/tools/jackpotc/test/oldgears/.gitignore b/tools/jackpotc/test/oldgears/.gitignore
index 7fda8a712..563e9d62c 100644
--- a/tools/jackpotc/test/oldgears/.gitignore
+++ b/tools/jackpotc/test/oldgears/.gitignore
@@ -1,3 +1,4 @@
build
+gensrc
dist
nbproject/private
diff --git a/tools/jackpotc/test/oldgears/build.xml b/tools/jackpotc/test/oldgears/build.xml
index 4234a96e6..80a045cb4 100644
--- a/tools/jackpotc/test/oldgears/build.xml
+++ b/tools/jackpotc/test/oldgears/build.xml
@@ -1,74 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- You may freely edit this file. See commented blocks below for -->
-<!-- some examples of how to customize the build. -->
-<!-- (If you delete it and reopen the project it will be recreated.) -->
-<!-- By default, only the Clean and Build commands use this build script. -->
-<!-- Commands such as Run, Debug, and Test only use this build script if -->
-<!-- the Compile on Save feature is turned off for the project. -->
-<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
-<!-- in the project's Project Properties dialog box.-->
-<project name="oldgears" default="default" basedir=".">
- <description>Builds, tests, and runs the project oldgears.</description>
- <import file="nbproject/build-impl.xml"/>
- <!--
-
- There exist several targets which are by default empty and which can be
- used for execution of your tasks. These targets are usually executed
- before and after some main targets. They are:
-
- -pre-init: called before initialization of project properties
- -post-init: called after initialization of project properties
- -pre-compile: called before javac compilation
- -post-compile: called after javac compilation
- -pre-compile-single: called before javac compilation of single file
- -post-compile-single: called after javac compilation of single file
- -pre-compile-test: called before javac compilation of JUnit tests
- -post-compile-test: called after javac compilation of JUnit tests
- -pre-compile-test-single: called before javac compilation of single JUnit test
- -post-compile-test-single: called after javac compilation of single JUunit test
- -pre-jar: called before JAR building
- -post-jar: called after JAR building
- -post-clean: called after cleaning build products
-
- (Targets beginning with '-' are not intended to be called on their own.)
-
- Example of inserting an obfuscator after compilation could look like this:
-
- <target name="-post-compile">
- <obfuscate>
- <fileset dir="${build.classes.dir}"/>
- </obfuscate>
- </target>
- For list of available properties check the imported
- nbproject/build-impl.xml file.
+<!--
+ invoke the shell scripts 'setup' prior to building this project.
+ @author Michael Bien
+-->
+<project name="oldgears" default="build" basedir=".">
+ <description>Builds, tests, and runs the project oldgears.</description>
- Another way to customize the build is by overriding existing main targets.
- The targets of interest are:
-
- -init-macrodef-javac: defines macro for javac compilation
- -init-macrodef-junit: defines macro for junit execution
- -init-macrodef-debug: defines macro for class debugging
- -init-macrodef-java: defines macro for class execution
- -do-jar-with-manifest: JAR building (if you are using a manifest)
- -do-jar-without-manifest: JAR building (if you are not using a manifest)
- run: execution of project
- -javadoc-build: Javadoc generation
- test-report: JUnit report generation
-
- An example of overriding the target for project execution could look like this:
-
- <target name="run" depends="oldgears-impl.jar">
- <exec dir="bin" executable="launcher.exe">
- <arg file="${dist.jar}"/>
- </exec>
- </target>
-
- Notice that the overridden target depends on the jar target and not only on
- the compile target as the regular run target does. Again, for a list of available
- properties which you can use, check the target you are overriding in the
- nbproject/build-impl.xml file.
+ <target name="build" depends="clean">
+ <exec dir="${basedir}/../../" executable="/bin/sh" spawn="false" failonerror="true">
+ <arg value="bttf"/>
+ </exec>
+ <javac srcdir="src/jogl111" destdir="build/jogl111" classpath="lib/old/jogl.jar:lib/old/gluegen-rt.jar" includeantruntime="false"/>
+ <javac srcdir="gensrc/jogl2" destdir="build/jogl2" classpath="lib/new/jogl.all.jar:lib/new/jogl.awt.jar:lib/new/gluegen-rt.jar" includeantruntime="false"/>
+ </target>
+
+ <target name="clean">
+ <delete dir="build" quiet="true"/>
+ <delete dir="gensrc" quiet="true"/>
+ <mkdir dir="build"/>
+ <mkdir dir="gensrc"/>
+ <mkdir dir="build/jogl111"/>
+ <mkdir dir="build/jogl2"/>
+ </target>
- -->
</project>
diff --git a/tools/jackpotc/test/oldgears/nbproject/build-impl.xml b/tools/jackpotc/test/oldgears/nbproject/build-impl.xml
deleted file mode 100644
index 80f4e3647..000000000
--- a/tools/jackpotc/test/oldgears/nbproject/build-impl.xml
+++ /dev/null
@@ -1,883 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-*** GENERATED FROM project.xml - DO NOT EDIT ***
-*** EDIT ../build.xml INSTEAD ***
-
-For the purpose of easier reading the script
-is divided into following sections:
-
- - initialization
- - compilation
- - jar
- - execution
- - debugging
- - javadoc
- - junit compilation
- - junit execution
- - junit debugging
- - applet
- - cleanup
-
- -->
-<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="oldgears-impl">
- <fail message="Please build using Ant 1.7.1 or higher.">
- <condition>
- <not>
- <antversion atleast="1.7.1"/>
- </not>
- </condition>
- </fail>
- <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
- <!--
- ======================
- INITIALIZATION SECTION
- ======================
- -->
- <target name="-pre-init">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="-pre-init" name="-init-private">
- <property file="nbproject/private/config.properties"/>
- <property file="nbproject/private/configs/${config}.properties"/>
- <property file="nbproject/private/private.properties"/>
- </target>
- <target depends="-pre-init,-init-private" name="-init-user">
- <property file="${user.properties.file}"/>
- <!-- The two properties below are usually overridden -->
- <!-- by the active platform. Just a fallback. -->
- <property name="default.javac.source" value="1.4"/>
- <property name="default.javac.target" value="1.4"/>
- </target>
- <target depends="-pre-init,-init-private,-init-user" name="-init-project">
- <property file="nbproject/configs/${config}.properties"/>
- <property file="nbproject/project.properties"/>
- </target>
- <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
- <available file="${manifest.file}" property="manifest.available"/>
- <available file="${application.splash}" property="splashscreen.available"/>
- <condition property="main.class.available">
- <and>
- <isset property="main.class"/>
- <not>
- <equals arg1="${main.class}" arg2="" trim="true"/>
- </not>
- </and>
- </condition>
- <condition property="manifest.available+main.class">
- <and>
- <isset property="manifest.available"/>
- <isset property="main.class.available"/>
- </and>
- </condition>
- <condition property="do.mkdist">
- <and>
- <isset property="libs.CopyLibs.classpath"/>
- <not>
- <istrue value="${mkdist.disabled}"/>
- </not>
- </and>
- </condition>
- <condition property="manifest.available+main.class+mkdist.available">
- <and>
- <istrue value="${manifest.available+main.class}"/>
- <isset property="do.mkdist"/>
- </and>
- </condition>
- <condition property="manifest.available+main.class+mkdist.available+splashscreen.available">
- <and>
- <istrue value="${manifest.available+main.class+mkdist.available}"/>
- <istrue value="${splashscreen.available}"/>
- </and>
- </condition>
- <condition property="do.archive">
- <not>
- <istrue value="${jar.archive.disabled}"/>
- </not>
- </condition>
- <condition property="do.archive+manifest.available">
- <and>
- <isset property="manifest.available"/>
- <istrue value="${do.archive}"/>
- </and>
- </condition>
- <condition property="do.archive+manifest.available+main.class">
- <and>
- <istrue value="${manifest.available+main.class}"/>
- <istrue value="${do.archive}"/>
- </and>
- </condition>
- <condition property="do.archive+manifest.available+main.class+mkdist.available">
- <and>
- <istrue value="${manifest.available+main.class+mkdist.available}"/>
- <istrue value="${do.archive}"/>
- </and>
- </condition>
- <condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available">
- <and>
- <istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/>
- <istrue value="${do.archive}"/>
- </and>
- </condition>
- <condition property="have.tests">
- <or>
- <available file="${test.src.dir}"/>
- </or>
- </condition>
- <condition property="have.sources">
- <or>
- <available file="${src.dir}"/>
- </or>
- </condition>
- <condition property="netbeans.home+have.tests">
- <and>
- <isset property="netbeans.home"/>
- <isset property="have.tests"/>
- </and>
- </condition>
- <condition property="no.javadoc.preview">
- <and>
- <isset property="javadoc.preview"/>
- <isfalse value="${javadoc.preview}"/>
- </and>
- </condition>
- <property name="run.jvmargs" value=""/>
- <property name="javac.compilerargs" value=""/>
- <property name="work.dir" value="${basedir}"/>
- <condition property="no.deps">
- <and>
- <istrue value="${no.dependencies}"/>
- </and>
- </condition>
- <property name="javac.debug" value="true"/>
- <property name="javadoc.preview" value="true"/>
- <property name="application.args" value=""/>
- <property name="source.encoding" value="${file.encoding}"/>
- <property name="runtime.encoding" value="${source.encoding}"/>
- <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
- <and>
- <isset property="javadoc.encoding"/>
- <not>
- <equals arg1="${javadoc.encoding}" arg2=""/>
- </not>
- </and>
- </condition>
- <property name="javadoc.encoding.used" value="${source.encoding}"/>
- <property name="includes" value="**"/>
- <property name="excludes" value=""/>
- <property name="do.depend" value="false"/>
- <condition property="do.depend.true">
- <istrue value="${do.depend}"/>
- </condition>
- <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
- <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
- <length length="0" string="${endorsed.classpath}" when="greater"/>
- </condition>
- <property name="javac.fork" value="false"/>
- <property name="jar.index" value="false"/>
- <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
- </target>
- <target name="-post-init">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
- <fail unless="src.dir">Must set src.dir</fail>
- <fail unless="test.src.dir">Must set test.src.dir</fail>
- <fail unless="build.dir">Must set build.dir</fail>
- <fail unless="dist.dir">Must set dist.dir</fail>
- <fail unless="build.classes.dir">Must set build.classes.dir</fail>
- <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
- <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
- <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
- <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
- <fail unless="dist.jar">Must set dist.jar</fail>
- </target>
- <target name="-init-macrodef-property">
- <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
- <attribute name="name"/>
- <attribute name="value"/>
- <sequential>
- <property name="@{name}" value="${@{value}}"/>
- </sequential>
- </macrodef>
- </target>
- <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
- <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
- <attribute default="${src.dir}" name="srcdir"/>
- <attribute default="${build.classes.dir}" name="destdir"/>
- <attribute default="${javac.classpath}" name="classpath"/>
- <attribute default="${javac.processorpath}" name="processorpath"/>
- <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
- <attribute default="${includes}" name="includes"/>
- <attribute default="${excludes}" name="excludes"/>
- <attribute default="${javac.debug}" name="debug"/>
- <attribute default="${empty.dir}" name="sourcepath"/>
- <attribute default="${empty.dir}" name="gensrcdir"/>
- <element name="customize" optional="true"/>
- <sequential>
- <property location="${build.dir}/empty" name="empty.dir"/>
- <mkdir dir="${empty.dir}"/>
- <mkdir dir="@{apgeneratedsrcdir}"/>
- <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
- <src>
- <dirset dir="@{gensrcdir}" erroronmissingdir="false">
- <include name="*"/>
- </dirset>
- </src>
- <classpath>
- <path path="@{classpath}"/>
- </classpath>
- <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
- <compilerarg line="${javac.compilerargs}"/>
- <compilerarg value="-processorpath"/>
- <compilerarg path="@{processorpath}"/>
- <compilerarg line="${ap.processors.internal}"/>
- <compilerarg line="${annotation.processing.processor.options}"/>
- <compilerarg value="-s"/>
- <compilerarg path="@{apgeneratedsrcdir}"/>
- <compilerarg line="${ap.proc.none.internal}"/>
- <customize/>
- </javac>
- </sequential>
- </macrodef>
- </target>
- <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
- <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
- <attribute default="${src.dir}" name="srcdir"/>
- <attribute default="${build.classes.dir}" name="destdir"/>
- <attribute default="${javac.classpath}" name="classpath"/>
- <attribute default="${javac.processorpath}" name="processorpath"/>
- <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
- <attribute default="${includes}" name="includes"/>
- <attribute default="${excludes}" name="excludes"/>
- <attribute default="${javac.debug}" name="debug"/>
- <attribute default="${empty.dir}" name="sourcepath"/>
- <attribute default="${empty.dir}" name="gensrcdir"/>
- <element name="customize" optional="true"/>
- <sequential>
- <property location="${build.dir}/empty" name="empty.dir"/>
- <mkdir dir="${empty.dir}"/>
- <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
- <src>
- <dirset dir="@{gensrcdir}" erroronmissingdir="false">
- <include name="*"/>
- </dirset>
- </src>
- <classpath>
- <path path="@{classpath}"/>
- </classpath>
- <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
- <compilerarg line="${javac.compilerargs}"/>
- <customize/>
- </javac>
- </sequential>
- </macrodef>
- </target>
- <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
- <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
- <attribute default="${src.dir}" name="srcdir"/>
- <attribute default="${build.classes.dir}" name="destdir"/>
- <attribute default="${javac.classpath}" name="classpath"/>
- <sequential>
- <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
- <classpath>
- <path path="@{classpath}"/>
- </classpath>
- </depend>
- </sequential>
- </macrodef>
- <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
- <attribute default="${build.classes.dir}" name="destdir"/>
- <sequential>
- <fail unless="javac.includes">Must set javac.includes</fail>
- <pathconvert pathsep="," property="javac.includes.binary">
- <path>
- <filelist dir="@{destdir}" files="${javac.includes}"/>
- </path>
- <globmapper from="*.java" to="*.class"/>
- </pathconvert>
- <delete>
- <files includes="${javac.includes.binary}"/>
- </delete>
- </sequential>
- </macrodef>
- </target>
- <target name="-init-macrodef-junit">
- <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
- <attribute default="${includes}" name="includes"/>
- <attribute default="${excludes}" name="excludes"/>
- <attribute default="**" name="testincludes"/>
- <sequential>
- <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
- <batchtest todir="${build.test.results.dir}">
- <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
- <filename name="@{testincludes}"/>
- </fileset>
- </batchtest>
- <classpath>
- <path path="${run.test.classpath}"/>
- </classpath>
- <syspropertyset>
- <propertyref prefix="test-sys-prop."/>
- <mapper from="test-sys-prop.*" to="*" type="glob"/>
- </syspropertyset>
- <formatter type="brief" usefile="false"/>
- <formatter type="xml"/>
- <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
- <jvmarg line="${run.jvmargs}"/>
- </junit>
- </sequential>
- </macrodef>
- </target>
- <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
- <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
- <attribute default="${main.class}" name="name"/>
- <attribute default="${debug.classpath}" name="classpath"/>
- <attribute default="" name="stopclassname"/>
- <sequential>
- <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
- <classpath>
- <path path="@{classpath}"/>
- </classpath>
- </nbjpdastart>
- </sequential>
- </macrodef>
- <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
- <attribute default="${build.classes.dir}" name="dir"/>
- <sequential>
- <nbjpdareload>
- <fileset dir="@{dir}" includes="${fix.classes}">
- <include name="${fix.includes}*.class"/>
- </fileset>
- </nbjpdareload>
- </sequential>
- </macrodef>
- </target>
- <target name="-init-debug-args">
- <property name="version-output" value="java version &quot;${ant.java.version}"/>
- <condition property="have-jdk-older-than-1.4">
- <or>
- <contains string="${version-output}" substring="java version &quot;1.0"/>
- <contains string="${version-output}" substring="java version &quot;1.1"/>
- <contains string="${version-output}" substring="java version &quot;1.2"/>
- <contains string="${version-output}" substring="java version &quot;1.3"/>
- </or>
- </condition>
- <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
- <istrue value="${have-jdk-older-than-1.4}"/>
- </condition>
- <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
- <os family="windows"/>
- </condition>
- <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
- <isset property="debug.transport"/>
- </condition>
- </target>
- <target depends="-init-debug-args" name="-init-macrodef-debug">
- <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
- <attribute default="${main.class}" name="classname"/>
- <attribute default="${debug.classpath}" name="classpath"/>
- <element name="customize" optional="true"/>
- <sequential>
- <java classname="@{classname}" dir="${work.dir}" fork="true">
- <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
- <jvmarg line="${debug-args-line}"/>
- <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
- <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
- <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
- <jvmarg line="${run.jvmargs}"/>
- <classpath>
- <path path="@{classpath}"/>
- </classpath>
- <syspropertyset>
- <propertyref prefix="run-sys-prop."/>
- <mapper from="run-sys-prop.*" to="*" type="glob"/>
- </syspropertyset>
- <customize/>
- </java>
- </sequential>
- </macrodef>
- </target>
- <target name="-init-macrodef-java">
- <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
- <attribute default="${main.class}" name="classname"/>
- <attribute default="${run.classpath}" name="classpath"/>
- <element name="customize" optional="true"/>
- <sequential>
- <java classname="@{classname}" dir="${work.dir}" fork="true">
- <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
- <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
- <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
- <jvmarg line="${run.jvmargs}"/>
- <classpath>
- <path path="@{classpath}"/>
- </classpath>
- <syspropertyset>
- <propertyref prefix="run-sys-prop."/>
- <mapper from="run-sys-prop.*" to="*" type="glob"/>
- </syspropertyset>
- <customize/>
- </java>
- </sequential>
- </macrodef>
- </target>
- <target name="-init-macrodef-copylibs">
- <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
- <element name="customize" optional="true"/>
- <sequential>
- <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
- <pathconvert property="run.classpath.without.build.classes.dir">
- <path path="${run.classpath}"/>
- <map from="${build.classes.dir.resolved}" to=""/>
- </pathconvert>
- <pathconvert pathsep=" " property="jar.classpath">
- <path path="${run.classpath.without.build.classes.dir}"/>
- <chainedmapper>
- <flattenmapper/>
- <globmapper from="*" to="lib/*"/>
- </chainedmapper>
- </pathconvert>
- <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
- <copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
- <fileset dir="${build.classes.dir}"/>
- <manifest>
- <attribute name="Class-Path" value="${jar.classpath}"/>
- <customize/>
- </manifest>
- </copylibs>
- </sequential>
- </macrodef>
- </target>
- <target name="-init-presetdef-jar">
- <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
- <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
- <j2seproject1:fileset dir="${build.classes.dir}"/>
- </jar>
- </presetdef>
- </target>
- <target name="-init-ap-cmdline-properties">
- <property name="annotation.processing.enabled" value="true"/>
- <property name="annotation.processing.processors.list" value=""/>
- <property name="annotation.processing.processor.options" value=""/>
- <property name="annotation.processing.run.all.processors" value="true"/>
- <property name="javac.processorpath" value="${javac.classpath}"/>
- <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
- <condition property="ap.supported.internal" value="true">
- <not>
- <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
- </not>
- </condition>
- </target>
- <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
- <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
- <isfalse value="${annotation.processing.run.all.processors}"/>
- </condition>
- <condition else="" property="ap.proc.none.internal" value="-proc:none">
- <isfalse value="${annotation.processing.enabled}"/>
- </condition>
- </target>
- <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
- <property name="ap.cmd.line.internal" value=""/>
- </target>
- <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
- <!--
- ===================
- COMPILATION SECTION
- ===================
- -->
- <target name="-deps-jar-init" unless="built-jar.properties">
- <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
- <delete file="${built-jar.properties}" quiet="true"/>
- </target>
- <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
- <echo level="warn" message="Cycle detected: oldgears was already built"/>
- </target>
- <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
- <mkdir dir="${build.dir}"/>
- <touch file="${built-jar.properties}" verbose="false"/>
- <property file="${built-jar.properties}" prefix="already.built.jar."/>
- <antcall target="-warn-already-built-jar"/>
- <propertyfile file="${built-jar.properties}">
- <entry key="${basedir}" value=""/>
- </propertyfile>
- </target>
- <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
- <target depends="init" name="-check-automatic-build">
- <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
- </target>
- <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
- <antcall target="clean"/>
- </target>
- <target depends="init,deps-jar" name="-pre-pre-compile">
- <mkdir dir="${build.classes.dir}"/>
- </target>
- <target name="-pre-compile">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target if="do.depend.true" name="-compile-depend">
- <pathconvert property="build.generated.subdirs">
- <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
- <include name="*"/>
- </dirset>
- </pathconvert>
- <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
- </target>
- <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
- <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
- <copy todir="${build.classes.dir}">
- <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
- </copy>
- </target>
- <target if="has.persistence.xml" name="-copy-persistence-xml">
- <mkdir dir="${build.classes.dir}/META-INF"/>
- <copy todir="${build.classes.dir}/META-INF">
- <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
- </copy>
- </target>
- <target name="-post-compile">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
- <target name="-pre-compile-single">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
- <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
- <j2seproject3:force-recompile/>
- <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
- </target>
- <target name="-post-compile-single">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
- <!--
- ====================
- JAR BUILDING SECTION
- ====================
- -->
- <target depends="init" name="-pre-pre-jar">
- <dirname file="${dist.jar}" property="dist.jar.dir"/>
- <mkdir dir="${dist.jar.dir}"/>
- </target>
- <target name="-pre-jar">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available">
- <j2seproject1:jar/>
- </target>
- <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
- <j2seproject1:jar manifest="${manifest.file}"/>
- </target>
- <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
- <j2seproject1:jar manifest="${manifest.file}">
- <j2seproject1:manifest>
- <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
- </j2seproject1:manifest>
- </j2seproject1:jar>
- <echo>To run this application from the command line without Ant, try:</echo>
- <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
- <property location="${dist.jar}" name="dist.jar.resolved"/>
- <pathconvert property="run.classpath.with.dist.jar">
- <path path="${run.classpath}"/>
- <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
- </pathconvert>
- <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
- </target>
- <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen">
- <basename file="${application.splash}" property="splashscreen.basename"/>
- <mkdir dir="${build.classes.dir}/META-INF"/>
- <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
- <j2seproject3:copylibs>
- <customize>
- <attribute name="Main-Class" value="${main.class}"/>
- <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
- </customize>
- </j2seproject3:copylibs>
- <echo>To run this application from the command line without Ant, try:</echo>
- <property location="${dist.jar}" name="dist.jar.resolved"/>
- <echo>java -jar "${dist.jar.resolved}"</echo>
- </target>
- <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available">
- <j2seproject3:copylibs>
- <customize>
- <attribute name="Main-Class" value="${main.class}"/>
- </customize>
- </j2seproject3:copylibs>
- <echo>To run this application from the command line without Ant, try:</echo>
- <property location="${dist.jar}" name="dist.jar.resolved"/>
- <echo>java -jar "${dist.jar.resolved}"</echo>
- </target>
- <target name="-post-jar">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
- <!--
- =================
- EXECUTION SECTION
- =================
- -->
- <target depends="init,compile" description="Run a main class." name="run">
- <j2seproject1:java>
- <customize>
- <arg line="${application.args}"/>
- </customize>
- </j2seproject1:java>
- </target>
- <target name="-do-not-recompile">
- <property name="javac.includes.binary" value=""/>
- </target>
- <target depends="init,compile-single" name="run-single">
- <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
- <j2seproject1:java classname="${run.class}"/>
- </target>
- <target depends="init,compile-test-single" name="run-test-with-main">
- <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
- <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
- </target>
- <!--
- =================
- DEBUGGING SECTION
- =================
- -->
- <target depends="init" if="netbeans.home" name="-debug-start-debugger">
- <j2seproject1:nbjpdastart name="${debug.class}"/>
- </target>
- <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
- <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
- </target>
- <target depends="init,compile" name="-debug-start-debuggee">
- <j2seproject3:debug>
- <customize>
- <arg line="${application.args}"/>
- </customize>
- </j2seproject3:debug>
- </target>
- <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
- <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
- <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
- </target>
- <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
- <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
- <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
- <j2seproject3:debug classname="${debug.class}"/>
- </target>
- <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
- <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
- <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
- <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
- </target>
- <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
- <target depends="init" name="-pre-debug-fix">
- <fail unless="fix.includes">Must set fix.includes</fail>
- <property name="javac.includes" value="${fix.includes}.java"/>
- </target>
- <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
- <j2seproject1:nbjpdareload/>
- </target>
- <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
- <!--
- ===============
- JAVADOC SECTION
- ===============
- -->
- <target depends="init" if="have.sources" name="-javadoc-build">
- <mkdir dir="${dist.javadoc.dir}"/>
- <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
- <classpath>
- <path path="${javac.classpath}"/>
- </classpath>
- <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
- <filename name="**/*.java"/>
- </fileset>
- <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
- <include name="**/*.java"/>
- </fileset>
- </javadoc>
- </target>
- <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
- <nbbrowse file="${dist.javadoc.dir}/index.html"/>
- </target>
- <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
- <!--
- =========================
- JUNIT COMPILATION SECTION
- =========================
- -->
- <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
- <mkdir dir="${build.test.classes.dir}"/>
- </target>
- <target name="-pre-compile-test">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target if="do.depend.true" name="-compile-test-depend">
- <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
- </target>
- <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
- <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
- <copy todir="${build.test.classes.dir}">
- <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
- </copy>
- </target>
- <target name="-post-compile-test">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
- <target name="-pre-compile-test-single">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
- <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
- <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
- <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
- <copy todir="${build.test.classes.dir}">
- <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
- </copy>
- </target>
- <target name="-post-compile-test-single">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
- <!--
- =======================
- JUNIT EXECUTION SECTION
- =======================
- -->
- <target depends="init" if="have.tests" name="-pre-test-run">
- <mkdir dir="${build.test.results.dir}"/>
- </target>
- <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
- <j2seproject3:junit testincludes="**/*Test.java"/>
- </target>
- <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
- <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
- </target>
- <target depends="init" if="have.tests" name="test-report"/>
- <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
- <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
- <target depends="init" if="have.tests" name="-pre-test-run-single">
- <mkdir dir="${build.test.results.dir}"/>
- </target>
- <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
- <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
- <j2seproject3:junit excludes="" includes="${test.includes}"/>
- </target>
- <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
- <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
- </target>
- <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
- <!--
- =======================
- JUNIT DEBUGGING SECTION
- =======================
- -->
- <target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
- <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
- <property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
- <delete file="${test.report.file}"/>
- <mkdir dir="${build.test.results.dir}"/>
- <j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
- <customize>
- <syspropertyset>
- <propertyref prefix="test-sys-prop."/>
- <mapper from="test-sys-prop.*" to="*" type="glob"/>
- </syspropertyset>
- <arg value="${test.class}"/>
- <arg value="showoutput=true"/>
- <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
- <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
- </customize>
- </j2seproject3:debug>
- </target>
- <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
- <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
- </target>
- <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
- <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
- <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
- </target>
- <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
- <!--
- =========================
- APPLET EXECUTION SECTION
- =========================
- -->
- <target depends="init,compile-single" name="run-applet">
- <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
- <j2seproject1:java classname="sun.applet.AppletViewer">
- <customize>
- <arg value="${applet.url}"/>
- </customize>
- </j2seproject1:java>
- </target>
- <!--
- =========================
- APPLET DEBUGGING SECTION
- =========================
- -->
- <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
- <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
- <j2seproject3:debug classname="sun.applet.AppletViewer">
- <customize>
- <arg value="${applet.url}"/>
- </customize>
- </j2seproject3:debug>
- </target>
- <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
- <!--
- ===============
- CLEANUP SECTION
- ===============
- -->
- <target name="-deps-clean-init" unless="built-clean.properties">
- <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
- <delete file="${built-clean.properties}" quiet="true"/>
- </target>
- <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
- <echo level="warn" message="Cycle detected: oldgears was already built"/>
- </target>
- <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
- <mkdir dir="${build.dir}"/>
- <touch file="${built-clean.properties}" verbose="false"/>
- <property file="${built-clean.properties}" prefix="already.built.clean."/>
- <antcall target="-warn-already-built-clean"/>
- <propertyfile file="${built-clean.properties}">
- <entry key="${basedir}" value=""/>
- </propertyfile>
- </target>
- <target depends="init" name="-do-clean">
- <delete dir="${build.dir}"/>
- <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
- </target>
- <target name="-post-clean">
- <!-- Empty placeholder for easier customization. -->
- <!-- You can override this target in the ../build.xml file. -->
- </target>
- <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
- <target name="-check-call-dep">
- <property file="${call.built.properties}" prefix="already.built."/>
- <condition property="should.call.dep">
- <not>
- <isset property="already.built.${call.subproject}"/>
- </not>
- </condition>
- </target>
- <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
- <ant antfile="${call.script}" inheritall="false" target="${call.target}">
- <propertyset>
- <propertyref prefix="transfer."/>
- <mapper from="transfer.*" to="*" type="glob"/>
- </propertyset>
- </ant>
- </target>
-</project>
diff --git a/tools/jackpotc/test/oldgears/nbproject/genfiles.properties b/tools/jackpotc/test/oldgears/nbproject/genfiles.properties
deleted file mode 100644
index ece6336ba..000000000
--- a/tools/jackpotc/test/oldgears/nbproject/genfiles.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-build.xml.data.CRC32=b54c0362
-build.xml.script.CRC32=4f6e4669
-# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
-# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=b54c0362
-nbproject/build-impl.xml.script.CRC32=dff725e7
diff --git a/tools/jackpotc/test/oldgears/nbproject/project.properties b/tools/jackpotc/test/oldgears/nbproject/project.properties
deleted file mode 100644
index 956bfe6ba..000000000
--- a/tools/jackpotc/test/oldgears/nbproject/project.properties
+++ /dev/null
@@ -1,74 +0,0 @@
-application.title=oldgears
-application.vendor=the jogamp guy
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.run.all.processors=true
-
-build.classes.dir=${build.dir}/classes
-build.classes.excludes=**/*.java,**/*.form
-# This directory is removed when the project is cleaned:
-build.dir=build
-build.generated.dir=${build.dir}/generated
-build.generated.sources.dir=${build.dir}/generated-sources
-# Only compile against the classpath explicitly listed here:
-build.sysclasspath=ignore
-build.test.classes.dir=${build.dir}/test/classes
-build.test.results.dir=${build.dir}/test/results
-# Uncomment to specify the preferred debugger connection transport:
-#debug.transport=dt_socket
-debug.classpath=\
- ${run.classpath}
-debug.test.classpath=\
- ${run.test.classpath}
-# This directory is removed when the project is cleaned:
-dist.dir=dist
-dist.jar=${dist.dir}/oldgears.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-endorsed.classpath=
-excludes=
-file.reference.gluegen-rt.jar=lib/old/gluegen-rt.jar
-file.reference.jogl.jar=lib/old/jogl.jar
-includes=**
-jar.compress=false
-javac.classpath=\
- ${file.reference.gluegen-rt.jar}:\
- ${file.reference.jogl.jar}
-# Space-separated list of extra javac options
-javac.compilerargs=
-javac.deprecation=false
-javac.processorpath=\
- ${javac.classpath}
-javac.source=1.5
-javac.target=1.5
-javac.test.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-javadoc.additionalparam=
-javadoc.author=false
-javadoc.encoding=${source.encoding}
-javadoc.noindex=false
-javadoc.nonavbar=false
-javadoc.notree=false
-javadoc.private=false
-javadoc.splitindex=true
-javadoc.use=true
-javadoc.version=false
-javadoc.windowtitle=
-jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api"
-main.class=
-manifest.file=manifest.mf
-meta.inf.dir=${src.dir}/META-INF
-platform.active=default_platform
-run.classpath=\
- ${javac.classpath}:\
- ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project
-# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
-# or test-sys-prop.name=value to set system properties for unit tests):
-run.jvmargs=
-run.test.classpath=\
- ${javac.test.classpath}:\
- ${build.test.classes.dir}
-source.encoding=UTF-8
-src.dir=src
-test.src.dir=test
diff --git a/tools/jackpotc/test/oldgears/nbproject/project.xml b/tools/jackpotc/test/oldgears/nbproject/project.xml
index 7ab06952e..45d9265df 100644
--- a/tools/jackpotc/test/oldgears/nbproject/project.xml
+++ b/tools/jackpotc/test/oldgears/nbproject/project.xml
@@ -1,15 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>org.netbeans.modules.java.j2seproject</type>
+ <type>org.netbeans.modules.ant.freeform</type>
<configuration>
- <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+ <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
+ <!-- Do not use Project Properties customizer when editing this file manually. -->
<name>oldgears</name>
- <source-roots>
- <root id="src.dir"/>
- </source-roots>
- <test-roots>
- <root id="test.src.dir"/>
- </test-roots>
- </data>
+ <properties/>
+ <folders>
+ <source-folder>
+ <label>src/jogl111</label>
+ <type>java</type>
+ <location>src/jogl111</location>
+ </source-folder>
+ <source-folder>
+ <label>gensrc/jogl2</label>
+ <type>java</type>
+ <location>gensrc/jogl2</location>
+ </source-folder>
+ </folders>
+ <ide-actions>
+ <action name="build">
+ <target>build</target>
+ </action>
+ <action name="clean">
+ <target>clean</target>
+ </action>
+ <action name="rebuild">
+ <target>clean</target>
+ <target>build</target>
+ </action>
+ </ide-actions>
+ <export>
+ <type>folder</type>
+ <location>build</location>
+ <build-target>build</build-target>
+ </export>
+ <view>
+ <items>
+ <source-folder style="packages">
+ <label>src/jogl111</label>
+ <location>src/jogl111</location>
+ </source-folder>
+ <source-folder style="packages">
+ <label>gensrc/jogl2</label>
+ <location>gensrc/jogl2</location>
+ </source-folder>
+ <source-file>
+ <location>build.xml</location>
+ </source-file>
+ </items>
+ <context-menu>
+ <ide-action name="build"/>
+ <ide-action name="rebuild"/>
+ <ide-action name="clean"/>
+ </context-menu>
+ </view>
+ <subprojects/>
+ </general-data>
+ <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1">
+ <compilation-unit>
+ <package-root>gensrc/jogl2</package-root>
+ <classpath mode="compile">lib/new/gluegen-rt.jar:lib/new/jogl.all.jar:lib/new/jogl.awt.jar</classpath>
+ <built-to>build</built-to>
+ <source-level>1.4</source-level>
+ </compilation-unit>
+ <compilation-unit>
+ <package-root>src/jogl111</package-root>
+ <classpath mode="compile">lib/old/gluegen-rt.jar:lib/old/jogl.jar</classpath>
+ <source-level>1.4</source-level>
+ </compilation-unit>
+ </java-data>
</configuration>
</project>
diff --git a/tools/jackpotc/test/oldgears/src/jogl111/gears/Gears.java b/tools/jackpotc/test/oldgears/src/jogl111/gears/Gears.java
index 8f2cb7441..37ca60c0c 100644
--- a/tools/jackpotc/test/oldgears/src/jogl111/gears/Gears.java
+++ b/tools/jackpotc/test/oldgears/src/jogl111/gears/Gears.java
@@ -1,4 +1,4 @@
-package jogl111.gears;
+package gears;
import java.awt.*;
import java.awt.event.*;
@@ -7,6 +7,8 @@ import javax.media.opengl.*;
import com.sun.opengl.util.*;
/**
+ * slightly modified Gears demo used as jackpot testing purposes.
+ * - - -
* Gears.java <BR>
* author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel) <P>
*
@@ -49,7 +51,7 @@ public class Gears implements GLEventListener, MouseListener, MouseMotionListene
public void init(GLAutoDrawable drawable) {
// Use debug pipeline
- // drawable.setGL(new DebugGL(drawable.getGL()));
+ drawable.setGL(new DebugGL(drawable.getGL()));
GL gl = drawable.getGL();
diff --git a/www/index.html b/www/index.html
index 623727cb0..1794eb77b 100644
--- a/www/index.html
+++ b/www/index.html
@@ -19,597 +19,459 @@
<li><a href="../../jocl/www/">JOCL</a></li>
<li><a href="../../jogl-demos/www/">Demos</a></li>
<li><a href="../../wiki/">Wiki</a></li>
+ <li><a href="../../blog/">Blogs</a></li>
+ <li><a href="../../forum.html">Forums</a></li>
<li><a href="../../deployment/jogl-next/javadoc_public/">JavaDoc</a></li>
</ul>
</div>
- <div id="main" class="fill">
+ <div id="main">
+ <div id="sidebar">
+ <h3>Useful Links</h3>
+ <ul>
+ <li><a href="../../deployment/jogl-next/javadoc_public/">JOGL JavaDoc</a></li>
+ <li><a href="../../wiki/index.php/Jogl_Overview">Project Overview</a></li>
+ <li><a href="../doc/HowToBuild.html">Building JOGL</a></li>
+ <li><a href="../doc/deployment/JOGL-DEPLOYMENT.html">Deploying JOGL</a></li>
+ <li><a href="../../wiki/index.php/Jogl_Tutorial">Tutorial</a></li>
+ <li><a href="../doc/userguide/">Userguide</a></li>
+ <li><a href="../../wiki/index.php/Jogl_FAQ">FAQ</a></li>
+ <li><a href="http://www.opengl.org">OpenGL.org</a></li>
+ <li><a href="http://www.opengl.org/registry/">OpenGL Registry</a></li>
+ <li><a href="http://www.opengl.org/registry/doc/glspec40.core.20100311.pdf">OpenGL 4.0 core Specification</a></li>
+ <li><a href="http://www.opengl.org/registry/doc/glspec40.compatibility.20100311.pdf">OpenGL 4.0 compatibility Specification</a></li>
+ <li><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">GLSL 4.0 Specification</a></li>
+ <li><a href="http://www.khronos.org/files/opengl4-quick-reference-card.pdf">OpenGL/GLSL Quick Reference</a></li>
+ </ul>
+ <h3>Presentations</h3>
+ <ul>
+ <li><a href="http://www.siggraph.org/s2010/for_attendees/birds_feather">TODO: SIGGRAPH 2010</a></li>
+ </ul>
+ <h3>Archive</h3>
+ <ul>
+ <li><a href="BOF-3908-JOGL-slides.pdf"> JavaOne 2007 BOF Slides</a></li>
+ <li><a href="bof0899.pdf">JavaOne 2006 BOF Slides</a></li>
+ <li><a href="ts1361.pdf">JavaOne 2004 Slides</a></li>
+ <li><a href="2125.pdf">JavaOne 2003 Slides</a></li>
+ <li><a href="3167.pdf">JavaOne 2002 Slides</a></li>
+ <li><a href="http://jausoft.com/gl4java/">GL4Java</a></li>
+ </ul>
+ </div>
+ <div id="text">
+ <h3>Overview</h3>
+
+ <p>
+ The JOGL project hosts the development version of the
+ Java&trade; Binding for the OpenGL&reg; API (<a href="http://jcp.org/en/jsr/detail?id=231">JSR-231</a>),
+ and is designed to provide hardware-supported 3D graphics to applications written in Java.
+ JOGL provides full access to the
+ <a href="../doc/bouml/html-svg/">APIs in the OpenGL 1.3 - 3.0, &ge; 3.1, ES 1.x and ES 2.x specification</a>
+ as well as nearly all vendor extensions.
+ It integrates with the AWT and Swing widget sets, as well with custom windowing toolkits using the the NativeWindow API.
+ It is part of a suite of open-source technologies initiated by the Game Technology Group at Sun Microsystems.
+ </p>
+ <p>
+ Please see the <a href="http://jogamp.org/jogl-demos/www">JOGL demos</a> for illustrations of
+ advanced OpenGL techniques now possible with the Java platform.
+ </p>
- <table border="0" cellpadding="0" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top">
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top" width="100%">
- <h3>Overview</h3>
- </td>
- </tr>
- <tr>
- <td valign="top">
- <div align="justify">
- <p> The JOGL project hosts the development version of the
- Java&trade; Binding for the OpenGL&reg; API (<a href="http://jcp.org/en/jsr/detail?id=231">JSR-231</a>),
- and is designed to provide hardware-supported 3D graphics to applications written in Java.
- JOGL provides full access to the
- <a href="../doc/bouml/html-svg/">APIs in the OpenGL 1.3 - 3.0, &ge; 3.1, ES 1.x and ES 2.x specification</a>
- as well as nearly all vendor extensions.
- It integrates with the AWT and Swing widget sets, as well with custom windowing toolkits using the the NativeWindow API.
- It is part of a suite of open-source technologies initiated by the Game Technology Group at Sun Microsystems. </p>
- <p>Please see the <a href="http://jogamp.org/jogl-demos/www">JOGL demos</a> for illustrations of
- advanced OpenGL techniques now possible with the Java platform. </p>
- <p>You might be interesting about <a href="../doc/deployment/JOGL-DEPLOYMENT.html">JOGL Deployment</a>.</p>
- <p>Please have a look at the <a href="../../wiki/">Wiki</a>, including:
- <ul>
- <li><a href="../../wiki/index.php/Jogl_Overview">overview</a>,</li>
- <li><a href="../../wiki/index.php/Jogl_Tutorial">tutorial</a> and</li>
- <li><a href="../../wiki/index.php/Jogl_FAQ">FAQ</a>.</li>
- </ul></p>
- <p>Further more we the following developer documentation is available:
- <ul>
- <li><a href="../doc/HowToBuild.html">How to build the JOGL source tree</a></li>
- <li><a href="../doc/userguide/">A simple Userguide</a></li>
- </ul></p>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- <!--
- <table border="0" cellpadding="0" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top" width="50%">
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top">
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr> <td valign="top"> <div align="left"><font color="#ffffff"><strong>Documentation</strong></font></div> </td> </tr>
- <tr> <td valign="top" bgcolor="#F8F8F8">
- <ul>
- <li> <a href="http://kenai.com/projects/jogl/pages/Home/">Project Home</a></li>
- <li> <a href="http://download.java.net/media/jogl/www/">This Presentation Page</a></li>
- <li> <a href="http://download.java.net/media/jogl/demos/www/">Demos</a></li>
- <li> <a href="http://download.java.net/media/jogl/jogl-2.x-docs/">API Specification</a></li>
- <li> <a href="http://kenai.com/projects/jogl/pages/FAQ">FAQ</a></li>
- <li> <a href="http://download.java.net/media/jogl/doc/HowToBuild.html">How To Build</a></li>
- <li> <a href="http://download.java.net/media/jogl/doc/userguide/">Userguide</a></li>
- <li> <a href="http://www.javagaming.org/index.php?board=25.0">Forum JavaGaming</a></li>
- <li> <a href="http://blog.jausoft.com/category/computer-stuff/3d-opengl/jogl/">Sven&rsquo;s JOGL BLOG</a></li>
- <li> <a href="http://michael-bien.com/mbien/tags/jogl">Michael&rsquo;s JOGL BLOG</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr> <td valign="top"> <div align="left"><font color="#ffffff"><strong>Builds</strong></font></div> </td> </tr>
- <tr> <td valign="top" bgcolor="#F8F8F8">
- <ul>
- <li> <a href="http://download.java.net/media/jogl/builds/archive/">Archived Builds incl. archived signed webstart bundles</a></li>
- <li> <a href="http://download.java.net/media/jogl/jsr-231-2.x-webstart/">JSR-231 2.x Webstart Codebase</a></li>
- <li> <a href="http://download.java.net/media/jogl/jsr-231-2.x-demos-webstart/">Demos 2.x Webstart Codebase</a></li>
- <li> <a href="http://download.java.net/media/gluegen/webstart-2.x/">GlueGen 2.x Webstart Codebase</a></li>
- <li> <a href="http://download.java.net/media/gluegen/builds/archive/">GlueGen Archived Builds</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr> <td valign="top"> <div align="left"><font color="#ffffff"><strong>Nightlies</strong></font></div> </td> </tr>
- <tr> <td valign="top" bgcolor="#F8F8F8">
- <ul>
- <li> <a href="http://download.java.net/media/jogl/jogl-2.x-docs-next/">API Specification</a></li>
- <li> <a href="http://download.java.net/media/jogl/demos/www/test.html">Demos</a></li>
- <li> <a href="http://download.java.net/media/jogl/builds/nightly/">Nightly Build</a></li>
- <li> <a href="http://download.java.net/media/jogl/jsr-231-2.x-webstart-next/">JSR-231 2.x Webstart Next Codebase</a></li>
- <li> <a href="http://download.java.net/media/jogl/jsr-231-2.x-demos-webstart-next/">Demos 2.x Webstart Next Codebase</a></li>
- <li> <a href="http://download.java.net/media/gluegen/webstart-2.x-next/">GlueGen 2.x Webstart Codebase</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <td valign="top">
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td>
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr> <td valign="top"> <div align="left"><font color="#ffffff"><strong>JOGL 1.x</strong></font></div> </td> </tr>
- <tr> <td valign="top" bgcolor="#F8F8F8">
- <ul>
- <li> <a href="http://download.java.net/media/jogl/builds/archive/">Archived Builds incl. archived signed webstart bundles</a></li>
- <li> <a href="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/">Old JOGL 1.x Webstart Codebase</a></li>
- <li> <a href="http://download.java.net/media/jogl/builds/archive/jsr-231-1.x-webstart-current/">New JOGL 1.x Webstart Codebase</a></li>
- <li> <a href="http://download.java.net/media/gluegen/builds/archive/">GlueGen Archived Builds</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top">
- <div align="left"><font color="#ffffff"><strong>Useful Links</strong></font></div>
- </td>
- </tr>
- <tr>
- <td valign="top" bgcolor="#F8F8F8">
- <ul>
- <li><a href="http://www.opengl.org" target="_blank">OpenGL Home</a></li>
- <li><a href="http://kenai.com/projects/netbeans-opengl-pack/" target="_blank">The NetBeans OpenGL Pack</a></li>
- <li><a href="https://jdk6.dev.java.net/plugin2/jnlp/" target="_blank">Java Plugin JNLP support</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top">
- <div align="left"><font color="#ffffff"><strong>Historic Stuff</strong></font></div>
- </td>
- </tr>
- <tr>
- <td valign="top" bgcolor="#F8F8F8">
- <ul>
- <li><a href="BOF-3908-JOGL-slides.pdf"> JavaOne 2007 BOF Slides on JOGL</a></li>
- <li><a href="bof0899.pdf">JavaOne 2006 BOF Slides on JOGL</a></li>
- <li><a href="ts1361.pdf">JavaOne 2004 Presentation Slides on JOGL</a></li>
- <li><a href="2125.pdf">JavaOne 2003 Presentation Slides on JOGL</a></li>
- <li><a href="3167.pdf">JavaOne 2002 Slides</a> on <a href="http://jausoft.com/gl4java/" target="_blank">OpenGL for Java</a></li>
- <li><a href="http://jausoft.com/gl4java/" target="_blank">OpenGL for Java</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- -->
- <table border="0" cellpadding="0" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td valign="top" width="100%">
- <table border="0" cellpadding="5" cellspacing="1" width="100%">
- <tbody>
- <tr>
- <td width="589">
- <h3>Featured Projects</h3>
- </td>
- </tr>
- <tr>
- <td>
- <table border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td>
- The following are a few examples of projects and products using
- JOGL. To have your project featured here, please email the <a
- href="mailto:mediastream<at>jogamp.org">project owners</a>.
- </td>
- </tr>
- </table>
- <br/>
- </td>
- </tr>
- <tr>
- <td bgcolor="#F8F8F8">
- <table border="0" cellspacing="15">
- <tbody>
- <tr>
- <td width="50%">
- <a href="http://worldwind.arc.nasa.gov/java/"><img src="worldwind.jpg"
- width="160" height="159" align="left" alt="World Wind"></img>NASA World Wind
- Java</a> provides next-generation 3-D virtual globe technology for
- applications written in the Java programming language. It supplies a
- suite of open-source components that developers include in their own
- applications, providing virtual globe functionality to any application
- that can benefit from it. World Wind Java's components perform as well
- as, or better than, any other known implementation and utilize the
- OpenGL API for 3-D graphics via JOGL. See WWJ Technical Lead Tom
- Gaskins' <a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3489&yr=2007&track=2">JavaOne
- 2007</a> presentation on World Wind Java and the DiSTI Corporation's
- <a href="http://www.disti.com/Products/demonstrations/java.html">F-16 flight simulator</a>
- built using World Wind Java.
- </td>
- <td bgcolor="#F8F8F8">
- <a href="http://openendedgroup.com/field"><img src="field.png"
- width="160" height="159" align="left" alt="Field"></img>Field</a> is an
- open-source development environment for digital art and experimental
- code writing. Built around the needs of programmers that manipulate
- images, make animations and compose music, Field seeks to tie
- text-based programming with ad hoc visual metaphors. Field uses Python
- and other programming languages and wants to be integrated into your
- own personal code-base. And it comes with special support for the <a
- href="http://processing.org/">Processing</a> environment. Field uses
- JOGL for its UI and its built-in drawing system; it provides a
- JOGL-based scene-graph library for 3D visualization.
- </td>
- </tr>
+ <h3>Featured Projects</h3>
+ <p>
+ The following are a few examples of projects and products using
+ JOGL. To have your project featured here, please email the
+ <a href="mailto:mediastream [ at ] jogamp . org">project owners</a>.
+ </p>
+
+ <table border="0" cellpadding="0" cellspacing="1" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top" width="100%">
+ <table border="0" cellpadding="5" cellspacing="1" width="100%">
+ <tbody>
+ <tr>
+ <td >
+ <table border="0" cellspacing="15">
+ <tbody>
+ <tr>
+ <td width="50%">
+ <a href="http://worldwind.arc.nasa.gov/java/"><img src="worldwind.jpg"
+ width="160" height="159" align="left" alt="World Wind"></img>NASA World Wind
+ Java</a> provides next-generation 3-D virtual globe technology for
+ applications written in the Java programming language. It supplies a
+ suite of open-source components that developers include in their own
+ applications, providing virtual globe functionality to any application
+ that can benefit from it. World Wind Java's components perform as well
+ as, or better than, any other known implementation and utilize the
+ OpenGL API for 3-D graphics via JOGL. See WWJ Technical Lead Tom
+ Gaskins' <a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3489&amp;yr=2007&amp;track=2">JavaOne
+ 2007</a> presentation on World Wind Java and the DiSTI Corporation's
+ <a href="http://www.disti.com/Products/demonstrations/java.html">F-16 flight simulator</a>
+ built using World Wind Java.
+ </td>
+ <td >
+ <a href="http://openendedgroup.com/field"><img src="field.png"
+ width="160" height="159" align="left" alt="Field"></img>Field</a> is an
+ open-source development environment for digital art and experimental
+ code writing. Built around the needs of programmers that manipulate
+ images, make animations and compose music, Field seeks to tie
+ text-based programming with ad hoc visual metaphors. Field uses Python
+ and other programming languages and wants to be integrated into your
+ own personal code-base. And it comes with special support for the <a
+ href="http://processing.org/">Processing</a> environment. Field uses
+ JOGL for its UI and its built-in drawing system; it provides a
+ JOGL-based scene-graph library for 3D visualization.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.madlix.com"><img src="madlix.png" width="160"
- height="160" align="left" alt="Madlix"></img>MADLIX</a> lets users insert
- 3D-content in web pages, blogs, Google pages, community presentations
- and more. MADLIX is JOGL-powered and runs smoothly inside all
- Java-enabled browsers, with no need for custom plug-ins or application
- installation. The <a href="http://www.madlix.com">on-line gallery</a>
- features high-quality content ready for insertion. MADLIX is
- accompanied by the MADLIX exporter tool enabling 3D artists to
- directly export their 3D artwork from Autodesk Maya to the MADLIX
- gallery. The exporter features pre-view functionality as well as a
- standalone viewer, supporting the MADLIX file format and the open
- standard file format COLLADA.
+ <tr>
+ <td width="50%">
+ <a href="http://www.madlix.com"><img src="madlix.png" width="160"
+ height="160" align="left" alt="Madlix"></img>MADLIX</a> lets users insert
+ 3D-content in web pages, blogs, Google pages, community presentations
+ and more. MADLIX is JOGL-powered and runs smoothly inside all
+ Java-enabled browsers, with no need for custom plug-ins or application
+ installation. The <a href="http://www.madlix.com">on-line gallery</a>
+ features high-quality content ready for insertion. MADLIX is
+ accompanied by the MADLIX exporter tool enabling 3D artists to
+ directly export their 3D artwork from Autodesk Maya to the MADLIX
+ gallery. The exporter features pre-view functionality as well as a
+ standalone viewer, supporting the MADLIX file format and the open
+ standard file format COLLADA.
- </td>
- <td bgcolor="#F8F8F8">
- <a href="http://bytonic.de/html/jake2.html">
- <img src="jake2.jpg" width="160" height="128" align="left" alt="Jake2"></img>Jake2</a> is a port
- of id Software's GPL'd Quake II engine from C to Java done by <a
- href="http://bytonic.de/">bytonic software</a>. You can run the game
- via <a href="http://bytonic.de/html/jake2_webstart.html">Java Web
- Start</a> with <b>no manual installation</b> on all of JOGL's
- supported platforms.
- </td>
- </tr>
+ </td>
+ <td >
+ <a href="http://bytonic.de/html/jake2.html">
+ <img src="jake2.jpg" width="160" height="128" align="left" alt="Jake2"></img>Jake2</a> is a port
+ of id Software's GPL'd Quake II engine from C to Java done by <a
+ href="http://bytonic.de/">bytonic software</a>. You can run the game
+ via <a href="http://bytonic.de/html/jake2_webstart.html">Java Web
+ Start</a> with <b>no manual installation</b> on all of JOGL's
+ supported platforms.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://volumeviewer.kenai.com/">
- <img src="http://volumeviewer.kenai.com/thumbnail.png" width="160" height="120" align="left"></img>Volume Viewer</a>
- is an open source renderer for 3D volumetric data. It provides tools for coloring your model,
- cutting away pieces, and viewing it from any angle. It can cast shadows within the model for extra realism.
- You can even upload your own volumetric data and view it in real time.
- </td>
- <td bgcolor="#F8F8F8">
- <a href="http://netbeans-opengl-pack.dev.java.net/">
- <img src="NetBeansOpenGLPackLogo160.png" width="160" height="159" align="left"></img>
- The NetBeans OpenGL Pack</a> provides an easy to use OpenGL development
- environment integrated into NetBeans. It supplies modules like an GLSL
- shader editor, hardware compiler/linker integration and tools for
- displaying hardware information. The pack ships ready to run JOGL (JSR
- 231) demo projects and all OpenGL samples of the OpenGL Programming
- Guide (also known as the Red Book).
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://volumeviewer.kenai.com/">
+ <img src="http://volumeviewer.kenai.com/thumbnail.png" width="160" height="120" align="left" alt="Volume Viewer"></img>Volume Viewer</a>
+ is an open source renderer for 3D volumetric data. It provides tools for coloring your model,
+ cutting away pieces, and viewing it from any angle. It can cast shadows within the model for extra realism.
+ You can even upload your own volumetric data and view it in real time.
+ </td>
+ <td >
+ <a href="http://netbeans-opengl-pack.dev.java.net/">
+ <img src="NetBeansOpenGLPackLogo160.png" width="160" height="159" align="left" alt="NOGL Pack logo"></img>
+ The NetBeans OpenGL Pack</a> provides an easy to use OpenGL development
+ environment integrated into NetBeans. It supplies modules like an GLSL
+ shader editor, hardware compiler/linker integration and tools for
+ displaying hardware information. The pack ships ready to run JOGL (JSR
+ 231) demo projects and all OpenGL samples of the OpenGL Programming
+ Guide (also known as the Red Book).
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.insparia.com/"><img src="insparia.jpg" width="160" height="160" align="left"></img>
- Insparia</a> was created to help people
- easily visualize, construct and track information about a 3d
- environment online. Shape and texture importing as well as a robust
- renderer will be available in the final commercial version. Insparia
- uses JOGL to allow the user to construct and interact with their 3d
- environment in real-time. Please note that Insparia is in alpha
- testing. Feedback is appreciated.
- </td>
- <td bgcolor="#F8F8F8">
- <a href="http://www.scilab.org/"><img src="scilab.png" width="160" height="159" align="left"></img>
- Scilab</a> is a free scientific software
- package for numerical computations providing a powerful open computing
- environment for engineering and scientific applications. It has
- sophisticated data structures, an interpreter and a high level
- programming language. It also integrates a 2-D and 3-D plotting module
- designed to visually represent and understand complex data. Fully
- integrated within the Scilab's Swing UI, the plotting module is based
- on JOGL, allowing it to take advantage of the OpenGL accelerated
- graphics.
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://www.insparia.com/"><img src="insparia.jpg" width="160" height="160" align="left" alt="insparia image"></img>
+ Insparia</a> was created to help people
+ easily visualize, construct and track information about a 3d
+ environment online. Shape and texture importing as well as a robust
+ renderer will be available in the final commercial version. Insparia
+ uses JOGL to allow the user to construct and interact with their 3d
+ environment in real-time. Please note that Insparia is in alpha
+ testing. Feedback is appreciated.
+ </td>
+ <td >
+ <a href="http://www.scilab.org/"><img src="scilab.png" width="160" height="159" align="left" alt="scilab image"></img>
+ Scilab</a> is a free scientific software
+ package for numerical computations providing a powerful open computing
+ environment for engineering and scientific applications. It has
+ sophisticated data structures, an interpreter and a high level
+ programming language. It also integrates a 2-D and 3-D plotting module
+ designed to visually represent and understand complex data. Fully
+ integrated within the Scilab's Swing UI, the plotting module is based
+ on JOGL, allowing it to take advantage of the OpenGL accelerated
+ graphics.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.brightideassoftware.com/Pebbles/PebblesHome.aspx">
- <img src="pebbles.png" width="160" height="160" align="left"></img>
- OneStone&reg; Pebbles</a> are a new series of calculus visualization tools developed
- by <a href="http://www.brightideassoftware.com/">Bright Ideas Software&reg;</a>.
- Designed from the ground up with input from
- education professionals, these unique tools meld current educational
- theory with state of the art graphics technology in consistent,
- easy-to-use packages. Each 'Pebble' in the series is a stand-alone
- program designed to illustrate a specific topic in the calculus
- syllabus. While the topic of each Pebble is different, the experience
- of using each remains as constant as possible, and features several
- elements identified as contributing to the development of a deeper
- understanding of dynamic covariant relationships. The Pebbles use JOGL
- for their interactive 3D rendering. Try the
- <a href="http://www.brightideassoftware.com/Pebbles/CurveFamilies.aspx"> Curve Families</a> and
- <a href="http://www.brightideassoftware.com/Pebbles/SurfacesOfRevolution.aspx">Surfaces of Revolution</a> examples!
- </td>
- <td bgcolor="#F8F8F8">
- <a href="http://www3.math.tu-berlin.de/jreality"><img src="viewerVR.png" width="160" height="160" align="left"></img>
- jReality</a> is an open-source,
- full-featured 3D scene graph package designed for but not limited to
- mathematical visualization. It provides several backends, including a
- JOGL one; it is thread-safe; it has a flexible shading model based on
- an attribute-inheritance mechanism in the scene graph;
- device-independent user interaction; support for true 3D audio; many
- support classes for transformations and geometry; a plugin system for
- assembling custom viewers; <a href="http://www3.math.tu-berlin.de/jreality/phpbb/">an active forum</a>
- and a growing <a href="http://www3.math.tu-berlin.de/jreality/mediawiki/index.php/Developer_Tutorial">set
- of tutorial examples</a> to help developers interested in using
- jReality to solve their 3D problems.
+ <tr>
+ <td width="50%">
+ <a href="http://www.brightideassoftware.com/Pebbles/PebblesHome.aspx">
+ <img src="pebbles.png" width="160" height="160" align="left" alt=""></img>
+ OneStone&reg; Pebbles</a> are a new series of calculus visualization tools developed
+ by <a href="http://www.brightideassoftware.com/">Bright Ideas Software&reg;</a>.
+ Designed from the ground up with input from
+ education professionals, these unique tools meld current educational
+ theory with state of the art graphics technology in consistent,
+ easy-to-use packages. Each 'Pebble' in the series is a stand-alone
+ program designed to illustrate a specific topic in the calculus
+ syllabus. While the topic of each Pebble is different, the experience
+ of using each remains as constant as possible, and features several
+ elements identified as contributing to the development of a deeper
+ understanding of dynamic covariant relationships. The Pebbles use JOGL
+ for their interactive 3D rendering. Try the
+ <a href="http://www.brightideassoftware.com/Pebbles/CurveFamilies.aspx"> Curve Families</a> and
+ <a href="http://www.brightideassoftware.com/Pebbles/SurfacesOfRevolution.aspx">Surfaces of Revolution</a> examples!
+ </td>
+ <td >
+ <a href="http://www3.math.tu-berlin.de/jreality"><img src="viewerVR.png" width="160" height="160" align="left" alt="jreality"></img>
+ jReality</a> is an open-source,
+ full-featured 3D scene graph package designed for but not limited to
+ mathematical visualization. It provides several backends, including a
+ JOGL one; it is thread-safe; it has a flexible shading model based on
+ an attribute-inheritance mechanism in the scene graph;
+ device-independent user interaction; support for true 3D audio; many
+ support classes for transformations and geometry; a plugin system for
+ assembling custom viewers; <a href="http://www3.math.tu-berlin.de/jreality/phpbb/">an active forum</a>
+ and a growing <a href="http://www3.math.tu-berlin.de/jreality/mediawiki/index.php/Developer_Tutorial">set
+ of tutorial examples</a> to help developers interested in using
+ jReality to solve their 3D problems.
- </td>
- </tr>
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="https://zg3d.dev.java.net/"><img src="zg3d.png" width="160" height="160" align="left"></img>
- ZG3D</a> is an open source project that uses
- JOGL for visualizing 3D geometries with the emphasis of plotting
- scientific data in a web application. Geometry objects in an XML file
- or string can be dynamically loaded and removed. An HTML document may
- call ZG3D functions through JavaScript and may define JavaScript
- functions to receive messages from ZG3D, which makes it very easy and
- flexible to embed interactive 3D web visualization. The software is
- developed at the <a
- href="http://www-cger.nies.go.jp/index.html">Center for Global
- Environmental Research</a>, Japan, for the advanced data visualization
- of the <a href="http://db.cger.nies.go.jp/g3db/ggtu/trajectory.html">Global Greenhouse Gases Database</a>.
- </td>
- <td width="50%">
- <a href="http://www.codededge.com"><img src="elflight.png" width="160" height="95" align="left"></img>
- The Elflight Engine</a> is a high
- performance 3D streaming game engine. It has been designed from the
- ground up for use over the World Wide Web. The streaming aspect of the
- engine allows a near "instant play" experience for the gamer. No
- massive downloads and no massive updates! The technology is
- particularly well suited to the development of MMOs and virtual
- worlds. The Elflight Engine uses JOGL to access the OpenGL API.
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="https://zg3d.dev.java.net/"><img src="zg3d.png" width="160" height="160" align="left" alt=""></img>
+ ZG3D</a> is an open source project that uses
+ JOGL for visualizing 3D geometries with the emphasis of plotting
+ scientific data in a web application. Geometry objects in an XML file
+ or string can be dynamically loaded and removed. An HTML document may
+ call ZG3D functions through JavaScript and may define JavaScript
+ functions to receive messages from ZG3D, which makes it very easy and
+ flexible to embed interactive 3D web visualization. The software is
+ developed at the <a
+ href="http://www-cger.nies.go.jp/index.html">Center for Global
+ Environmental Research</a>, Japan, for the advanced data visualization
+ of the <a href="http://db.cger.nies.go.jp/g3db/ggtu/trajectory.html">Global Greenhouse Gases Database</a>.
+ </td>
+ <td width="50%">
+ <a href="http://www.codededge.com"><img src="elflight.png" width="160" height="95" align="left" alt="elflight engine"></img>
+ The Elflight Engine</a> is a high
+ performance 3D streaming game engine. It has been designed from the
+ ground up for use over the World Wide Web. The streaming aspect of the
+ engine allows a near "instant play" experience for the gamer. No
+ massive downloads and no massive updates! The technology is
+ particularly well suited to the development of MMOs and virtual
+ worlds. The Elflight Engine uses JOGL to access the OpenGL API.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.fusion-laboratory.de/"><img
- src="fusion-laboratory.jpg" width="160" height="160" align="left"
- alt="Fusion Laboratory"></img>The Fusion Framework</a> enables Swing
- components to be extended with 3D content via JOGL. In general the 3D
- content will show up in layers on top of the corresponding Swing
- component. Many utility functions are integrated to help the developer
- build components. For example, the 3D content may be calibrated to the
- corresponding component's bounds. In addition, the system provides a
- simple scenegraph, Swing-like mouse interaction, and low-level
- animation support, as well as GLSL shaders and .obj file loading. The
- demo page contains several Java Web Start applications which
- demonstrate the abilities of the framework; please fill out the web
- form to help evaluate the components' usefulness.
- </td>
- <td width="50%">
- <a href="http://www.artofillusion.org/"><img src="artofillusion.jpg" width="160" height="117" align="left" alt="Art Of Illusion"></img>
- Art of Illusion</a> is a free, open source 3D modelling and rendering
- studio. Many of its capabilities rival those found in commercial
- programs. Some of the highlights include subdivision surface based
- modelling tools, skeleton based animation, and a graphical language
- for designing procedural textures and materials. It uses JOGL for
- real-time OpenGL rendering in its modeling views.
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://www.fusion-laboratory.de/"><img
+ src="fusion-laboratory.jpg" width="160" height="160" align="left"
+ alt="Fusion Laboratory"></img>The Fusion Framework</a> enables Swing
+ components to be extended with 3D content via JOGL. In general the 3D
+ content will show up in layers on top of the corresponding Swing
+ component. Many utility functions are integrated to help the developer
+ build components. For example, the 3D content may be calibrated to the
+ corresponding component's bounds. In addition, the system provides a
+ simple scenegraph, Swing-like mouse interaction, and low-level
+ animation support, as well as GLSL shaders and .obj file loading. The
+ demo page contains several Java Web Start applications which
+ demonstrate the abilities of the framework; please fill out the web
+ form to help evaluate the components' usefulness.
+ </td>
+ <td width="50%">
+ <a href="http://www.artofillusion.org/"><img src="artofillusion.jpg" width="160" height="117" align="left" alt="Art Of Illusion"></img>
+ Art of Illusion</a> is a free, open source 3D modelling and rendering
+ studio. Many of its capabilities rival those found in commercial
+ programs. Some of the highlights include subdivision surface based
+ modelling tools, skeleton based animation, and a graphical language
+ for designing procedural textures and materials. It uses JOGL for
+ real-time OpenGL rendering in its modeling views.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.avengina.org/"><img src="avengina.jpg" alt="Avengina" align="left" height="99" width="160"></img>Avengina</a> is a
- realtime 3D graphics engine which is designed for the execution as a
- Java applet. Alternatively it can be launched as a Java Webstart
- application outside the browserwindow. The software provides the
- possibility to exhibit texts and images in virtual
- galleries. Regarding the control and behaviour of the avatar it's
- redolent of a game engine. The graphics rendering system bases on
- per-pixel lighting and supports normal mapping, specular lighting and
- stencil volume shadows. Avengina uses JOGL for realtime rendering.
- </td>
- <td width="50%">
+ <tr>
+ <td width="50%">
+ <a href="http://www.avengina.org/"><img src="avengina.jpg" alt="Avengina" align="left" height="99" width="160"></img>Avengina</a> is a
+ realtime 3D graphics engine which is designed for the execution as a
+ Java applet. Alternatively it can be launched as a Java Webstart
+ application outside the browserwindow. The software provides the
+ possibility to exhibit texts and images in virtual
+ galleries. Regarding the control and behaviour of the avatar it's
+ redolent of a game engine. The graphics rendering system bases on
+ per-pixel lighting and supports normal mapping, specular lighting and
+ stencil volume shadows. Avengina uses JOGL for realtime rendering.
+ </td>
+ <td width="50%">
- <a href="http://chronotext.org/"><img src="chronotext.jpg" width="160" height="120" align="left" alt="chronotext"></img>
- chronotext</a> is a series
- of visual design experiments involving animated text and 3D objects
- and surfaces. Several examples can be run on-line via <a
- href="http://chronotext.org/scriptorium/behind/index.htm">Java Web
- Start</a>. See the <a href="http://www.chronotext.org/mapping/">latest
- experiments</a> of mapping text on to real 3D surfaces.
- </td>
- </tr>
+ <a href="http://chronotext.org/"><img src="chronotext.jpg" width="160" height="120" align="left" alt="chronotext"></img>
+ chronotext</a> is a series
+ of visual design experiments involving animated text and 3D objects
+ and surfaces. Several examples can be run on-line via <a
+ href="http://chronotext.org/scriptorium/behind/index.htm">Java Web
+ Start</a>. See the <a href="http://www.chronotext.org/mapping/">latest
+ experiments</a> of mapping text on to real 3D surfaces.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.sculpteo.com"><img src="sculpteo_3_robot_72dpi_sm.jpg" width="160" height="120" align="left" alt="sculpteo"></img>
- Sculpteo</a> offers a 3D printing service, fast and available for everyone.
+ <tr>
+ <td width="50%">
+ <a href="http://www.sculpteo.com"><img src="sculpteo_3_robot_72dpi_sm.jpg" width="160" height="120" align="left" alt="sculpteo"></img>
+ Sculpteo</a> offers a 3D printing service, fast and available for everyone.
Starting from a 3D design, Sculpteo makes a specific object : interior decoration, characters, robots, miniatures, models, mechanic objects...
- </td>
- <td width="50%">
- <a href="http://www.fenggui.org/"><img src="fenggui.jpg" width="160" height="127" align="left" alt="FengGUI"></img>
- FengGUI</a> is a graphical
- user interface (GUI) application programming interface (API) based on
- OpenGL. FengGUI provides all typical GUI components like buttons,
- sliders, trees, text areas, frames, tabs, etc. which are required to
- build a complete GUI system. Since it is based on OpenGL, FengGUI fits
- well in multimedia and game environments.
- </td>
- </tr>
+ </td>
+ <td width="50%">
+ <a href="http://www.fenggui.org/"><img src="fenggui.jpg" width="160" height="127" align="left" alt="FengGUI"></img>
+ FengGUI</a> is a graphical
+ user interface (GUI) application programming interface (API) based on
+ OpenGL. FengGUI provides all typical GUI components like buttons,
+ sliders, trees, text areas, frames, tabs, etc. which are required to
+ build a complete GUI system. Since it is based on OpenGL, FengGUI fits
+ well in multimedia and game environments.
+ </td>
+ </tr>
- <tr>
- <td bgcolor="#F8F8F8" width="50%">
- <a href="http://www.simulation.com/products/glstudio/glstudio.html"><img
- src="glstudio.jpg" width="160" height="135" align="left" alt="GL Studio"></img>
- GL Studio</a> is an object oriented rapid application
- development tool that allows a user to graphically combine
- photographs, 3D models and behavior logic to create advanced 2D and 3D
- human machine interfaces. GL Studio generates Java or C++ source code
- which can then be integrated into the user’s application as a user
- interface. <a
- href="http://www.simulation.com/products/glstudio/java/java.html">Java
- code</a> generated with GL Studio can be deployed using
- javax.swing.JPanel, java.awt.Canvas and JavaBeans. GL Studio uses
- OpenGL for rendering and GL Studio for Java uses the JOGL API.
+ <tr>
+ <td width="50%">
+ <a href="http://www.simulation.com/products/glstudio/glstudio.html"><img
+ src="glstudio.jpg" width="160" height="135" align="left" alt="GL Studio"></img>
+ GL Studio</a> is an object oriented rapid application
+ development tool that allows a user to graphically combine
+ photographs, 3D models and behavior logic to create advanced 2D and 3D
+ human machine interfaces. GL Studio generates Java or C++ source code
+ which can then be integrated into the user’s application as a user
+ interface. <a
+ href="http://www.simulation.com/products/glstudio/java/java.html">Java
+ code</a> generated with GL Studio can be deployed using
+ javax.swing.JPanel, java.awt.Canvas and JavaBeans. GL Studio uses
+ OpenGL for rendering and GL Studio for Java uses the JOGL API.
- </td>
- <td width="50%">
- <a href="http://impact.sourceforge.net/"><img src="impact.jpg" width="160" height="129" align="left" alt="Impact"></img>
- Impact</a> is a
- complete finite element suite including preprocessor, solver and
- postprocessor which is useable for simulating dynamic events such as
- car crashes or stamping of metal sheets. The suite allows 3D
- modelling, solving and viewing of simulation results, all in OpenGL
- accelerated graphics through the use of JOGL.
- </td>
- </tr>
+ </td>
+ <td width="50%">
+ <a href="http://impact.sourceforge.net/"><img src="impact.jpg" width="160" height="129" align="left" alt="Impact"></img>
+ Impact</a> is a
+ complete finite element suite including preprocessor, solver and
+ postprocessor which is useable for simulating dynamic events such as
+ car crashes or stamping of metal sheets. The suite allows 3D
+ modelling, solving and viewing of simulation results, all in OpenGL
+ accelerated graphics through the use of JOGL.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://code.google.com/p/jzy3d/">
- <img src="http://martin.pernollet.free.fr/cv/projects/jzy3d/demo_ring_surface.jpg" width="160" height="120" align="left" alt="Jack Flowers"></img>
- Jzy3d</a>
- stands for Java Easy 3d, and allows a rapid display of 3d scientific data. User can define z=f(x,y) functions
- binded to (customizable) colormaps, as well as rendering predefined simple 3d shapes programmaticaly or from csv files.
- One can moreover add pre/post renderers for adding java2d layers to the 3d scene.
- Jzy3d provides a simple bridge to AWT, SWT, or Swing, and has already been integrated with success in Eclipse RCP and Swing
- professionnal applications by the company MASA Group. The API has been written with the goal to hide the burden of working with
- OpenGL, 3d polygon ordering and transparency management.
- </td>
- <td width="50%">
- <a href="http://mbt.sdsc.edu/"><img src="mbt.jpg" width="160" height="122" align="left"></img></a>The
- <a href="http://mbt.sdsc.edu/">Molecular Biology Toolkit</a> is a
- Java-based protein visualization and analysis toolkit. The toolkit
- provides classes for efficiently loading, managing and manipulating
- protein structure and sequence data. The MBT also provides a rich set
- of graphical 3D and 2D visualization components which can be easily
- "plugged together" to produce applications having sophisticated
- graphical user interfaces. Some MBT-based visualization tools are <a
- href="http://www.pdb.org/">ProteinWorkshop</a> (<a
- href="http://spdc.sdsc.edu/iedb/protein_workshop/viewer7.php">webstart
- demo</a>), <a href="http://www.immuneepitope.org/">EpitopeViewer</a>
- (<a href="http://spdc.sdsc.edu/iedb/epitopeViewer/viewer_jogl333.php">webstart demo</a>), and <a href="http://sirius.sdsc.edu/">Sirius</a>.
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://code.google.com/p/jzy3d/">
+ <img src="http://martin.pernollet.free.fr/cv/projects/jzy3d/demo_ring_surface.jpg" width="160" height="120" align="left" alt="Jack Flowers"></img>
+ Jzy3d</a>
+ stands for Java Easy 3d, and allows a rapid display of 3d scientific data. User can define z=f(x,y) functions
+ binded to (customizable) colormaps, as well as rendering predefined simple 3d shapes programmaticaly or from csv files.
+ One can moreover add pre/post renderers for adding java2d layers to the 3d scene.
+ Jzy3d provides a simple bridge to AWT, SWT, or Swing, and has already been integrated with success in Eclipse RCP and Swing
+ professionnal applications by the company MASA Group. The API has been written with the goal to hide the burden of working with
+ OpenGL, 3d polygon ordering and transparency management.
+ </td>
+ <td width="50%">
+ <a href="http://mbt.sdsc.edu/"><img src="mbt.jpg" width="160" height="122" align="left" alt="Molecular Biology Toolkit"></img></a>The
+ <a href="http://mbt.sdsc.edu/">Molecular Biology Toolkit</a> is a
+ Java-based protein visualization and analysis toolkit. The toolkit
+ provides classes for efficiently loading, managing and manipulating
+ protein structure and sequence data. The MBT also provides a rich set
+ of graphical 3D and 2D visualization components which can be easily
+ "plugged together" to produce applications having sophisticated
+ graphical user interfaces. Some MBT-based visualization tools are <a
+ href="http://www.pdb.org/">ProteinWorkshop</a> (<a
+ href="http://spdc.sdsc.edu/iedb/protein_workshop/viewer7.php">webstart
+ demo</a>), <a href="http://www.immuneepitope.org/">EpitopeViewer</a>
+ (<a href="http://spdc.sdsc.edu/iedb/epitopeViewer/viewer_jogl333.php">webstart demo</a>), and <a href="http://sirius.sdsc.edu/">Sirius</a>.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://processing.org/"><img src="processing.jpg" width="160" height="158" align="left" alt="processing"></img>
- Processing</a> is an open
- source programming language and environment for people who want to
- program images, animation, and sound. It is used by students, artists,
- designers, architects, researchers, and hobbyists for learning,
- prototyping, and production. Processing is developed by artists and
- designers as an alternative to proprietary software tools in the same
- domain. It uses JOGL for its hardware accelerated 3D rendering
- support.
- </td>
- <td width="50%">
- <a href="http://www.specknet.org/dev/specksim"><img src="specksim.jpg" width="160" height="117" align="left" alt="SpeckSim"></img>
- SpeckSim</a> is a
- behaviour-level simulator for networks of small, resource-constrained
- devices with sensing, computation and communication
- capabilities. Intended as a testbed for distributed algorithms, the
- main design goal was ease of extension. To this end, almost all aspect
- of the simulator can be customised: Node behaviour, communication
- characteristics, placement and motion; visualisation rendering and
- interaction and statistic generation.
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://processing.org/"><img src="processing.jpg" width="160" height="158" align="left" alt="processing"></img>
+ Processing</a> is an open
+ source programming language and environment for people who want to
+ program images, animation, and sound. It is used by students, artists,
+ designers, architects, researchers, and hobbyists for learning,
+ prototyping, and production. Processing is developed by artists and
+ designers as an alternative to proprietary software tools in the same
+ domain. It uses JOGL for its hardware accelerated 3D rendering
+ support.
+ </td>
+ <td width="50%">
+ <a href="http://www.specknet.org/dev/specksim"><img src="specksim.jpg" width="160" height="117" align="left" alt="SpeckSim"></img>
+ SpeckSim</a> is a
+ behaviour-level simulator for networks of small, resource-constrained
+ devices with sensing, computation and communication
+ capabilities. Intended as a testbed for distributed algorithms, the
+ main design goal was ease of extension. To this end, almost all aspect
+ of the simulator can be customised: Node behaviour, communication
+ characteristics, placement and motion; visualisation rendering and
+ interaction and statistic generation.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://3d-alignment.eu"><img src="strap.jpg" width="160" height="118" align="left"></img></a>
- With <a href="http://3d-alignment.eu">STRAP</a> you can align your proteins by
- sequence and 3D-structure. STRAP simultaneously displays
- 3d-structures, amino acid sequence alignment and nucleotide sequences.
- It has powerful annotation features.
- </td>
- <td width="50%">
- <a href="http://www.insightmachines.com/en/vehicleDynamicsEngine.shtml">
- <img src="vehicle.jpg" width="160" height="160" align="left"></img>Vehicle Dynamics Engine Demo</a>
- is a Java Web Start demonstration of a 3D physics engine developed by
- <a href="http://www.insightmachines.com/">Insight Machines</a>. The
- engine is designed especially for car games. The demo uses JOGL and
- employs such techniques like shadow casting using the stencil buffer.
- </td>
- </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://3d-alignment.eu"><img src="strap.jpg" width="160" height="118" align="left" alt="STRAP"></img></a>
+ With <a href="http://3d-alignment.eu">STRAP</a> you can align your proteins by
+ sequence and 3D-structure. STRAP simultaneously displays
+ 3d-structures, amino acid sequence alignment and nucleotide sequences.
+ It has powerful annotation features.
+ </td>
+ <td width="50%">
+ <a href="http://www.insightmachines.com/en/vehicleDynamicsEngine.shtml">
+ <img src="vehicle.jpg" width="160" height="160" align="left" alt=""></img>Vehicle Dynamics Engine Demo</a>
+ is a Java Web Start demonstration of a 3D physics engine developed by
+ <a href="http://www.insightmachines.com/">Insight Machines</a>. The
+ engine is designed especially for car games. The demo uses JOGL and
+ employs such techniques like shadow casting using the stencil buffer.
+ </td>
+ </tr>
- <tr>
- <td width="50%">
- <a href="http://www.vlsolutions.com/"><img src="vldocking.jpg" width="160" height="113" align="left" alt="VLDocking"></img>
- VLDocking</a> is
- a set of Java components that helps the Swing developer to build
- applications with Docking capabilities, and even raise existing
- applications to higher standards. It supports docking via drag and
- drop, enhanced toolbars, closable tabs, and more. It fully supports
- heavyweight components such as JOGL's GLCanvas in a docking
- environment.
- </td>
- <td width="50%">
- <a href="http://www.nascar.com/trackpass/about/raceview/"><img src="raceview.jpg" width="160" height="92" align="left"></img>
- RaceView</a> from NASCAR / NEXTEL, part of the <a
- href="http://www.nascar.com/trackpass/">TrackPass</a> package, puts
- you in the race. Control the virtual camera angle, listen to the
- driver and team, and see crucial statistics and times, all in real
- time as the race goes on. RaceView uses JOGL for its 3D rendering.
- </td>
- </tr>
- <tr>
- <td width="50%">
- <a href="http://www.eclipse.org/gef3d/"><img src="http://wiki.eclipse.org/images/thumb/b/be/Gef3d_sample_ecore3D.png/800px-Gef3d_sample_ecore3D.png" width="160" height="94" align="left" alt="GEF3d"></img>
- GEF3D</a> is an Eclipse GEF extension bringing 3D to diagram editing.
+ <tr>
+ <td width="50%">
+ <a href="http://www.vlsolutions.com/">
+ <img src="vldocking.jpg" width="160" height="113" align="left" alt="VLDocking"></img>VLDocking</a> is
+ a set of Java components that helps the Swing developer to build
+ applications with Docking capabilities, and even raise existing
+ applications to higher standards. It supports docking via drag and
+ drop, enhanced toolbars, closable tabs, and more. It fully supports
+ heavyweight components such as JOGL's GLCanvas in a docking
+ environment.
+ </td>
+ <td width="50%">
+ <a href="http://www.nascar.com/trackpass/about/raceview/"><img src="raceview.jpg" width="160" height="92" align="left" alt=""></img>
+ RaceView</a> from NASCAR / NEXTEL, part of the <a
+ href="http://www.nascar.com/trackpass/">TrackPass</a> package, puts
+ you in the race. Control the virtual camera angle, listen to the
+ driver and team, and see crucial statistics and times, all in real
+ time as the race goes on. RaceView uses JOGL for its 3D rendering.
+ </td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <a href="http://www.eclipse.org/gef3d/"><img src="http://wiki.eclipse.org/images/thumb/b/be/Gef3d_sample_ecore3D.png/800px-Gef3d_sample_ecore3D.png" width="160" height="94" align="left" alt="GEF3d"></img>
+ GEF3D</a> is an Eclipse GEF extension bringing 3D to diagram editing.
That is with GEF3D you can create 3D diagrams, 2D diagrams and combine
3D with 2D diagrams. GEF3D extends GEF by providing 3D enabled draw and
controller classes. Instead of drawing 2D figures, you can now draw 3D figures.
Existing GEF-based 2D editors can be embedded into 3D editors with minimal effort.
- </td>
- <td width="50%">
- <a href="http://gephi.org/"><img src="gephi.jpg" width="160" height="102" align="left" alt="Gephi"></img>
- Gephi</a> is a visualization and exploration
+ </td>
+ <td width="50%">
+ <a href="http://gephi.org/"><img src="gephi.jpg" width="160" height="102" align="left" alt="Gephi"></img>
+ Gephi</a> is a visualization and exploration
platform for all kinds of networks and complex systems,
dynamic and hierarchical graphs.
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
</div>
- <div id="footer">
+ <div id="footer">
<div id="footer_left">
<span>JogAmp.org</span>
by <a href="http://jogamp.org">http://jogamp.org</a>