diff options
Diffstat (limited to 'src/demos/printext/PrintExt.java')
-rwxr-xr-x | src/demos/printext/PrintExt.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/demos/printext/PrintExt.java b/src/demos/printext/PrintExt.java new file mode 100755 index 0000000..d2abe17 --- /dev/null +++ b/src/demos/printext/PrintExt.java @@ -0,0 +1,77 @@ +/* + * Portions Copyright (C) 2003 Sun Microsystems, Inc. + * All rights reserved. + */ + +package demos.printext; + +import java.awt.Frame; +import javax.media.opengl.GL; +import javax.media.opengl.GLAutoDrawable; +import javax.media.opengl.GLEventListener; +import javax.media.opengl.awt.GLCanvas; + + + +public class PrintExt { + public static void main(String[] args) { + Frame frame = new Frame(); + GLCanvas canvas = new GLCanvas(); + canvas.addGLEventListener(new Listener()); + frame.setUndecorated(true); + frame.add(canvas); + frame.setSize(1, 1); + frame.setVisible(true); + } + + static class Listener implements GLEventListener { + public void init(GLAutoDrawable drawable) { + GL gl = drawable.getGL(); + System.out.println("GL vendor: " + gl.glGetString(GL.GL_VENDOR)); + System.out.println("GL version: " + gl.glGetString(GL.GL_VERSION)); + System.out.println("GL renderer: " + gl.glGetString(GL.GL_RENDERER)); + System.out.println("GL extensions:"); + String[] extensions = gl.glGetString(GL.GL_EXTENSIONS).split(" "); + int i = 0; + while (i < extensions.length) { + System.out.print(" "); + String ext = extensions[i++]; + System.out.print(ext); + if (i < extensions.length) { + for (int j = 0; j < (40 - ext.length()); j++) { + System.out.print(" "); + } + System.out.println(extensions[i++]); + } else { + System.out.println(); + } + } + runExit(); + } + + public void dispose(GLAutoDrawable drawable) { + } + + public void display(GLAutoDrawable drawable) { + } + + public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) { + } + + public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { + } + } + + private static void runExit() { + // Note: calling System.exit() synchronously inside the draw, + // reshape or init callbacks can lead to deadlocks on certain + // platforms (in particular, X11) because the JAWT's locking + // routines cause a global AWT lock to be grabbed. Run the + // exit routine in another thread. + new Thread(new Runnable() { + public void run() { + System.exit(0); + } + }).start(); + } +} |