summaryrefslogtreecommitdiffstats
path: root/src/demos/applets/GearsJOALApplet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/demos/applets/GearsJOALApplet.java')
-rwxr-xr-xsrc/demos/applets/GearsJOALApplet.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/demos/applets/GearsJOALApplet.java b/src/demos/applets/GearsJOALApplet.java
new file mode 100755
index 0000000..1c71e72
--- /dev/null
+++ b/src/demos/applets/GearsJOALApplet.java
@@ -0,0 +1,52 @@
+package demos.applets;
+
+import demos.gears.Gears;
+import java.applet.Applet;
+import java.awt.EventQueue;
+import java.awt.GridLayout;
+import javax.media.opengl.awt.GLCanvas;
+import com.sun.opengl.util.Animator;
+import com.sun.opengl.util.FPSAnimator;
+import javax.swing.JPanel;
+import net.java.games.joal.util.ALut;
+import demos.devmaster.lesson1.SingleStaticSource;
+
+/** Shows how to deploy an applet using both JOGL and JOAL. This demo
+ must be referenced from a web page via an <applet> tag. */
+
+public class GearsJOALApplet extends Applet {
+ private Animator animator;
+
+ public void init() {
+ setLayout(new GridLayout(1, 2));
+ GLCanvas canvas = new GLCanvas();
+ canvas.addGLEventListener(new Gears());
+ canvas.setSize(getSize());
+ add(canvas);
+ JPanel joalDemoParent = new JPanel();
+ SingleStaticSource joalDemo = new SingleStaticSource(true, joalDemoParent, false);
+ add(joalDemoParent);
+ animator = new FPSAnimator(canvas, 60);
+ }
+
+ public void start() {
+ animator.start();
+ }
+
+ public void stop() {
+ // FIXME: do I need to do anything else here?
+ animator.stop();
+ // Note that the SingleStaticSource demo does an alutInit()
+ // internally (on the Event Dispatch Thread), so we should do an
+ // alutExit() ourselves
+ try {
+ EventQueue.invokeAndWait(new Runnable() {
+ public void run() {
+ ALut.alutExit();
+ }
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}