Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
- import javax.swing.JFrame;
- import javax.media.opengl.GL2;
- import javax.media.opengl.GLAutoDrawable;
- import javax.media.opengl.GLCapabilities;
- import javax.media.opengl.GLDrawable;
- import javax.media.opengl.GLProfile;
- import javax.media.opengl.GLEventListener;
- import javax.media.opengl.awt.GLCanvas;
- import static javax.media.opengl.GL2.*;
- public class test extends JFrame implements Runnable
- {
- private GLCanvas canvas;
- private final int screenW = 500 , screenH = 500;
- /**
- * Serial version ID
- */
- static final long serialVersionUID = 20090529;
- public static void main(String[] args)
- {
- JFrame frame = new test();
- }
- public test()
- {
- //init jogl
- this.canvas = new GLCanvas(new GLCapabilities(GLProfile.getDefault()));
- canvas.setIgnoreRepaint(true);
- canvas.addGLEventListener(new GLHandler());
- //system settings
- setIgnoreRepaint(true);
- setResizable(false);
- setSize(screenW , screenH);
- setUndecorated(true);
- setVisible(true);
- //customized initalization process and stuff
- add(canvas);
- this.run();
- }
- public void run()
- {
- while(true)
- {
- canvas.display();
- try //Sleep a bit, let other threads do their stuff
- {
- Thread.sleep(1);
- }
- catch(InterruptedException ex)
- {
- ex.printStackTrace();
- System.exit(0);
- }
- }
- }
- private class GLHandler implements GLEventListener
- {
- public void display(GLAutoDrawable drawable)
- {
- GL2 gl = drawable.getGL().getGL2();
- gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- gl.glBegin(GL_QUADS);
- gl.glColor3f(1 , 0 , 0); // Red
- gl.glVertex2i(0 , 0); // x, y
- gl.glVertex2i(200 , 000);
- gl.glVertex2i(200 , 100);
- gl.glVertex2i(000 , 100);
- gl.glEnd();
- gl.glBegin(GL_QUADS);
- gl.glColor3f(1 , 0 , 0); // Red
- gl.glVertex2i(400 , 400); // x, y
- gl.glVertex2i(500 , 400);
- gl.glVertex2i(500 , 500);
- gl.glVertex2i(400 , 500);
- gl.glEnd();
- }
- //Invoked when canvas is destroyed i.e. system exit. Nothing needing done.
- public void dispose(GLAutoDrawable drawable){}
- public void init(GLAutoDrawable drawable)
- {
- //Force v-sync.
- drawable.getGL().setSwapInterval(1);
- //disable 3D
- drawable.getGL().glDisable(GL_DEPTH_TEST);
- GL2 gl = drawable.getGL().getGL2();
- //set screen size
- gl.glViewport(0 , 0 , screenW , screenH);
- gl.glMatrixMode(GL_PROJECTION);
- gl.glLoadIdentity();
- //set ortho view
- gl.glOrtho(0 , screenW , screenH , 0 , -1 , 1);
- gl.glMatrixMode(GL_MODELVIEW);
- gl.glLoadIdentity();
- }
- // called when user resizes the window. Never happen.
- public void reshape(GLAutoDrawable drawable , int x , int y ,
- int width , int height) {}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement