Advertisement
Guest User

test.java

a guest
Feb 10th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.00 KB | None | 0 0
  1. import java.awt.event.WindowAdapter;
  2. import java.awt.event.WindowEvent;
  3. import javax.swing.JFrame;
  4.  
  5. import javax.media.opengl.GL2;
  6. import javax.media.opengl.GLAutoDrawable;
  7. import javax.media.opengl.GLCapabilities;
  8. import javax.media.opengl.GLDrawable;
  9. import javax.media.opengl.GLProfile;
  10. import javax.media.opengl.GLEventListener;
  11. import javax.media.opengl.awt.GLCanvas;
  12. import static javax.media.opengl.GL2.*;
  13.  
  14. public class test extends JFrame implements Runnable
  15. {
  16.   private GLCanvas canvas;
  17.  
  18.   private final int screenW = 500 , screenH = 500;
  19.  
  20.   /**
  21.    * Serial version ID
  22.    */
  23.   static final long serialVersionUID = 20090529;
  24.  
  25.   public static void main(String[] args)
  26.   {
  27.     JFrame frame = new test();
  28.   }
  29.  
  30.   public test()
  31.   {
  32.     //init jogl
  33.     this.canvas = new GLCanvas(new GLCapabilities(GLProfile.getDefault()));
  34.     canvas.setIgnoreRepaint(true);
  35.     canvas.addGLEventListener(new GLHandler());
  36.  
  37.     //system settings
  38.     setIgnoreRepaint(true);
  39.     setResizable(false);
  40.     setSize(screenW , screenH);
  41.     setUndecorated(true);
  42.     setVisible(true);
  43.  
  44.     //customized initalization process and stuff
  45.     add(canvas);
  46.     this.run();
  47.   }
  48.  
  49.   public void run()
  50.   {
  51.     while(true)
  52.     {
  53.       canvas.display();
  54.       try //Sleep a bit, let other threads do their stuff
  55.       {
  56.         Thread.sleep(1);
  57.       }
  58.       catch(InterruptedException ex)
  59.       {
  60.         ex.printStackTrace();
  61.         System.exit(0);
  62.       }
  63.     }
  64.   }
  65.  
  66.   private class GLHandler implements GLEventListener
  67.   {
  68.     public void display(GLAutoDrawable drawable)
  69.     {
  70.       GL2 gl = drawable.getGL().getGL2();
  71.  
  72.       gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  73.  
  74.       gl.glBegin(GL_QUADS);
  75.         gl.glColor3f(1 , 0 , 0); // Red
  76.         gl.glVertex2i(0 , 0);    // x, y
  77.         gl.glVertex2i(200 , 000);
  78.         gl.glVertex2i(200 , 100);
  79.         gl.glVertex2i(000 , 100);
  80.       gl.glEnd();
  81.  
  82.       gl.glBegin(GL_QUADS);
  83.         gl.glColor3f(1 , 0 , 0); // Red
  84.         gl.glVertex2i(400 , 400);    // x, y
  85.         gl.glVertex2i(500 , 400);
  86.         gl.glVertex2i(500 , 500);
  87.         gl.glVertex2i(400 , 500);
  88.       gl.glEnd();
  89.     }
  90.  
  91.     //Invoked when canvas is destroyed i.e. system exit. Nothing needing done.
  92.     public void dispose(GLAutoDrawable drawable){}
  93.  
  94.     public void init(GLAutoDrawable drawable)
  95.     {
  96.       //Force v-sync.
  97.       drawable.getGL().setSwapInterval(1);
  98.  
  99.       //disable 3D
  100.       drawable.getGL().glDisable(GL_DEPTH_TEST);
  101.  
  102.       GL2 gl = drawable.getGL().getGL2();
  103.  
  104.       //set screen size
  105.       gl.glViewport(0 , 0 , screenW , screenH);
  106.       gl.glMatrixMode(GL_PROJECTION);
  107.       gl.glLoadIdentity();
  108.  
  109.       //set ortho view
  110.       gl.glOrtho(0 , screenW , screenH , 0 , -1 , 1);
  111.       gl.glMatrixMode(GL_MODELVIEW);
  112.       gl.glLoadIdentity();
  113.     }
  114.  
  115.     // called when user resizes the window. Never happen.
  116.     public void reshape(GLAutoDrawable drawable , int x , int y ,
  117.                         int width , int height) {}
  118.   }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement