Jogamp
Bump scripts to jre1.8.0_66
[jogl.git] / src / test / com / jogamp / opengl / test / junit / jogl / demos / gl2 / newt / TestGearsNEWT.java
1 /**
2  * Copyright 2010 JogAmp Community. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are
5  * permitted provided that the following conditions are met:
6  *
7  *    1. Redistributions of source code must retain the above copyright notice, this list of
8  *       conditions and the following disclaimer.
9  *
10  *    2. Redistributions in binary form must reproduce the above copyright notice, this list
11  *       of conditions and the following disclaimer in the documentation and/or other materials
12  *       provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  * The views and conclusions contained in the software and documentation are those of the
25  * authors and should not be interpreted as representing official policies, either expressed
26  * or implied, of JogAmp Community.
27  */
28
29 package com.jogamp.opengl.test.junit.jogl.demos.gl2.newt;
30
31 import com.jogamp.newt.opengl.GLWindow;
32 import com.jogamp.newt.opengl.util.NEWTDemoListener;
33 import com.jogamp.opengl.test.junit.util.UITestCase;
34 import com.jogamp.opengl.test.junit.util.QuitAdapter;
35
36 import com.jogamp.opengl.util.Animator;
37
38 import com.jogamp.opengl.test.junit.jogl.demos.gl2.Gears;
39
40 import com.jogamp.opengl.GLCapabilities;
41 import com.jogamp.opengl.GLProfile;
42
43 import org.junit.Assert;
44 import org.junit.BeforeClass;
45 import org.junit.AfterClass;
46 import org.junit.Test;
47 import org.junit.FixMethodOrder;
48 import org.junit.runners.MethodSorters;
49
50 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
51 public class TestGearsNEWT extends UITestCase {
52     static GLProfile glp;
53     static int width, height;
54
55     @BeforeClass
56     public static void initClass() {
57         if(GLProfile.isAvailable(GLProfile.GL2)) {
58             glp = GLProfile.get(GLProfile.GL2);
59             Assert.assertNotNull(glp);
60             width  = 640;
61             height = 480;
62         } else {
63             setTestSupported(false);
64         }
65     }
66
67     @AfterClass
68     public static void releaseClass() {
69     }
70
71     protected void runTestGL(final GLCapabilities caps) throws InterruptedException {
72         final GLWindow glWindow = GLWindow.create(caps);
73         Assert.assertNotNull(glWindow);
74         glWindow.setTitle("Gears NEWT Test");
75
76         glWindow.addGLEventListener(new Gears());
77
78         final Animator animator = new Animator(glWindow);
79         final QuitAdapter quitAdapter = new QuitAdapter();
80
81         //glWindow.addKeyListener(new TraceKeyAdapter(quitAdapter));
82         //glWindow.addWindowListener(new TraceWindowAdapter(quitAdapter));
83         glWindow.addKeyListener(quitAdapter);
84         glWindow.addWindowListener(quitAdapter);
85
86         final NEWTDemoListener newtDemoListener = new NEWTDemoListener(glWindow);
87         glWindow.addKeyListener(newtDemoListener);
88         glWindow.addMouseListener(newtDemoListener);
89
90         glWindow.setSize(width, height);
91         glWindow.setVisible(true);
92         animator.setUpdateFPSFrames(1, null);
93         animator.start();
94
95         while(!quitAdapter.shouldQuit() && animator.isAnimating() && animator.getTotalFPSDuration()<duration) {
96             Thread.sleep(100);
97         }
98
99         animator.stop();
100         glWindow.destroy();
101     }
102
103     @Test
104     public void test01() throws InterruptedException {
105         final GLCapabilities caps = new GLCapabilities(glp);
106         runTestGL(caps);
107     }
108
109     static long duration = 500; // ms
110
111     public static void main(final String args[]) {
112         for(int i=0; i<args.length; i++) {
113             if(args[i].equals("-time")) {
114                 i++;
115                 try {
116                     duration = Integer.parseInt(args[i]);
117                 } catch (final Exception ex) { ex.printStackTrace(); }
118             }
119         }
120         org.junit.runner.JUnitCore.main(TestGearsNEWT.class.getName());
121     }
122 }
http://JogAmp.org git info: FAQ, tutorial and man pages.