<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>JOGL NEWT JNLP Applet Runner - GearsES2 - normal</title> </head> <body BGCOLOR="#ffffff"> <p> In case your <a href="https://jdk6.dev.java.net/plugin2/jnlp/">Java Plugin supports JNLP</a>, the <em>applet-gears.jnlp</em> is used, otherwise it shall fallback to <a href="http://jogamp.org/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NApplets">NApplets</a>. </p> <p> Note that it is important for the startup time to have the same JVM arguments in the applet tags, as well as within the JNLP applet description. <br> Only if JVM arguments of the JNLP applet description are satisfied by the applet tag's JVM,<br> the plugin will not need to start a new JVM. OF course, the applet tag's JVM spec may exceed the JNLP applet's one. </p> <p> JOGL NEWT JNLP Applet Runner Special Keys:<br> <ul> <li> d - toggle decoration </li> <li> f - toggle fullscreen </li> <li> r - in/out browser window </li> <li> a - on/off always-on-top </li> <li> c - change mouse pointer </li> <li> i - invisible mouse pointer </li> <li> w - warp mouse pointer to center </li> </ul> </p> <p> <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200"> <param name="code" value="com.jogamp.newt.awt.applet.JOGLNewtApplet1Run"> <param name="archive" value="jar/gluegen-rt.jar, jar/jogl-all.jar, jar/jogl-test.jar"> <param name="gl_event_listener_class" value="com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2"> <param name="gl_profile" value="GL2ES2"> <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-applet-runner-newt.jnlp"> <comment> <embed code="com.jogamp.newt.awt.applet.JOGLNewtApplet1Run" width="200" height="200" type="application/x-java-applet;version=1.6" pluginspage="http://java.sun.com/javase/downloads/ea.jsp" archive="jar/gluegen-rt.jar, jar/jogl-all.jar, jar/jogl-test.jar" gl_event_listener_class="com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2" gl_profile="GL2ES2" gl_swap_interval="1" gl_debug="false" gl_trace="false" jnlp_href="jogl-applet-runner-newt.jnlp"> <noembed>Sorry, no Java support detected.</noembed> </embed> </comment> </object> </p> <p> The applet above is instantiated with the following code: <pre> <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200"> <param name="code" value="com.jogamp.newt.awt.applet.JOGLNewtApplet1Run"> <param name="archive" value="jar/gluegen-rt.jar, jar/jogl-all.jar, jar/jogl-test.jar"> <param name="gl_event_listener_class" value="com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2"> <param name="gl_profile" value="GL2ES2"> <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-applet-runner-newt.jnlp"> <comment> <embed code="com.jogamp.newt.awt.applet.JOGLNewtApplet1Run" width="200" height="200" type="application/x-java-applet;version=1.6" pluginspage="http://java.sun.com/javase/downloads/ea.jsp" archive="jar/gluegen-rt.jar, jar/jogl-all.jar, jar/jogl-test.jar" gl_event_listener_class="com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2" gl_profile="GL2ES2" gl_swap_interval="1" gl_debug="false" gl_trace="false" jnlp_href="jogl-applet-runner-newt.jnlp"> <noembed>Sorry, no Java support detected.</noembed> </embed> </comment> </object> </pre> Where the referenced JNLP file <em>jogl-applet-runner-newt.jnlp</em> looks as follow: <pre> <?xml version="1.0" encoding="utf-8"?> <jnlp codebase="http://jogamp.org/deployment/jogamp-current" href="jogl-applet-runner-newt.jnlp" version="v2.0-rc3"> <information> <title>JOGL JNLP Applet Runner NEWT</title> <vendor>JogAmp Community</vendor> <homepage href="http://jogamp.org/"/> <description>JOGL JNLP Applet Runner NEWT</description> <offline-allowed/> </information> <update check="background" policy="always"/> <resources> <j2se href="http://java.sun.com/products/autodl/j2se" version="1.4+"/> <jar href="jar/jogl-test.jar" main="true"/> <extension name="jogl-all-awt" href="http://jogamp.org/deployment/jogamp-current/jogl-all-awt.jnlp" /> </resources> <applet-desc name="JOGLNewtApplet1Run-Applet" main-class="com.jogamp.newt.awt.applet.JOGLNewtApplet1Run" width="200" height="200"> </applet-desc> </jnlp> </pre> </p> <p> <del> Note that the jogl-test.jar, which contains the GearsES2 class, <B>does not need to be signed</B>! JogAmp Community signs jogl-all.jar and gluegen-rt.jar, which contain the JOGL's supporting classes; this is the only Java code which needs to be signed in order to deploy applets using JOGL and is the only certificate the end user must accept. </del><br/> Sadly, due to Oracle's Java Applet Plugin update 7u51, unsigned applets are no more allowed and effectively lower the bar to create user applets with raised privileges.<br/> Hence JogAmp Community <b>signs</b> jogl-all.jar and gluegen-rt.jar, which contain the JOGL's supporting classes as well as jogl-test.jar, which contains the users implementing Applet class.<br/> jogl-test.jar's manifest file uses <i>Permissions: sandbox</i> to <b>not raise privileges</b>. </p> </body> </html>