com.jogamp.newt.util.applet3.JOGLNewtApplet3Run Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jogl-all-android Show documentation
Show all versions of jogl-all-android Show documentation
Java™ Binding for the OpenGL® API (Android)
The newest version!
/**
* Copyright 2011 JogAmp Community. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
package com.jogamp.newt.util.applet3;
import java.util.Locale;
import com.jogamp.plugin.applet.Applet3;
import com.jogamp.plugin.applet.Applet3Context;
import com.jogamp.plugin.ui.NativeWindowDownstream;
import com.jogamp.plugin.ui.NativeWindowUpstream;
import com.jogamp.nativewindow.AbstractGraphicsDevice;
import com.jogamp.nativewindow.AbstractGraphicsScreen;
import com.jogamp.nativewindow.NativeWindow;
import com.jogamp.nativewindow.NativeWindowFactory;
import com.jogamp.nativewindow.WindowClosingProtocol.WindowClosingMode;
import com.jogamp.nativewindow.util.PointImmutable;
import com.jogamp.opengl.FPSCounter;
import com.jogamp.opengl.GLCapabilities;
import com.jogamp.opengl.GLProfile;
import com.jogamp.nativewindow.UpstreamWindowHookMutableSizePos;
import com.jogamp.newt.NewtFactory;
import com.jogamp.newt.Window;
import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.newt.util.applet.JOGLNewtAppletBase;
/**
* Simple GLEventListener deployment as an applet using JOGL. This demo must be
* referenced from a web page via an <applet> tag.
*
*
* Example of an applet tag using GearsES2 within the applet area (normal case):
*
<applet width=100 height=100>
<param name="java_arguments" value="-Dsun.java2d.noddraw=true">
<param name="gl_event_listener_class" value="com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2">
<param name="gl_profile" value="GL2">
<param name="gl_swap_interval" value="1">
<param name="gl_debug" value="false">
<param name="gl_trace" value="false">
<param name="jnlp_href" value="jogl-newt-applet-runner.jnlp">
</applet>Hello Gears !
*
*
*
*
* Example of an applet tag using GearsES2 in an undecorated, translucent, closeable and always-on-top window:
*
<applet width=1 height=1>
<param name="java_arguments" value="-Dsun.java2d.noddraw=true">
<param name="gl_event_listener_class" value="com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2">
<param name="gl_profile" value="GL2">
<param name="gl_swap_interval" value="1">
<param name="gl_undecorated" value="true">
<param name="gl_alwaysontop" value="true">
<param name="gl_closeable" value="true">
<param name="gl_alpha" value="1">
<param name="gl_multisamplebuffer" value="0">
<param name="gl_opaque" value="false">
<param name="gl_dx" value="10">
<param name="gl_dy" value="0">
<param name="gl_width" value="100">
<param name="gl_height" value="100">
<param name="gl_nodefaultkeyListener" value="true">
<param name="gl_debug" value="false">
<param name="gl_trace" value="false">
<param name="jnlp_href" value="jogl-newt-applet-runner.jnlp">
</applet>Hello Gears !
*
*
*/
public class JOGLNewtApplet3Run implements Applet3 {
public static final boolean DEBUG = JOGLNewtAppletBase.DEBUG;
GLWindow glWindow = null;
JOGLNewtAppletBase base = null;
/** if valid glStandalone:=true (own window) ! */
int glXd=Integer.MAX_VALUE, glYd=Integer.MAX_VALUE, glWidth=Integer.MAX_VALUE, glHeight=Integer.MAX_VALUE;
Applet3Context ctx;
boolean glStandalone = false;
UpstreamWindowHookMutableSizePos upstreamSizePosHook;
PointImmutable upstreamLocOnScreen;
NativeWindow browserWin;
final String getParameter(final String name) {
return ctx.getParameter(name);
}
@Override
public NativeWindowDownstream createNativeWindow(final Applet3Context ctx, final NativeWindowUpstream upstreamWin) {
this.ctx = ctx;
String glProfileName=null;
boolean glOpaque=true;
int glAlphaBits=0;
int glNumMultisampleBuffer=0;
boolean glUndecorated=false;
boolean glAlwaysOnTop=false;
try {
glProfileName = getParameter("gl_profile");
glOpaque = JOGLNewtAppletBase.str2Bool(getParameter("gl_opaque"), glOpaque);
glAlphaBits = JOGLNewtAppletBase.str2Int(getParameter("gl_alpha"), glAlphaBits);
glNumMultisampleBuffer = JOGLNewtAppletBase.str2Int(getParameter("gl_multisamplebuffer"), glNumMultisampleBuffer);
glXd = JOGLNewtAppletBase.str2Int(getParameter("gl_dx"), glXd);
glYd = JOGLNewtAppletBase.str2Int(getParameter("gl_dy"), glYd);
glWidth = JOGLNewtAppletBase.str2Int(getParameter("gl_width"), glWidth);
glHeight = JOGLNewtAppletBase.str2Int(getParameter("gl_height"), glHeight);
glUndecorated = JOGLNewtAppletBase.str2Bool(getParameter("gl_undecorated"), glUndecorated);
glAlwaysOnTop = JOGLNewtAppletBase.str2Bool(getParameter("gl_alwaysontop"), glAlwaysOnTop);
} catch (final Exception e) {
e.printStackTrace();
}
glStandalone = Integer.MAX_VALUE>glXd && Integer.MAX_VALUE>glYd && Integer.MAX_VALUE>glWidth && Integer.MAX_VALUE>glHeight;
final GLCapabilities caps = new GLCapabilities(GLProfile.get(glProfileName));
caps.setAlphaBits(glAlphaBits);
if(0
© 2015 - 2025 Weber Informatics LLC | Privacy Policy