package destr.jogl.game2d;
import java.awt.Dimension;
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.awt.GLCanvas;
import com.jogamp.opengl.util.FPSAnimator;
public abstract class Game2DCanvas extends GLCanvas implements GLEventListener {
private static final long serialVersionUID = -4271027726165395673L;
protected int width;
protected int height;
protected final FPSAnimator animator;
public Game2DCanvas(int width, int height){
this.width = width;
this.height = height;
this.addGLEventListener(this);
this.setPreferredSize(new Dimension(width, height));
animator = new FPSAnimator(this, 100/*FPS*/, true);
animator.start();
}
@Override
public void dispose(GLAutoDrawable drawable) {
//...
}
@Override
public void init(GLAutoDrawable drawable) {
GL2 gl2 = drawable.getGL().getGL2();
gl2.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl2.glMatrixMode(GL2.GL_MODELVIEW);
gl2.glDisable(GL2.GL_DEPTH_TEST);
gl2.glBlendFunc (GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA);
gl2.glEnable (GL2.GL_BLEND);
}
@Override
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
GL2 gl2 = drawable.getGL().getGL2();
this.width = width;
this.height = height;
gl2.glOrtho(0, width, height, 0, 0, 1);
}
}
Comments