Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Java OpenGL - Взаимодействие Java 2D и OpenGL10 июня 2011Оглавление: 1. Java OpenGL 2. Состояние разработки и стандартизация 3. Взаимодействие Java 2D и OpenGL 4. Инсталляция, подключение и использование Начиная с Java Standard Edition версии 1.6, Java 2D API и OpenGL могут взаимодействовать посредством JOGL:
3D Tetrahedron ExampleПрограмма показывает пример простейшей отрисовки тетраэдра с использованием JOGL. Класс import javax.media.opengl.GL; import javax.media.opengl.GLEventListener; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.glu.GLU; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; public class JavaRenderer implements GLEventListener, KeyListener { private float rotateT = 0.0f; private static final GLU glu = new GLU; public void display { final GL gl = gLDrawable.getGL; gl.glClear; gl.glClear; gl.glLoadIdentity; gl.glTranslatef; gl.glRotatef; gl.glRotatef; gl.glRotatef; gl.glRotatef; gl.glBegin; // Front gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; // Right Side Facing Front gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; // Left Side Facing Front gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; // Bottom gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; gl.glColor3f; gl.glVertex3f; gl.glEnd; rotateT += 0.2f; } public void displayChanged(GLAutoDrawable gLDrawable, boolean modeChanged, boolean deviceChanged) { } public void init { final GL gl = gLDrawable.getGL; gl.glShadeModel; gl.glClearColor; gl.glClearDepth; gl.glEnable; gl.glDepthFunc; gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); gLDrawable.addKeyListener; } public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height) { final GL gl = gLDrawable.getGL; if { height = 1; } final float h = width / height; gl.glMatrixMode; gl.glLoadIdentity; glu.gluPerspective; gl.glMatrixMode; gl.glLoadIdentity; } public void keyPressed { if == KeyEvent.VK_ESCAPE) { JavaDia.bQuit = true; JavaDia.displayT = null; System.exit; } } public void keyReleased { } public void keyTyped { } }
import javax.media.opengl.GLCanvas; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class JavaDia implements Runnable { static Thread displayT = new Thread); static boolean bQuit = false; public static void main { displayT.start; } public void run { Frame frame = new Frame; GLCanvas canvas = new GLCanvas; canvas.addGLEventListener); frame.add; frame.setSize; frame.setUndecorated; int size = frame.getExtendedState; size |= Frame.MAXIMIZED_BOTH; frame.setExtendedState; frame.addWindowListener { public void windowClosing { bQuit = true; } }); frame.setVisible; // frame.show; canvas.requestFocus; while { canvas.display; } } } Просмотров: 3903
|