Results 1 to 1 of 1
-
SWT OpenGL snippet: draw a square
Java Code:package org.eclipse.swt.snippets; /* * SWT OpenGL snippet: draw a square * * This snippet requires the experimental org.eclipse.swt.opengl plugin, which * is not included in swt by default. For information on this plugin see * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/opengl/opengl.html * * For a list of all SWT example snippets see * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets */ import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.opengl.*; import org.eclipse.swt.widgets.*; public class Snippet174 { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("OpenGL in SWT"); shell.setLayout(new FillLayout()); final Canvas canvas = new Canvas(shell, SWT.NO_BACKGROUND); canvas.addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { resize(canvas); } }); final GLContext context = init(canvas); shell.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { context.dispose(); } }); new Runnable() { public void run() { if (canvas.isDisposed()) return; render(); context.swapBuffers(); canvas.getDisplay().timerExec(50, this); } }.run(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } static GLContext init(Canvas canvas) { GLContext context = new GLContext(canvas); context.setCurrent(); resize(canvas); GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); GL.glColor3f(0.0f, 0.0f, 0.0f); GL.glClearDepth(1.0f); GL.glEnable(GL.GL_DEPTH_TEST); GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); return context; } static void render() { GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); GL.glLoadIdentity(); GL.glTranslatef(0.0f, 0.0f, -6.0f); GL.glBegin(GL.GL_QUADS); GL.glVertex3f(-1.0f, 1.0f, 0.0f); GL.glVertex3f(1.0f, 1.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, 0.0f); GL.glEnd(); } static void resize(Canvas canvas) { Rectangle rect = canvas.getClientArea(); int width = rect.width; int height = Math.max(rect.height, 1); GL.glViewport(0, 0, width, height); GL.glMatrixMode(GL.GL_PROJECTION); GL.glLoadIdentity(); float aspect = (float) width / (float) height; GLU.gluPerspective(45.0f, aspect, 0.5f, 400.0f); GL.glMatrixMode(GL.GL_MODELVIEW); GL.glLoadIdentity(); } }"The sole cause of man’s unhappiness is that he does not know how to stay quietly in his room." - Blaise Pascal
Similar Threads
-
change the square to triangle java
By anotsu in forum New To JavaReplies: 3Last Post: 07-09-2009, 11:17 AM -
Problem using buttons to creat a magic square game
By goldman in forum New To JavaReplies: 5Last Post: 05-05-2008, 04:04 AM -
help me draw... please...
By kureikougaiji in forum New To JavaReplies: 1Last Post: 01-28-2008, 12:22 PM -
J2ME MIDlet snippet
By Java Tip in forum Java TipReplies: 0Last Post: 11-21-2007, 11:41 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks