summaryrefslogtreecommitdiffstats
path: root/src/demos/particles/engine/GLComponent.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/demos/particles/engine/GLComponent.java')
-rwxr-xr-xsrc/demos/particles/engine/GLComponent.java111
1 files changed, 57 insertions, 54 deletions
diff --git a/src/demos/particles/engine/GLComponent.java b/src/demos/particles/engine/GLComponent.java
index 46a0940..8cc319e 100755
--- a/src/demos/particles/engine/GLComponent.java
+++ b/src/demos/particles/engine/GLComponent.java
@@ -1,21 +1,21 @@
/*
* Copyright (c) 2006 Ben Chappell ([email protected]) 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.
- *
+ *
* The names of Ben Chappell, Sun Microsystems, Inc. or the names of
* contributors may not 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
@@ -23,12 +23,12 @@
* SUN MICROSYSTEMS, INC. ("SUN"), AND SUN'S 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 BEN
- * CHAPPELL, SUN, OR SUN'S LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT
+ * CHAPPELL, SUN, OR SUN'S 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 BEN
* CHAPPELL OR 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.
@@ -36,105 +36,108 @@
package demos.particles.engine;
-import javax.media.opengl.*;
-import javax.media.opengl.glu.*;
-import javax.media.opengl.awt.*;
+import com.jogamp.opengl.*;
+import com.jogamp.opengl.fixedfunc.GLLightingFunc;
+import com.jogamp.opengl.fixedfunc.GLMatrixFunc;
+import com.jogamp.opengl.glu.*;
+import com.jogamp.opengl.awt.*;
+import com.jogamp.opengl.math.FloatUtil;
import com.jogamp.opengl.util.FPSAnimator;
public class GLComponent extends GLCanvas implements GLEventListener {
-
- private GLU glu;
+
+ private final GLU glu;
private FPSAnimator animator;
- private RGBA background;
- private RGBA ambient;
+ private final RGBA background;
+ private final RGBA ambient;
private Engine engine;
-
- public GLComponent(int fps, RGBA ambient, RGBA background, Engine engine) {
+
+ public GLComponent(final int fps, final RGBA ambient, final RGBA background, final Engine engine) {
super(getCapabilities());
addGLEventListener(this);
glu = new GLU();
-
+
this.background=background;
- this.ambient=ambient;
+ this.ambient=ambient;
this.engine=engine;
-
+
animator = new FPSAnimator(this, fps);
}
-
+
private static GLCapabilities getCapabilities() {
- GLCapabilities caps = new GLCapabilities(null);
+ final GLCapabilities caps = new GLCapabilities(null);
caps.setDoubleBuffered(true);
caps.setHardwareAccelerated(true);
return caps;
}
-
- public void dispose(GLAutoDrawable drawable) {
+
+ public void dispose(final GLAutoDrawable drawable) {
this.engine=null;
}
- public void display(GLAutoDrawable drawable) {
+ public void display(final GLAutoDrawable drawable) {
final GL2 gl = drawable.getGL().getGL2();
engine.draw(gl);
}
-
-
-
- public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {
-
+
+
+
+ public void displayChanged(final GLAutoDrawable drawable, final boolean modeChanged, final boolean deviceChanged) {
+
}
-
- public void init(GLAutoDrawable drawable) {
- final GL2 gl = drawable.getGL().getGL2();
- gl.glShadeModel(GL2ES1.GL_SMOOTH);
+ public void init(final GLAutoDrawable drawable) {
+ final GL2 gl = drawable.getGL().getGL2();
+
+ gl.glShadeModel(GLLightingFunc.GL_SMOOTH);
// Set the background / clear color.
gl.glClearColor(background.r, background.g, background.b, background.a);
// Clear the depth
gl.glClearDepth(1.0);
// Disable depth testing.
- gl.glDisable(GL.GL_DEPTH_TEST);
+ gl.glDisable(GL.GL_DEPTH_TEST);
// Enable blending and specify blening function.
gl.glEnable(GL.GL_BLEND);
gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE);
- // Get nice perspective calculations.
- gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST);
+ // Get nice perspective calculations.
+ gl.glHint(GL2ES1.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
// Nice point smoothing.
- gl.glHint(GL2.GL_POINT_SMOOTH_HINT, GL2.GL_NICEST);
+ gl.glHint(GL2ES1.GL_POINT_SMOOTH_HINT, GL.GL_NICEST);
// Enable texture mapping.
gl.glEnable(GL.GL_TEXTURE_2D);
-
+
animator.start();
-
+
engine.init(gl);
-
- }
-
- public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
- GL2 gl = drawable.getGL().getGL2();
+
+ }
+
+ public void reshape(final GLAutoDrawable drawable, final int x, final int y, final int width, final int height) {
+ final GL2 gl = drawable.getGL().getGL2();
// the size of openGL
gl.glViewport(0,0, width, height);
-
+
// perspective view (smaller for further behind)
- gl.glMatrixMode(GL2ES1.GL_PROJECTION);
+ gl.glMatrixMode(GLMatrixFunc.GL_PROJECTION);
gl.glLoadIdentity();
-
+
// perspective
- double ratio = (double)width/(double)height;
+ final double ratio = (double)width/(double)height;
// angle, ratio, nearest, farthest
- glu.gluPerspective(45.0, ratio, 0.0, 1.0);
-
+ glu.gluPerspective(45.0, ratio, FloatUtil.EPSILON, 1.0);
+
// draw into the model matrix now
- gl.glMatrixMode(GL2ES1.GL_MODELVIEW);
+ gl.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
gl.glLoadIdentity();
}
-
- public void setFPS(int fps) {
+
+ public void setFPS(final int fps) {
animator.stop();
animator = new FPSAnimator(this, fps);
animator.start();
}
-
+
public void kill() {
animator.stop();
}