/** * @(#) anti.java * @(#) author: Silicon Graphics, Inc. (converted to Java by Ron Cemer) */ /* * This program demonstrates lots of material properties. * A single light source illuminates the objects. */ 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; import gl4java.utils.glut.*; public class anti extends Applet { antiCanvas canvas = null; /* Initialize the applet */ public void init() { Dimension d = getSize(); setLayout(new BorderLayout()); canvas = new antiCanvas(d.width, d.height); add("Center", canvas); } /* Start the applet */ public void start() { } /* Stop the applet */ public void stop() { } public static void main( String args[] ) { anti applet = new anti(); Frame f = new Frame("anti"); f.addWindowListener( new WindowAdapter() { public void windowClosed(WindowEvent e) { System.exit(0); } public void windowClosing(WindowEvent e) { windowClosed(e); } } ); f.setLayout(new BorderLayout()); f.add("Center", applet); applet.setSize(500,300); applet.init(); applet.start(); Dimension ps = applet.getPreferredSize(); f.setBounds(-100,-100,99,99); f.setVisible(true); f.setVisible(false); f.setVisible(true); Insets i = f.getInsets(); f.setBounds(0,0, ps.width+i.left+i.right, ps.height+i.top+i.bottom); f.setVisible(true); } /* Local GLCanvas extension class */ private class antiCanvas extends GLCanvas { GLUTFunc glut = null; public antiCanvas(int w, int h) { super(w, h); GLContext.gljNativeDebug = false; GLContext.gljClassDebug = false; } public void preInit() { doubleBuffer = true; stereoView = false; } /* Initialize antialia(float)Math.sing for RGBA mode, including alpha * blending, hint, and line width. Print out implementation * specific info on line width granularity and width. */ public void init() { glut = new GLUTFuncLightImpl(gl, glu); reshape(getSize().width, getSize().height); float values[]=new float[2]; gl.glGetFloatv (GL_LINE_WIDTH_GRANULARITY, values); System.out.println("GL_LINE_WIDTH_GRANULARITY value is "+values[0]); gl.glGetFloatv (GL_LINE_WIDTH_RANGE, values); System.out.println("GL_LINE_WIDTH_RANGE values are "+ values[0] + ", " +values[1]); gl.glEnable (GL_LINE_SMOOTH); gl.glEnable (GL_BLEND); gl.glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); gl.glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE); gl.glLineWidth (1.5f); gl.glShadeModel(GL_FLAT); gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); gl.glDepthFunc(GL_LESS); gl.glEnable(GL_DEPTH_TEST); } public void display() { if (glj.gljMakeCurrent() == false) return; gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); gl.glColor4f (1.0f, 1.0f, 1.0f, 1.0f); glut.glutWireIcosahedron(); glj.gljSwap(); glj.gljFree(); } public void reshape(int w, int h) { gl.glViewport(0, 0, w, h); gl.glMatrixMode(GL_PROJECTION); gl.glLoadIdentity(); glu.gluPerspective (45.0f, (float) w/(float) h, 3.0f, 5.0f); gl.glMatrixMode(GL_MODELVIEW); gl.glLoadIdentity (); gl.glTranslatef (0.0f, 0.0f, -4.0f); /* move object into view */ } } }