aboutsummaryrefslogtreecommitdiffstats
path: root/demos/MiscDemos/gearsOffScreenDrawImage.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/gearsOffScreenDrawImage.java
parent5a67c0f5302dbd445d744450db58d1122096b742 (diff)
2.8.1 rc 0rel-2-8-1-0-rc
Diffstat (limited to 'demos/MiscDemos/gearsOffScreenDrawImage.java')
-rwxr-xr-xdemos/MiscDemos/gearsOffScreenDrawImage.java167
1 files changed, 167 insertions, 0 deletions
diff --git a/demos/MiscDemos/gearsOffScreenDrawImage.java b/demos/MiscDemos/gearsOffScreenDrawImage.java
new file mode 100755
index 0000000..9cdc8c2
--- /dev/null
+++ b/demos/MiscDemos/gearsOffScreenDrawImage.java
@@ -0,0 +1,167 @@
+/**
+ * @(#) gearsOffScreeneen2Tga.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.*;
+import gl4java.utils.textures.*;
+
+public class gearsOffScreenDrawImage extends Applet
+ implements ComponentListener
+{
+ GLOffScreenDrawable glcanvas=null;
+ Dimension size;
+
+ public void init()
+ {
+ if(glcanvas==null)
+ {
+ size = new Dimension(400,400);
+ glcanvas = new GLOffScreenDrawable(size);
+
+ gearRenderer gear = new gearRenderer(true);
+ glcanvas.addGLEventListener(gear);
+
+ glcanvas.initDrawable();
+ }
+ addComponentListener(this);
+ }
+
+ public void destroy()
+ {
+ removeComponentListener(this);
+ glcanvas.cvsDispose();
+ glcanvas=null;
+ super.destroy();
+ }
+
+ public Dimension getPreferredSize() {
+ return getMinimumSize();
+ }
+
+ public Dimension getMinimumSize() {
+ return size;
+ }
+
+ public void setSize(Dimension size) {
+ this.size=size;
+ super.setSize(size);
+ if(glcanvas!=null)
+ glcanvas.setSize(size);
+ }
+
+
+ public void paint(Graphics g)
+ {
+ size=getSize();
+ if(glcanvas!=null && glcanvas.cvsIsInit())
+ {
+ glcanvas.repaint();
+ glcanvas.drawImage(g, 0, 0, size.width, size.height, this);
+ }
+ }
+
+
+ public void componentResized(ComponentEvent e)
+ {
+ if(glcanvas!=null && glcanvas.cvsIsInit())
+ {
+ setSize(getSize());
+ }
+ }
+
+ public void componentMoved(ComponentEvent e)
+ {
+ }
+
+ public void componentShown(ComponentEvent e)
+ {
+ }
+
+ public void componentHidden(ComponentEvent e)
+ { }
+
+ public static void main( String args[] )
+ {
+ int i = 0;
+ String gljLib = null;
+ String glLib = null;
+ String gluLib = null;
+
+ GLContext.gljNativeDebug = false;
+ GLContext.gljClassDebug = false;
+ GLContext.gljThreadDebug = false;
+
+ while(args.length>i)
+ {
+ 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++;
+ }
+
+ GLContext.doLoadNativeLibraries(gljLib, glLib, gluLib);
+
+ /**
+ * yes .. we need an AWT Frame,
+ * to let java get in touch with the underlying
+ * windowing system for initialisation !
+ */
+ Frame mainFrame = new Frame("gears offscreen");
+
+ mainFrame.addWindowListener( new WindowAdapter()
+ {
+ public void windowClosed(WindowEvent e)
+ {
+ System.exit(0);
+ }
+ public void windowClosing(WindowEvent e)
+ {
+ windowClosed(e);
+ }
+ }
+ );
+
+ gearsOffScreenDrawImage applet = new gearsOffScreenDrawImage ();
+ mainFrame.add(applet);
+ applet.setSize(400,500);
+ applet.init();
+
+ 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);
+ applet.repaint();
+ }
+}