aboutsummaryrefslogtreecommitdiffstats
path: root/demos/glDemosCvs.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
committerSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
commit880653d31a8f1ff8384fdbc75b84934bceecfdb8 (patch)
treebdafb71416f176d2a4b73bf716c9dc3f13685a8b /demos/glDemosCvs.java
Initial revision
Diffstat (limited to 'demos/glDemosCvs.java')
-rw-r--r--demos/glDemosCvs.java620
1 files changed, 620 insertions, 0 deletions
diff --git a/demos/glDemosCvs.java b/demos/glDemosCvs.java
new file mode 100644
index 0000000..6902b95
--- /dev/null
+++ b/demos/glDemosCvs.java
@@ -0,0 +1,620 @@
+
+import gl4java.GLContext;
+import gl4java.awt.GLAnimCanvas;
+import java.awt.*;
+import java.awt.event.*;
+import java.applet.*;
+
+public class glDemosCvs extends Applet
+ implements MouseListener, WindowListener, ActionListener, ItemListener
+{
+ /*
+ * show how independent the
+ * canvas and the frame are :-)
+ *
+ * the canvas size is toggled from: (150,150)->(250,250)
+ * the frame size is toggled from: (350,350)->(450,450)
+ *
+ */
+
+ Button ButtonFps;
+ TextField TextFpsOlymp;
+ TextField TextFpsLogo;
+ TextField TextFpsWave;
+ TextField TextFpsStar;
+
+ Button buttonInfo = null;
+
+ Checkbox bUseRepaintW = null;
+ Checkbox bUseFpsSleepW = null;
+ Button bReStartW = null;
+ Checkbox bUseRepaintO = null;
+ Checkbox bUseFpsSleepO = null;
+ Button bReStartO = null;
+ Checkbox bUseRepaintL = null;
+ Checkbox bUseFpsSleepL = null;
+ Button bReStartL = null;
+ Checkbox bUseRepaintS = null;
+ Checkbox bUseFpsSleepS = null;
+ Button bReStartS = null;
+
+ String glClass=null;
+ String gluClass=null;
+
+ olympicCvs cvsOlympic = null;
+ waveCvs cvsWave = null;
+ glLogoCvs cvsLogo = null;
+ starCvs cvsStar = null;
+
+ Frame frame = null;
+
+ public void applicationInit(Frame holder)
+ {
+ frame = holder;
+
+ init();
+ start();
+ }
+
+ public void init()
+ {
+ System.out.println("Applet init ...");
+
+ Panel pTmp = null;
+
+ setLayout(new BorderLayout());
+
+ // 1. GetFps
+ ButtonFps=new Button("Get Fps");
+ ButtonFps.addMouseListener(this);
+ add("North", ButtonFps);
+
+ // 4. Info
+ buttonInfo=new Button("Info");
+ buttonInfo.addMouseListener(this);
+ add("South", buttonInfo);
+
+ // Master-Grid-Panel pAllCvs
+ //
+ // 2 rows
+ // 1. Wave
+ // 2. Olympic
+ // 3. Logo
+ // 4. Star
+ //
+ Panel pAllCvs = new Panel();
+ pAllCvs.setLayout(new GridLayout(4,1));
+ add("Center", pAllCvs);
+
+ // 1. Wave
+ Panel pWave = new Panel();
+ pWave.setLayout(new GridLayout(1,2));
+ pAllCvs.add(pWave);
+
+ // 2. Olympic
+ Panel pOlympic = new Panel();
+ pOlympic.setLayout(new GridLayout(1,2));
+ pAllCvs.add(pOlympic);
+
+ // 3. Logo
+ Panel pLogo = new Panel();
+ pLogo.setLayout(new GridLayout(1,2));
+ pAllCvs.add(pLogo);
+
+ // 3. Star
+ Panel pStar = new Panel();
+ pStar.setLayout(new GridLayout(1,2));
+ pAllCvs.add(pStar);
+
+ // Wave-Grid-Panel pWave
+ //
+ // 3 coloumns
+ //
+ // 1. waveCvs
+ // 2. options
+ //
+
+ // 1. waveCvs
+ cvsWave = new waveCvs(150, 150, glClass, gluClass);
+ pWave.add(cvsWave);
+ cvsWave.addMouseListener(this);
+
+ // 2. options
+ Panel pWaveOpt = new Panel();
+ pWaveOpt.setLayout(new GridLayout(4,1));
+ pWave.add(pWaveOpt);
+ bUseRepaintW = new Checkbox("repaint", true);
+ bUseRepaintW.addItemListener(this);
+ pWaveOpt.add(bUseRepaintW);
+ bUseFpsSleepW = new Checkbox("fps-sleep", true);
+ bUseFpsSleepW.addItemListener(this);
+ pWaveOpt.add(bUseFpsSleepW);
+ pTmp = new Panel();
+ pTmp.setLayout(new GridLayout(1,2));
+ pTmp.add(new Label("fps: "));
+ TextFpsWave=new TextField();
+ TextFpsWave.addActionListener(this);
+ pTmp.add(TextFpsWave);
+ pWaveOpt.add(pTmp);
+ bReStartW = new Button("restart");
+ bReStartW.addMouseListener(this);
+ pWaveOpt.add(bReStartW);
+
+ // Olympic-Grid-Panel pOlympic
+ //
+ // 3 coloumns
+ //
+ // 1. olympicCvs
+ // 2. options
+ //
+
+ // 1. olympicCvs
+ cvsOlympic = new olympicCvs(150, 150, glClass, gluClass);
+ pOlympic.add(cvsOlympic);
+ cvsOlympic.addMouseListener(this);
+
+ // 2. options
+ Panel pOlympOpt = new Panel();
+ pOlympOpt.setLayout(new GridLayout(4,1));
+ pOlympic.add(pOlympOpt);
+ bUseRepaintO = new Checkbox("repaint", true);
+ bUseRepaintO.addItemListener(this);
+ pOlympOpt.add(bUseRepaintO);
+ bUseFpsSleepO = new Checkbox("fps-sleep", true);
+ bUseFpsSleepO.addItemListener(this);
+ pOlympOpt.add(bUseFpsSleepO);
+ pTmp = new Panel();
+ pTmp.setLayout(new GridLayout(1,2));
+ pTmp.add(new Label("fps: "));
+ TextFpsOlymp=new TextField();
+ TextFpsOlymp.addActionListener(this);
+ pTmp.add(TextFpsOlymp);
+ pOlympOpt.add(pTmp);
+ bReStartO = new Button("restart");
+ bReStartO.addMouseListener(this);
+ pOlympOpt.add(bReStartO);
+
+
+ // Logo-Grid-Panel pLogo
+ //
+ // 3 coloumns
+ //
+ // 1. logoCvs
+ // 2. options
+ //
+
+ // 1. logoCvs
+ cvsLogo = new glLogoCvs(150, 150, glClass, gluClass);
+ pLogo.add(cvsLogo);
+ cvsLogo.addMouseListener(this);
+
+ // 2. options
+ Panel pLogoOpt = new Panel();
+ pLogoOpt.setLayout(new GridLayout(4,1));
+ pLogo.add(pLogoOpt);
+ bUseRepaintL = new Checkbox("repaint", true);
+ bUseRepaintL.addItemListener(this);
+ pLogoOpt.add(bUseRepaintL);
+ bUseFpsSleepL = new Checkbox("fps-sleep", true);
+ bUseFpsSleepL.addItemListener(this);
+ pLogoOpt.add(bUseFpsSleepL);
+ pTmp = new Panel();
+ pTmp.setLayout(new GridLayout(1,2));
+ pTmp.add(new Label("fps: "));
+ TextFpsLogo=new TextField();
+ TextFpsLogo.addActionListener(this);
+ pTmp.add(TextFpsLogo);
+ pLogoOpt.add(pTmp);
+ bReStartL = new Button("ReStart");
+ bReStartL.addMouseListener(this);
+ pLogoOpt.add(bReStartL);
+
+ // Star-Grid-Panel pWave
+ //
+ // 3 coloumns
+ //
+ // 1. starCvs
+ // 2. options
+ //
+
+ // 1. starCvs
+ cvsStar = new starCvs(150, 150, glClass, gluClass);
+ pStar.add(cvsStar);
+ cvsStar.addMouseListener(this);
+
+ // 2. options
+ Panel pStarOpt = new Panel();
+ pStarOpt.setLayout(new GridLayout(4,1));
+ pStar.add(pStarOpt);
+ bUseRepaintS = new Checkbox("repaint", true);
+ bUseRepaintS.addItemListener(this);
+ pStarOpt.add(bUseRepaintS);
+ bUseFpsSleepS = new Checkbox("fps-sleep", true);
+ bUseFpsSleepS.addItemListener(this);
+ pStarOpt.add(bUseFpsSleepS);
+ pTmp = new Panel();
+ pTmp.setLayout(new GridLayout(1,2));
+ pTmp.add(new Label("fps: "));
+ TextFpsStar=new TextField();
+ TextFpsStar.addActionListener(this);
+ pTmp.add(TextFpsStar);
+ pStarOpt.add(pTmp);
+ bReStartS = new Button("restart");
+ bReStartS.addMouseListener(this);
+ pStarOpt.add(bReStartS);
+
+ System.out.println("Applet init DONE ! ");
+ }
+
+ public void start() {
+ cvsOlympic.start();
+ cvsWave.start();
+ cvsLogo.start();
+ cvsStar.start();
+ }
+
+ public void stop() {
+ cvsOlympic.stop();
+ cvsWave.stop();
+ cvsLogo.stop();
+ cvsStar.stop();
+ }
+
+ public void destroy() {
+ cvsOlympic.stop();
+ cvsOlympic.cvsDispose();
+ cvsWave.stop();
+ cvsWave.cvsDispose();
+ cvsLogo.stop();
+ cvsLogo.cvsDispose();
+ cvsStar.stop();
+ cvsStar.cvsDispose();
+ }
+
+ public static void main( String args[] ) {
+ String gljLib=null;
+ String glLib=null;
+ String gluLib=null;
+
+ if(args.length>0)
+ gljLib = args[0];
+ if(args.length>1)
+ glLib = args[1];
+ if(args.length>2)
+ gluLib = args[2];
+
+ GLContext.gljNativeDebug = true;
+ GLContext.gljClassDebug = true;
+
+ if(GLContext.loadNativeLibraries(gljLib, glLib, gluLib)==false)
+ System.out.println("could not load native libs:"+
+ gljLib + ", " + glLib + ", " + gluLib);
+ else
+ System.out.println("load native libs:"+
+ gljLib + ", " + glLib + ", " + gluLib);
+
+ Frame mainFrame = new Frame("glDemosCvs");
+
+ glDemosCvs applet = new glDemosCvs();
+ applet.applicationInit(mainFrame);
+
+ mainFrame.add(applet);
+
+ if(args.length>3)
+ applet.glClass = args[3];
+ if(args.length>4)
+ applet.gluClass = args[4];
+
+ mainFrame.pack();
+ mainFrame.setVisible(true);
+
+ mainFrame.addWindowListener(applet);
+ }
+
+ // Methods required for the implementation of MouseListener
+ public void mouseEntered( MouseEvent evt )
+ {
+ }
+
+ public void mouseExited( MouseEvent evt )
+ {
+ }
+
+ public void mousePressed( MouseEvent evt )
+ {
+ }
+
+ public void mouseReleased( MouseEvent evt )
+ {
+ }
+
+ public void mouseClicked( MouseEvent evt )
+ {
+ Component comp = evt.getComponent();
+
+ if( comp.equals(ButtonFps) )
+ {
+ double fps = 0;
+ int a1;
+
+ if(cvsWave!=null && TextFpsWave!=null)
+ {
+ cvsWave.stopFpsCounter();
+ fps=cvsWave.getFps();
+ a1=(int)(fps*100.0);
+ fps=(double)a1/100.0;
+ TextFpsWave.setText(String.valueOf(fps));
+ }
+ if(cvsOlympic!=null && TextFpsOlymp!=null)
+ {
+ cvsOlympic.stopFpsCounter();
+ fps=cvsOlympic.getFps();
+ a1=(int)(fps*100.0);
+ fps=(double)a1/100.0;
+ TextFpsOlymp.setText(String.valueOf(fps));
+ }
+ if(cvsLogo!=null && TextFpsLogo!=null)
+ {
+ cvsLogo.stopFpsCounter();
+ fps=cvsLogo.getFps();
+ a1=(int)(fps*100.0);
+ fps=(double)a1/100.0;
+ TextFpsLogo.setText(String.valueOf(fps));
+ }
+ if(cvsStar!=null && TextFpsStar!=null)
+ {
+ cvsStar.stopFpsCounter();
+ fps=cvsStar.getFps();
+ a1=(int)(fps*100.0);
+ fps=(double)a1/100.0;
+ TextFpsStar.setText(String.valueOf(fps));
+ }
+ }
+ else if( comp.equals(buttonInfo) )
+ {
+ Frame fInfo = null;
+ if(cvsWave!=null && cvsWave.getGLContext()!=null)
+ fInfo = cvsWave.getGLContext().gljShowVersions();
+ else if(cvsOlympic!=null && cvsOlympic.getGLContext()!=null)
+ fInfo = cvsOlympic.getGLContext().gljShowVersions();
+ else if(cvsLogo!=null && cvsLogo.getGLContext()!=null)
+ fInfo = cvsLogo.getGLContext().gljShowVersions();
+ else if(cvsStar!=null && cvsStar.getGLContext()!=null)
+ fInfo = cvsStar.getGLContext().gljShowVersions();
+ }
+ else if( comp.equals(cvsWave) )
+ {
+ cvsWave.setSuspended(!cvsWave.isSuspended(),
+ evt.getClickCount()>1 // -> ReInit
+ );
+ }
+ else if( comp.equals(cvsOlympic) )
+ {
+ cvsOlympic.setSuspended(!cvsOlympic.isSuspended(),
+ evt.getClickCount()>1 // -> ReInit
+ );
+ }
+ else if( comp.equals(cvsLogo) )
+ {
+ cvsLogo.setSuspended(!cvsLogo.isSuspended(),
+ evt.getClickCount()>1 // -> ReInit
+ );
+ }
+ else if( comp.equals(cvsStar) )
+ {
+ cvsStar.setSuspended(!cvsStar.isSuspended(),
+ evt.getClickCount()>1 // -> ReInit
+ );
+ }
+ if( comp.equals(bReStartL) )
+ {
+ if(cvsLogo!=null)
+ {
+ cvsLogo.setSuspended(false, true);
+ }
+ }
+ if( comp.equals(bReStartO) )
+ {
+ if(cvsOlympic!=null)
+ {
+ cvsOlympic.setSuspended(false, true);
+ }
+ }
+ if( comp.equals(bReStartW) )
+ {
+ if(cvsWave!=null)
+ {
+ cvsWave.setSuspended(false, true);
+ }
+ }
+ if( comp.equals(bReStartS) )
+ {
+ if(cvsStar!=null)
+ {
+ cvsStar.setSuspended(false, true);
+ }
+ }
+ }
+
+ public void itemStateChanged( ItemEvent evt )
+ {
+ ItemSelectable comp = evt.getItemSelectable();
+
+ if( comp.equals(bUseRepaintW ) )
+ {
+ if(cvsWave!=null)
+ {
+ cvsWave.setUseRepaint(bUseRepaintW.getState());
+ System.out.println("Wave uses repaint: "+
+ bUseRepaintW.getState());
+ }
+ }
+ if( comp.equals(bUseFpsSleepW ) )
+ {
+ if(cvsWave!=null)
+ {
+ cvsWave.setUseFpsSleep(bUseFpsSleepW.getState());
+ System.out.println("Wave uses fps-sleep: "+
+ bUseFpsSleepW.getState());
+ }
+ }
+ if( comp.equals(bUseRepaintO ) )
+ {
+ if(cvsOlympic!=null)
+ {
+ cvsOlympic.setUseRepaint(bUseRepaintO.getState());
+ System.out.println("Olympic uses repaint: "+
+ bUseRepaintO.getState());
+ }
+ }
+ if( comp.equals(bUseFpsSleepO ) )
+ {
+ if(cvsOlympic!=null)
+ {
+ cvsOlympic.setUseFpsSleep(bUseFpsSleepO.getState());
+ System.out.println("Olympic uses fps-sleep: "+
+ bUseFpsSleepO.getState());
+ }
+ }
+ else if( comp.equals(bUseRepaintL ) )
+ {
+ if(cvsLogo!=null)
+ {
+ cvsLogo.setUseRepaint(bUseRepaintL.getState());
+ System.out.println("Logo uses repaint: "+
+ bUseRepaintL.getState());
+ }
+ }
+ else if( comp.equals(bUseFpsSleepL ) )
+ {
+ if(cvsLogo!=null)
+ {
+ cvsLogo.setUseFpsSleep(bUseFpsSleepL.getState());
+ System.out.println("Logo uses fps-sleep: "+
+ bUseFpsSleepL.getState());
+ }
+ }
+ else if( comp.equals(bUseRepaintS ) )
+ {
+ if(cvsStar!=null)
+ {
+ cvsStar.setUseRepaint(bUseRepaintS.getState());
+ System.out.println("Star uses repaint: "+
+ bUseRepaintS.getState());
+ }
+ }
+ else if( comp.equals(bUseFpsSleepS ) )
+ {
+ if(cvsStar!=null)
+ {
+ cvsStar.setUseFpsSleep(bUseFpsSleepS.getState());
+ System.out.println("Star uses fps-sleep: "+
+ bUseFpsSleepS.getState());
+ }
+ }
+ }
+
+ public void windowOpened(WindowEvent e)
+ {
+ }
+
+ public void windowClosing(WindowEvent e)
+ {
+ if(frame!=null && e.getComponent().equals(frame))
+ {
+ if(frame!=null) frame.dispose();
+ cvsLogo.cvsDispose();
+ cvsOlympic.cvsDispose();
+ cvsWave.cvsDispose();
+ cvsStar.cvsDispose();
+ System.exit(0);
+ }
+ }
+
+ public void windowClosed(WindowEvent e)
+ {
+ }
+
+ public void windowIconified(WindowEvent e)
+ {
+ }
+
+ public void windowDeiconified(WindowEvent e)
+ {
+ }
+
+ public void windowActivated(WindowEvent e)
+ {
+ }
+
+ public void windowDeactivated(WindowEvent e)
+ {
+ }
+
+ public void actionPerformed(ActionEvent event)
+ {
+ Object source = event.getSource();
+
+ if ( source == TextFpsWave )
+ {
+ try {
+ double FramesPerSec=
+ Double.valueOf(TextFpsWave.getText()).doubleValue();
+ if(cvsWave!=null)
+ {
+ cvsWave.setAnimateFps(FramesPerSec);
+ cvsWave.setSuspended(false, true);
+ }
+ } catch (NumberFormatException s) {
+ System.out.println("wrong fps format, use float ..");
+ }
+
+ }
+ if ( source == TextFpsOlymp )
+ {
+ try {
+ double FramesPerSec=
+ Double.valueOf(TextFpsOlymp.getText()).doubleValue();
+ if(cvsOlympic!=null)
+ {
+ cvsOlympic.setAnimateFps(FramesPerSec);
+ cvsOlympic.setSuspended(false, true);
+ }
+ } catch (NumberFormatException s) {
+ System.out.println("wrong fps format, use float ..");
+ }
+
+ }
+ if ( source == TextFpsLogo )
+ {
+ try {
+ double FramesPerSec=
+ Double.valueOf(TextFpsLogo.getText()).doubleValue();
+ if(cvsLogo!=null)
+ {
+ cvsLogo.setAnimateFps(FramesPerSec);
+ cvsLogo.setSuspended(false, true);
+ }
+ } catch (NumberFormatException s) {
+ System.out.println("wrong fps format, use float ..");
+ }
+
+ }
+ if ( source == TextFpsStar )
+ {
+ try {
+ double FramesPerSec=
+ Double.valueOf(TextFpsStar.getText()).doubleValue();
+ if(cvsLogo!=null)
+ {
+ cvsStar.setAnimateFps(FramesPerSec);
+ cvsStar.setSuspended(false, true);
+ }
+ } catch (NumberFormatException s) {
+ System.out.println("wrong fps format, use float ..");
+ }
+
+ }
+ }
+
+}