/** * @(#) SimpleTest.java * @(#) author: unknown (converted to Java by Ron Cemer), converted again by Tim Hickey from molehill.java */ import java.applet.*; import java.awt.*; import java.awt.event.*; import java.lang.*; import java.util.*; import java.io.*; import java.util.*; import gl4java.GLContext; import gl4java.awt.GLCanvas; public class SimpleTest extends Applet { simpleTestCanvas canvas = null; /* Initialize the applet */ public void init() { Dimension d = getSize(); setLayout(new BorderLayout()); canvas = new simpleTestCanvas(d.width, d.height); add("Center", canvas); } /* Start the applet */ public void start() { } /* Stop the applet */ public void stop() { } /* Destroy the applet */ public void destroy() { canvas.cvsDispose(); } public static void main( String args[] ) { Frame mainFrame = new Frame("simpleTest"); SimpleTest applet = new SimpleTest(); applet.setSize(400, 400); applet.init(); applet.start(); mainFrame.add(applet); mainFrame.pack(); mainFrame.setVisible(true); } /* Local GLCanvas extension class */ private class simpleTestCanvas extends GLCanvas { float angle=0f; public simpleTestCanvas(int w, int h) { super(w, h); GLContext.gljNativeDebug = false; GLContext.gljClassDebug = false; } public void preInit() { doubleBuffer = true; stereoView = false; } public void init() { System.out.println("init(): " + this); reshape(getSize().width, getSize().height); gl.glMatrixMode(GL_PROJECTION); glu.gluPerspective(55.0f, 1.0f, 2.0f, 24.0f); gl.glMatrixMode(GL_MODELVIEW); gl.glTranslatef(0.0f, 0.0f, -15.0f); gl.glRotatef(200.0f, 1.0f, 0.0f, 0.0f); gl.glRotatef(60.0f, 0.0f, 1.0f, 0.0f); } public void cvsDispose() { System.out.println("destroy(): " + this); super.cvsDispose(); } public void reshape(int width, int height) { gl.glViewport(0,0,width,height); gl.glMatrixMode(GL_PROJECTION); } public void display() { if (glj.gljMakeCurrent() == false) // return; System.out.println("makecurrent error"); gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); gl.glMatrixMode(GL_MODELVIEW); gl.glLoadIdentity(); glu.gluLookAt (0.0f, 8.0f, 6.0f, /* eye is at (0,8,6) */ 0.0f, 0.0f, 0.0f, /* center is at (0,0,0) */ 0.0f, 1.0f, 0.0f); /* up is in postivie Y direction */ gl.glRotatef(angle, 0.0f, 1.0f, 0.0f); angle+=0.5f; System.out.println("angle="+angle); gl.glBegin(GL_TRIANGLE_FAN); gl.glColor3f(1.0f, 0.0f, 0.0f); gl.glVertex3f(0, 0, 0); gl.glVertex3f(2, 1, 1); gl.glColor3f(1.0f, 1.0f, 0.0f); gl.glVertex3f(2, -1, 1); gl.glColor3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(2, -1, -1); gl.glColor3f(0.0f, 1.0f, 1.0f); gl.glVertex3f(2, 1, -1); gl.glColor3f(0.0f, 0.0f, 1.0f); gl.glVertex3f(2, 1, 1); gl.glEnd(); gl.glFlush(); glj.gljSwap(); glj.gljCheckGL(); glj.gljFree(); } } }