import java.lang.*;
import java.util.*;
import java.nio.*;

import javax.media.opengl.*;
import javax.media.nativewindow.*;

import com.jogamp.opengl.util.*;
import com.jogamp.opengl.util.glsl.*;

import com.jogamp.newt.*;
import com.jogamp.newt.event.*;
import com.jogamp.newt.opengl.*;

public class Foo implements WindowListener,GLEventListener {
	public void windowRepaint(WindowUpdateEvent e) {}
	public void windowResized(WindowEvent e) {}
	public void windowMoved(WindowEvent e) {}
	public void windowGainedFocus(WindowEvent e) {}
	public void windowLostFocus(WindowEvent e) {}
	public void windowDestroyed(WindowEvent e) {}
	public void windowDestroyNotify(WindowEvent e) {
		System.exit(0);
	}

	public void init(GLAutoDrawable drawable) {
		GL2 gl = drawable.getGL().getGL2();

		gl.glClearColor(1,0,0,1);
		gl.glEnable(GL2.GL_DEPTH_TEST);
	}
	public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {}
	public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
		GL2 gl = drawable.getGL().getGL2();

		gl.glViewport(0,0,width,height); 
		gl.glMatrixMode(GL2.GL_PROJECTION); 
		gl.glLoadIdentity(); 
		gl.glOrtho(0,width,height,0,-10,2000); 
		gl.glMatrixMode(GL2.GL_MODELVIEW); 
		gl.glLoadIdentity();
	}
	public void dispose(GLAutoDrawable drawable) {}
	public void display(GLAutoDrawable drawable) {
		GL2 gl = drawable.getGL().getGL2();

		gl.glClear((gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT));
		gl.glLoadIdentity();

		gl.glTranslatef(0.0f,0.0f,0.0f);
		gl.glColor4f(0.0f,1.0f,1.0f,1.0f);
		gl.glBegin(gl.GL_TRIANGLES);
			gl.glVertex3f( 10.0f, 50.0f,  0.0f);
			gl.glVertex3f(150.0f,100.0f,  0.0f);
			gl.glVertex3f( 25.0f,150.0f,  0.0f);
		gl.glEnd();

		//System.out.println("Foo.display");
	}

	public static void main(String[] args) {
		GLProfile.initSingleton();

		GLWindow window = GLWindow.create(new GLCapabilities(GLProfile.getDefault()));
		window.setSize(320,240);
		window.setVisible(true);
		window.setTitle("GLWindow Test");

		Foo foo = new Foo();

		window.addWindowListener(foo);
		window.addGLEventListener(foo);

		FPSAnimator animator = new FPSAnimator(window,60);
		animator.start();
    }
}
