29package com.jogamp.opengl.test.junit.newt.parenting;
31import org.junit.Assert;
32import org.junit.BeforeClass;
34import org.junit.FixMethodOrder;
35import org.junit.runners.MethodSorters;
37import java.awt.Button;
38import java.awt.BorderLayout;
39import java.awt.Container;
42import com.jogamp.opengl.*;
43import javax.swing.SwingUtilities;
45import com.jogamp.newt.*;
46import com.jogamp.newt.opengl.*;
47import com.jogamp.newt.awt.NewtCanvasAWT;
49import java.io.IOException;
50import java.lang.reflect.InvocationTargetException;
52import com.jogamp.opengl.test.junit.util.*;
53import com.jogamp.opengl.test.junit.jogl.demos.es2.RedSquareES2;
55@FixMethodOrder(MethodSorters.NAME_ASCENDING)
57 static int width, height;
58 static long durationPerTest = 800;
73 Assert.assertNotNull(glWindow1);
74 Assert.assertEquals(
false, glWindow1.
isVisible());
77 glWindow1.
setTitle(
"testWindowParenting01CreateVisibleDestroy");
79 setDemoFields(demo1, glWindow1,
false);
83 Assert.assertNotNull(newtCanvasAWT);
84 Assert.assertEquals(
false, glWindow1.
isVisible());
88 final Frame frame1 =
new Frame(
"AWT Parent Frame");
89 frame1.setLayout(
new BorderLayout());
90 frame1.add(
new Button(
"North"), BorderLayout.NORTH);
91 frame1.add(
new Button(
"South"), BorderLayout.SOUTH);
92 frame1.add(
new Button(
"East"), BorderLayout.EAST);
93 frame1.add(
new Button(
"West"), BorderLayout.WEST);
95 final Container container1 =
new Container();
96 container1.setLayout(
new BorderLayout());
97 container1.add(
new Button(
"north"), BorderLayout.NORTH);
98 container1.add(
new Button(
"south"), BorderLayout.SOUTH);
99 container1.add(
new Button(
"east"), BorderLayout.EAST);
100 container1.add(
new Button(
"west"), BorderLayout.WEST);
101 container1.add(newtCanvasAWT, BorderLayout.CENTER);
103 frame1.add(container1, BorderLayout.CENTER);
106 SwingUtilities.invokeAndWait(
new Runnable() {
108 frame1.setSize(width, height);
109 frame1.setVisible(
true);
114 for(i=0; i*100<durationPerTest; i++) {
118 SwingUtilities.invokeAndWait(
new Runnable() {
120 frame1.setVisible(
false);
125 SwingUtilities.invokeAndWait(
new Runnable() {
127 frame1.setVisible(
true);
134 SwingUtilities.invokeAndWait(
new Runnable() {
136 frame1.remove(newtCanvasAWT);
144 SwingUtilities.invokeAndWait(
new Runnable() {
161 setDemoFields(demo1, glWindow1,
false);
166 final Frame frame1 =
new Frame(
"AWT Parent Frame");
167 frame1.setLayout(
new BorderLayout());
168 frame1.add(
new Button(
"North"), BorderLayout.NORTH);
169 frame1.add(
new Button(
"South"), BorderLayout.SOUTH);
170 frame1.add(
new Button(
"East"), BorderLayout.EAST);
171 frame1.add(
new Button(
"West"), BorderLayout.WEST);
172 SwingUtilities.invokeAndWait(
new Runnable() {
174 frame1.setSize(width, height);
175 frame1.setLocation(0, 0);
176 frame1.setVisible(
true);
180 final Frame frame2 =
new Frame(
"AWT Parent Frame");
181 frame2.setLayout(
new BorderLayout());
182 frame2.add(
new Button(
"North"), BorderLayout.NORTH);
183 frame2.add(
new Button(
"South"), BorderLayout.SOUTH);
184 frame2.add(
new Button(
"East"), BorderLayout.EAST);
185 frame2.add(
new Button(
"West"), BorderLayout.WEST);
186 SwingUtilities.invokeAndWait(
new Runnable() {
188 frame2.setSize(width, height);
189 frame2.setLocation(640, 480);
190 frame2.setVisible(
true);
194 SwingUtilities.invokeAndWait(
new Runnable() {
196 frame1.add(newtCanvasAWT, BorderLayout.CENTER);
203 for(state=0; state<3; state++) {
204 Thread.sleep(durationPerTest);
207 SwingUtilities.invokeAndWait(
new Runnable() {
209 frame1.remove(newtCanvasAWT);
210 frame2.add(newtCanvasAWT, BorderLayout.CENTER);
217 SwingUtilities.invokeAndWait(
new Runnable() {
219 frame2.remove(newtCanvasAWT);
220 frame1.add(newtCanvasAWT, BorderLayout.CENTER);
229 SwingUtilities.invokeAndWait(
new Runnable() {
238 Assert.assertNotNull(demo);
239 Assert.assertNotNull(glWindow);
250 static int atoi(
final String a) {
253 i = Integer.parseInt(a);
254 }
catch (
final Exception ex) { ex.printStackTrace(); }
258 public static void main(
final String args[])
throws IOException {
259 for(
int i=0; i<args.length; i++) {
260 if(args[i].equals(
"-time")) {
261 durationPerTest = atoi(args[++i]);
265 org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.
main(
new String[] {
269 "haltOnFailure=false",
271 "outputtoformatters=true",
272 "logfailedtests=true",
273 "logtestlistenerevents=true",
274 "formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter",
275 "formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,TEST-"+tstname+
".xml" } );
AWT Canvas containing a NEWT Window using native parenting.
NativeWindow getNativeWindow()
Returns the associated NativeWindow of this NativeWindowHolder, which is identical to getNativeSurfac...
An implementation of GLAutoDrawable and Window interface, using a delegated Window instance,...
final NativeWindow getParent()
final boolean isNativeValid()
final void setTitle(final String title)
final boolean isVisible()
final CapabilitiesImmutable getChosenCapabilities()
Gets an immutable set of chosen capabilities.
final void setUndecorated(final boolean value)
final void destroy()
Destroys all resources associated with this GLAutoDrawable, inclusive the GLContext.
final Window getDelegatedWindow()
If the implementation uses delegation, return the delegated Window instance, otherwise return this in...
static GLWindow create(final GLCapabilitiesImmutable caps)
Creates a new GLWindow attaching a new Window referencing a new default Screen and default Display wi...
Specifies a set of OpenGL capabilities.
static void setDemoFields(final GLEventListener demo, final GLWindow glWindow, final boolean debug)
static void main(final String args[])
void test02AWTWinHopFrame2Frame()
void test01CreateVisibleDestroy1()
static boolean setFieldIfExists(final Object instance, final String fieldName, final Object value)
boolean isOnscreen()
Returns whether an on- or offscreen surface is requested, available or chosen.
Specifying NEWT's Window functionality:
void addGLEventListener(GLEventListener listener)
Adds the given listener to the end of this drawable queue.
Declares events which client code can use to manage OpenGL rendering into a GLAutoDrawable.