aboutsummaryrefslogtreecommitdiffstats
path: root/demos/MiscDemos/gearsFullScreen.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2001-12-06 09:18:00 +0000
committerSven Gothel <[email protected]>2001-12-06 09:18:00 +0000
commit8fdc4baaee82a63247a9f4203dace4ee910881bb (patch)
treef9ff045a8756d695c3afafadb5256c86813eecef /demos/MiscDemos/gearsFullScreen.java
parent5a67c0f5302dbd445d744450db58d1122096b742 (diff)
2.8.1 rc 0rel-2-8-1-0-rc
Diffstat (limited to 'demos/MiscDemos/gearsFullScreen.java')
-rw-r--r--demos/MiscDemos/gearsFullScreen.java215
1 files changed, 215 insertions, 0 deletions
diff --git a/demos/MiscDemos/gearsFullScreen.java b/demos/MiscDemos/gearsFullScreen.java
new file mode 100644
index 0000000..8cabd83
--- /dev/null
+++ b/demos/MiscDemos/gearsFullScreen.java
@@ -0,0 +1,215 @@
+/**
+ * @(#) gearsFullScreen.java
+ * @(#) author: Brian Paul (converted to Java by Ron Cemer and Sven Goethel)
+ *
+ * This version is equal to Brian Paul's version 1.2 1999/10/21
+ */
+
+import java.applet.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.lang.*;
+import java.util.*;
+import java.io.*;
+import gl4java.*;
+import gl4java.drawable.*;
+import gl4java.awt.GLAnimCanvas;
+import gl4java.applet.SimpleGLAnimApplet1;
+
+public class gearsFullScreen extends SimpleGLAnimApplet1
+ implements MouseListener
+{
+
+ /* Initialize the applet */
+ public void init()
+ {
+ init(false);
+ }
+
+ public void init(boolean showGL)
+ {
+ super.init();
+
+ Dimension d = getSize();
+
+ GLCapabilities caps = new GLCapabilities();
+
+ canvas =
+ GLDrawableFactory.getFactory().createGLAnimCanvas(caps, d.width, d.height);
+
+ gearRenderer gear = new gearRenderer(showGL);
+ canvas.addGLEventListener(gear);
+
+ add("Center", canvas);
+ addMouseListener(this);
+ }
+
+ public void destroy()
+ {
+ removeMouseListener(this);
+ super.destroy();
+ }
+
+
+ public static void main( String args[] )
+ {
+ int i = 0;
+ String gljLib = null;
+ String glLib = null;
+ String gluLib = null;
+ boolean perftest=false;
+
+ GLContext.gljNativeDebug = false;
+ GLContext.gljClassDebug = false;
+ GLContext.gljThreadDebug = false;
+
+ while(args.length>i)
+ {
+ if(args[i].equals("-perftest"))
+ {
+ perftest=true;
+ } else if(args[i].equals("-gljLib"))
+ {
+ i++;
+ if(args.length>i)
+ gljLib=args[i];
+ } else if(args[i].equals("-glLib"))
+ {
+ i++;
+ if(args.length>i)
+ glLib=args[i];
+ } else if(args[i].equals("-gluLib"))
+ {
+ i++;
+ if(args.length>i)
+ gluLib=args[i];
+ } else {
+ System.out.println("illegal arg "+i+": "+args[i]);
+ }
+ i++;
+ }
+
+ if(perftest)
+ {
+ GLContext.gljNativeDebug = false;
+ GLContext.gljThreadDebug = false;
+ GLContext.gljClassDebug = false;
+ }
+
+ if(perftest)
+ GLContext.gljClassDebug=true;
+ GLContext.doLoadNativeLibraries(gljLib, glLib, gluLib);
+ if(perftest)
+ GLContext.gljClassDebug=false;
+
+ GraphicsEnvironment env =
+ GraphicsEnvironment.getLocalGraphicsEnvironment();
+ GraphicsDevice device = env.getDefaultScreenDevice();
+ Frame mainFrame = null;
+
+ System.out.println("isFullScreenSupported: "+
+ device.isFullScreenSupported() );
+
+ try {
+ GraphicsConfiguration gc ;
+ gl4java.drawable.GLDrawableFactory df =
+ gl4java.drawable.GLDrawableFactory.getFactory();
+
+ if(df instanceof gl4java.drawable.SunJDK13GLDrawableFactory)
+ {
+ GLCapabilities glCaps = new GLCapabilities();
+ gl4java.drawable.SunJDK13GLDrawableFactory sdf =
+ (gl4java.drawable.SunJDK13GLDrawableFactory)df;
+
+ gc = sdf.getGraphicsConfiguration(glCaps, device);
+ } else {
+ gc = device.getDefaultConfiguration();
+ }
+
+ mainFrame = new Frame(gc);
+
+ gearsFullScreen applet = new gearsFullScreen();
+ mainFrame.add(applet);
+ applet.setSize(400,500);
+ applet.init();
+
+ if(perftest)
+ {
+ applet.canvas.setUseFpsSleep(false);
+ applet.canvas.setUseRepaint(false);
+ applet.canvas.setUseYield(false);
+
+ System.out.println("useFpsSleep: "+
+ applet.canvas.getUseFpsSleep());
+ System.out.println("useRepaint: "+
+ applet.canvas.getUseRepaint());
+
+ System.out.println("useFpsSleep: "+
+ applet.canvas.getUseFpsSleep());
+ }
+
+ applet.start();
+
+ Dimension ps = applet.getPreferredSize();
+ mainFrame.setBounds(-100,-100,99,99);
+ mainFrame.setVisible(true);
+ mainFrame.setVisible(false);
+ mainFrame.setVisible(true);
+ Insets is = mainFrame.getInsets();
+ mainFrame.setBounds(0,0,
+ ps.width+is.left+is.right,
+ ps.height+is.top+is.bottom);
+ mainFrame.setVisible(true);
+ Thread.currentThread().sleep(10000, 0 );
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ device.setFullScreenWindow(null);
+ }
+
+ }
+
+ // Methods required for the implementation of MouseListener
+ public void mouseEntered( MouseEvent evt )
+ {
+ //System.out.println("mouse entered: ");
+ super.mouseEntered(evt);
+ }
+
+ public void mouseExited( MouseEvent evt )
+ {
+ //System.out.println("mouse exit: ");
+ super.mouseExited(evt);
+ }
+
+ public void mousePressed( MouseEvent evt )
+ {
+ //System.out.println("mouse pressed: ");
+ super.mousePressed(evt);
+ }
+
+ public void mouseReleased( MouseEvent evt )
+ {
+ //System.out.println("mouse released: ");
+ super.mouseReleased(evt);
+ }
+
+ public void mouseClicked( MouseEvent evt )
+ {
+ //System.out.println("mouse clicked: ");
+ super.mouseClicked(evt);
+
+ if ((evt.getModifiers() & evt.BUTTON2_MASK) != 0)
+ {
+ System.out.println("stopping applet now .. (after 1s, restart)");
+ stop();
+ try {
+ Thread.sleep(1000);
+ } catch (Exception e)
+ { System.out.println("oops, somebody woke us up .."); }
+ System.out.println("restarting applet now .. ");
+ canvas.setVisible(true);
+ start();
+ }
+ }
+}