diff options
author | Sven Gothel <[email protected]> | 2010-12-13 18:45:04 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2010-12-13 18:45:04 +0100 |
commit | 0d8e10fc2f3e5b8cfccc8e20d08c979f75bfb0a2 (patch) | |
tree | 4435ce4375848573b912cb7d333d882debfd10a4 | |
parent | 5db5c574d5ea895921e60cdb768dc138685c7d5b (diff) |
Update GearsJOALApplet: Depending on joal build; incl joal snippet, remove joal/joal-demos jar files.
-rwxr-xr-x | lib/joal-demos.jar | bin | 1080483 -> 0 bytes | |||
-rwxr-xr-x | lib/joal.jar | bin | 52166 -> 0 bytes | |||
-rw-r--r-- | make/build.xml | 65 | ||||
-rw-r--r-- | make/scripts/make.jogl.all.macosx.sh (renamed from make/make.jogl.all.macosx.sh) | 0 | ||||
-rw-r--r-- | make/scripts/make.jogl.all.win32.bat (renamed from make/make.jogl.all.win32.bat) | 0 | ||||
-rw-r--r-- | make/scripts/make.jogl.all.win64.bat (renamed from make/make.jogl.all.win64.bat) | 0 | ||||
-rw-r--r-- | make/scripts/make.jogl.all.x86.sh (renamed from make/make.jogl.all.x86.sh) | 0 | ||||
-rw-r--r-- | make/scripts/make.jogl.all.x86_64.sh (renamed from make/make.jogl.all.x86_64.sh) | 0 | ||||
-rw-r--r-- | make/scripts/make.jogl.cdcfp.macosx.sh (renamed from make/make.jogl.cdcfp.macosx.sh) | 0 | ||||
-rw-r--r-- | make/scripts/make.jogl.cdcfp.x86.sh (renamed from make/make.jogl.cdcfp.x86.sh) | 0 | ||||
-rwxr-xr-x | src/demos/applets/GearsJOALApplet.java | 4 | ||||
-rwxr-xr-x | src/demos/joal/SingleStaticSource.java | 291 |
12 files changed, 328 insertions, 32 deletions
diff --git a/lib/joal-demos.jar b/lib/joal-demos.jar Binary files differdeleted file mode 100755 index 8852343..0000000 --- a/lib/joal-demos.jar +++ /dev/null diff --git a/lib/joal.jar b/lib/joal.jar Binary files differdeleted file mode 100755 index ea66803..0000000 --- a/lib/joal.jar +++ /dev/null diff --git a/make/build.xml b/make/build.xml index f2bca4c..f9cf521 100644 --- a/make/build.xml +++ b/make/build.xml @@ -20,8 +20,6 @@ <property name="jogl-demos.version" value="${jogl-demos_base_version}-${version.timestamp}" /> <property name="project.root" value=".." /> - <property name="jogl.root" value="${project.root}/../jogl" /> - <property name="gluegen.root" value="${project.root}/../gluegen" /> <condition property="rootrel.build" value="build"> <not> @@ -30,6 +28,15 @@ </condition> <property name="build" location="${project.root}/${rootrel.build}" /> + <property name="gluegen.root" value="${project.root}/../gluegen" /> + <property name="gluegen.build" value="${gluegen.root}/${rootrel.build}" /> + + <property name="jogl.root" value="${project.root}/../jogl" /> + <property name="jogl.build" value="${jogl.root}/${rootrel.build}" /> + + <property name="joal.root" value="${project.root}/../joal" /> + <property name="joal.build" value="${joal.root}/${rootrel.build}" /> + <property file="${build}/artifact.properties"/> <property name="jogl-demos.build.number" value="manual-build"/> <property name="jogl-demos.build.id" value="${version.timestamp}"/> @@ -84,35 +91,34 @@ </target> <target name="init" depends="java.class.path.validate,setup.gles,setup.cg.excludes,skip.cg.excludes,init.swt"> - <property name="jogl.core.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.core.jar" /> - <condition property="jogl.cg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.cg.jar"> + <property name="jogl.core.jar" value="${jogl.build}/jogl/jogl.core.jar" /> + <condition property="jogl.cg.jar" value="${jogl.build}/jogl/jogl.cg.jar"> <isset property="jogl.cg"/> </condition> - <property name="gluegen-rt.jar" value="${gluegen.root}/${rootrel.build}/gluegen-rt.jar" /> - <property name="jogl.gles12.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles12.jar" /> - <property name="jogl.gles12.dbg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles12.dbg.jar" /> - <property name="jogl.gles1.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles1.jar" /> - <property name="jogl.gles1.dbg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles1.dbg.jar" /> - <property name="jogl.gles2.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles2.jar" /> - <property name="jogl.gles2.dbg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gles2.dbg.jar" /> - <property name="jogl.egl.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.egl.jar" /> - <property name="jogl.gldesktop.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gldesktop.jar" /> - <property name="jogl.gldesktop.dbg.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.gldesktop.dbg.jar" /> - <property name="jogl.awt.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.awt.jar" /> - <property name="jogl.util.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.util.jar" /> - <property name="jogl.util.awt.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.util.awt.jar" /> - <property name="jogl.util.fixedfuncemu.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.util.fixedfuncemu.jar" /> - <property name="jogl.util.gldesktop.jar" value="${jogl.root}/${rootrel.build}/jogl/jogl.util.gldesktop.jar" /> - <property name="nativewindow.core.jar" value="${jogl.root}/${rootrel.build}/nativewindow/nativewindow.core.jar" /> - <property name="nativewindow.x11.jar" value="${jogl.root}/${rootrel.build}/nativewindow/nativewindow.x11.jar" /> - <property name="nativewindow.awt.jar" value="${jogl.root}/${rootrel.build}/nativewindow/nativewindow.awt.jar" /> - <property name="newt.core.jar" value="${jogl.root}/${rootrel.build}/newt/newt.core.jar" /> - <property name="newt.ogl.jar" value="${jogl.root}/${rootrel.build}/newt/newt.ogl.jar" /> - <property name="newt.awt.jar" value="${jogl.root}/${rootrel.build}/newt/newt.awt.jar" /> - <property name="joal.jar" value="${project.root}/lib/joal.jar" /> - <property name="joal-demos.jar" value="${project.root}/lib/joal-demos.jar" /> + <property name="gluegen-rt.jar" value="${gluegen.build}/gluegen-rt.jar" /> + <property name="jogl.gles12.jar" value="${jogl.build}/jogl/jogl.gles12.jar" /> + <property name="jogl.gles12.dbg.jar" value="${jogl.build}/jogl/jogl.gles12.dbg.jar" /> + <property name="jogl.gles1.jar" value="${jogl.build}/jogl/jogl.gles1.jar" /> + <property name="jogl.gles1.dbg.jar" value="${jogl.build}/jogl/jogl.gles1.dbg.jar" /> + <property name="jogl.gles2.jar" value="${jogl.build}/jogl/jogl.gles2.jar" /> + <property name="jogl.gles2.dbg.jar" value="${jogl.build}/jogl/jogl.gles2.dbg.jar" /> + <property name="jogl.egl.jar" value="${jogl.build}/jogl/jogl.egl.jar" /> + <property name="jogl.gldesktop.jar" value="${jogl.build}/jogl/jogl.gldesktop.jar" /> + <property name="jogl.gldesktop.dbg.jar" value="${jogl.build}/jogl/jogl.gldesktop.dbg.jar" /> + <property name="jogl.awt.jar" value="${jogl.build}/jogl/jogl.awt.jar" /> + <property name="jogl.util.jar" value="${jogl.build}/jogl/jogl.util.jar" /> + <property name="jogl.util.awt.jar" value="${jogl.build}/jogl/jogl.util.awt.jar" /> + <property name="jogl.util.fixedfuncemu.jar" value="${jogl.build}/jogl/jogl.util.fixedfuncemu.jar" /> + <property name="jogl.util.gldesktop.jar" value="${jogl.build}/jogl/jogl.util.gldesktop.jar" /> + <property name="nativewindow.core.jar" value="${jogl.build}/nativewindow/nativewindow.core.jar" /> + <property name="nativewindow.x11.jar" value="${jogl.build}/nativewindow/nativewindow.x11.jar" /> + <property name="nativewindow.awt.jar" value="${jogl.build}/nativewindow/nativewindow.awt.jar" /> + <property name="newt.core.jar" value="${jogl.build}/newt/newt.core.jar" /> + <property name="newt.ogl.jar" value="${jogl.build}/newt/newt.ogl.jar" /> + <property name="newt.awt.jar" value="${jogl.build}/newt/newt.awt.jar" /> + <property name="joal.jar" value="${joal.build}/joal.jar" /> <property name="simple-xml.jar" value="${project.root}/lib/simple-xml-1.1.1.jar" /> - <property name="classes" value="${project.root}/${rootrel.build}/classes" /> + <property name="classes" value="${build}/classes" /> <property name="src" value="${project.root}/src" /> <property name="javadoc" value="${project.root}/javadoc" /> <property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" /> @@ -178,7 +184,6 @@ <pathelement location="${newt.ogl.jar}" /> <pathelement location="${newt.awt.jar}" /> <pathelement location="${joal.jar}" /> - <pathelement location="${joal-demos.jar}" /> <pathelement location="${gluegen-rt.jar}" /> <pathelement location="${simple-xml.jar}" /> <pathelement location="${swt.jar}" /> @@ -268,7 +273,7 @@ <target name="all" depends="init, all-desktop, all-gles, tag.build, developer-zip-archive" /> <target name="tag.build"> - <copy file="${jogl.root}/${rootrel.build}/artifact.properties" todir="${build}" overwrite="true"/> + <copy file="${jogl.build}/artifact.properties" todir="${build}" overwrite="true"/> <echo message='jogl-demos.build.number=${jogl-demos.build.number}${line.separator}' file="${build}/artifact.properties" append="true"/> <echo message='jogl-demos.build.id=${jogl-demos.build.id}${line.separator}' file="${build}/artifact.properties" append="true"/> <echo message='jogl-demos.build.branch=${jogl-demos.build.branch}${line.separator}' file="${build}/artifact.properties" append="true"/> diff --git a/make/make.jogl.all.macosx.sh b/make/scripts/make.jogl.all.macosx.sh index 02f8ccc..02f8ccc 100644 --- a/make/make.jogl.all.macosx.sh +++ b/make/scripts/make.jogl.all.macosx.sh diff --git a/make/make.jogl.all.win32.bat b/make/scripts/make.jogl.all.win32.bat index ba37559..ba37559 100644 --- a/make/make.jogl.all.win32.bat +++ b/make/scripts/make.jogl.all.win32.bat diff --git a/make/make.jogl.all.win64.bat b/make/scripts/make.jogl.all.win64.bat index 3ffc828..3ffc828 100644 --- a/make/make.jogl.all.win64.bat +++ b/make/scripts/make.jogl.all.win64.bat diff --git a/make/make.jogl.all.x86.sh b/make/scripts/make.jogl.all.x86.sh index 41fa16b..41fa16b 100644 --- a/make/make.jogl.all.x86.sh +++ b/make/scripts/make.jogl.all.x86.sh diff --git a/make/make.jogl.all.x86_64.sh b/make/scripts/make.jogl.all.x86_64.sh index 2298142..2298142 100644 --- a/make/make.jogl.all.x86_64.sh +++ b/make/scripts/make.jogl.all.x86_64.sh diff --git a/make/make.jogl.cdcfp.macosx.sh b/make/scripts/make.jogl.cdcfp.macosx.sh index 8677f88..8677f88 100644 --- a/make/make.jogl.cdcfp.macosx.sh +++ b/make/scripts/make.jogl.cdcfp.macosx.sh diff --git a/make/make.jogl.cdcfp.x86.sh b/make/scripts/make.jogl.cdcfp.x86.sh index 60b7f4a..60b7f4a 100644 --- a/make/make.jogl.cdcfp.x86.sh +++ b/make/scripts/make.jogl.cdcfp.x86.sh diff --git a/src/demos/applets/GearsJOALApplet.java b/src/demos/applets/GearsJOALApplet.java index dc2b946..1c03636 100755 --- a/src/demos/applets/GearsJOALApplet.java +++ b/src/demos/applets/GearsJOALApplet.java @@ -8,8 +8,8 @@ import javax.media.opengl.GLProfile; import javax.media.opengl.awt.GLCanvas; import com.jogamp.opengl.util.FPSAnimator; import javax.swing.JPanel; -import net.java.games.joal.util.ALut; -import demos.devmaster.lesson1.SingleStaticSource; +import com.jogamp.openal.util.ALut; +import demos.joal.SingleStaticSource; import javax.media.opengl.GLAnimatorControl; /** Shows how to deploy an applet using both JOGL and JOAL. This demo diff --git a/src/demos/joal/SingleStaticSource.java b/src/demos/joal/SingleStaticSource.java new file mode 100755 index 0000000..b6b8ccf --- /dev/null +++ b/src/demos/joal/SingleStaticSource.java @@ -0,0 +1,291 @@ +/** + * Copyright (c) 2003 Sun Microsystems, Inc. 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 of Sun Microsystems, Inc. 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 SUN HAS + * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + * You acknowledge that this software is not designed or intended for use in the + * design, construction, operation or maintenance of any nuclear facility. + * + */ + +package demos.joal; + +import java.io.*; +import java.nio.ByteBuffer; + +import com.jogamp.openal.*; +import com.jogamp.openal.util.*; + +// For the GUI +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * Adapted from <a href="http://www.devmaster.net/">DevMaster</a> + * <a href="http://www.devmaster.net/articles/openal-tutorials/lesson1.php">SingleStaticSource Tutorial</a> + * by Jesse Maurais. + * + * @author Athomas Goldberg + * @author Kenneth Russell + */ + +public class SingleStaticSource { + + public SingleStaticSource(boolean gui) { + this(gui, null, true); + } + + public SingleStaticSource(boolean gui, Container parent, boolean showQuitButton) { + if (gui) { + JFrame frame = null; + + if (parent == null) { + frame = new JFrame("Single Static Source - DevMaster OpenAL Lesson 1"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + parent = frame.getContentPane(); + } + + JPanel container = new JPanel(); + container.setLayout(new GridLayout((showQuitButton ? 4 : 3), 1)); + + JButton button = new JButton("Play sound"); + button.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (!initialize()) + System.exit(1); + al.alSourcePlay(source[0]); + } + }); + container.add(button); + button = new JButton("Stop playing"); + button.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (!initialize()) + System.exit(1); + al.alSourceStop(source[0]); + } + }); + container.add(button); + button = new JButton("Pause sound"); + button.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (!initialize()) + System.exit(1); + al.alSourcePause(source[0]); + } + }); + container.add(button); + + if (showQuitButton) { + button = new JButton("Quit"); + button.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (!initialize()) + System.exit(1); + killAllData(); + System.exit(0); + } + }); + container.add(button); + } + + parent.add(container); + + if (frame != null) { + frame.pack(); + frame.setVisible(true); + } + } else { + // Initialize OpenAL and clear the error bit. + if (!initialize()) { + System.exit(1); + } + + char[] c = new char[1]; + while (c[0] != 'q') { + try { + BufferedReader buf = + new BufferedReader(new InputStreamReader(System.in)); + System.out.println( + "Press a key and hit ENTER: \n" + + "'p' to play, 's' to stop, " + + "'h' to pause and 'q' to quit"); + buf.read(c); + switch (c[0]) { + case 'p' : + // Pressing 'p' will begin playing the sample. + al.alSourcePlay(source[0]); + break; + case 's' : + // Pressing 's' will stop the sample from playing. + al.alSourceStop(source[0]); + break; + case 'h' : + // Pressing 'n' will pause (hold) the sample. + al.alSourcePause(source[0]); + break; + case 'q' : + killAllData(); + break; + } + } catch (IOException e) { + System.exit(1); + } + } + } + } + + private AL al; + + // Buffers hold sound data. + private int[] buffer = new int[1]; + + // Sources are points emitting sound. + private int[] source = new int[1]; + + // Position of the source sound. + private float[] sourcePos = { 0.0f, 0.0f, 0.0f }; + + // Velocity of the source sound. + private float[] sourceVel = { 0.0f, 0.0f, 0.0f }; + + // Position of the listener. + private float[] listenerPos = { 0.0f, 0.0f, 0.0f }; + + // Velocity of the listener. + private float[] listenerVel = { 0.0f, 0.0f, 0.0f }; + + // Orientation of the listener. (first 3 elems are "at", second 3 are "up") + private float[] listenerOri = { 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f }; + + private boolean initialized = false; + private boolean initialize() { + if (initialized) { + return true; + } + + // Initialize OpenAL and clear the error bit. + try { + ALut.alutInit(); + al = ALFactory.getAL(); + al.alGetError(); + } catch (ALException e) { + e.printStackTrace(); + return false; + } + // Load the wav data. + try { + if (loadALData() == AL.AL_FALSE) + return false; + } catch (ALException e) { + e.printStackTrace(); + return false; + } + + setListenerValues(); + + initialized = true; + return true; + } + + private int loadALData() { + + // variables to load into + + int[] format = new int[1]; + int[] size = new int[1]; + ByteBuffer[] data = new ByteBuffer[1]; + int[] freq = new int[1]; + int[] loop = new int[1]; + + // Load wav data into a buffer. + al.alGenBuffers(1, buffer, 0); + if (al.alGetError() != AL.AL_NO_ERROR) + throw new ALException("Error generating OpenAL buffers"); + + ALut.alutLoadWAVFile( + SingleStaticSource.class.getClassLoader().getResourceAsStream("demos/data/FancyPants.wav"), + format, + data, + size, + freq, + loop); + if (data[0] == null) { + throw new RuntimeException("Error loading WAV file"); + } + System.out.println("sound size = " + size[0]); + System.out.println("sound freq = " + freq[0]); + al.alBufferData(buffer[0], format[0], data[0], size[0], freq[0]); + + // Bind buffer with a source. + al.alGenSources(1, source, 0); + + if (al.alGetError() != AL.AL_NO_ERROR) + throw new ALException("Error generating OpenAL source"); + + al.alSourcei(source[0], AL.AL_BUFFER, buffer[0]); + al.alSourcef(source[0], AL.AL_PITCH, 1.0f); + al.alSourcef(source[0], AL.AL_GAIN, 1.0f); + al.alSourcei(source[0], AL.AL_LOOPING, loop[0]); + + // Do another error check + if (al.alGetError() != AL.AL_NO_ERROR) + throw new ALException("Error setting up OpenAL source"); + + // Note: for some reason the following two calls are producing an + // error on one machine with NVidia's OpenAL implementation. This + // appears to be harmless, so just continue past the error if one + // occurs. + al.alSourcefv(source[0], AL.AL_POSITION, sourcePos, 0); + al.alSourcefv(source[0], AL.AL_VELOCITY, sourceVel, 0); + + return AL.AL_TRUE; + } + + private void setListenerValues() { + al.alListenerfv(AL.AL_POSITION, listenerPos, 0); + al.alListenerfv(AL.AL_VELOCITY, listenerVel, 0); + al.alListenerfv(AL.AL_ORIENTATION, listenerOri, 0); + } + + private void killAllData() { + al.alDeleteBuffers(1, buffer, 0); + al.alDeleteSources(1, source, 0); + } + + public static void main(String[] args) { + boolean gui = false; + + for (int i = 0; i < args.length; i++) { + if (args[i].equals("-gui")) + gui = true; + } + + new SingleStaticSource(gui); + } +} |