Bug 1530 : fix OpenGL detection in sketches so that proper version of export template is used
Last modified: 2010-04-03 09:25




Status:
RESOLVED
Resolution:
FIXED -
Priority:
P2
Severity:
normal

 

Reporter:
ac
Assigned To:
fry

Attachment Type Created Size Actions
dummy opengl library to illustrate the problem application/octet-stream 2010-04-02 00:50 295.85 KB

Description:   Opened: 2010-04-02 00:47
Libraries that extend the OPENGL renderer (PGraphicsOpenGL) fail to be
properly loaded in an exported applet.

The situation is exemplified with the following applet:
http://users.design.ucla.edu/~acolubri/test/applet/

exported from this sketch:

[code]
import processing.opengl.*;
import dummy.*;

void setup() {
size(400, 400, "dummy.GLDummy");
}

void draw() {
background(0);
}/
[/code]

The library dummy just defines a single class, GLDummy, which extends
PGraphicsOpenGL without adding any new method or field. The sketch runs
fine from the PDE, and also as an exported application (tested only on
Linux). As a note which might be useful to find the problem: the applet
folder contains opengl.jar, but only if processing.opengl is explicitly
imported by the sketch, otherwise opengl.jar will be missing.

A trace from the Java console when trying to run the applet in firefox
(3.5.6/Linux, 3.6.2/Windows) gives the following error:

xception in thread "Animation Thread" java.lang.NoClassDefFoundError:
javax/media/opengl/glu/GLUtessellatorCallback
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getConstructor(Class.java:1657)
at processing.core.PApplet.makeGraphics(Unknown Source)
at processing.core.PApplet.size(Unknown Source)
at processing.core.PApplet.size(Unknown Source)
at OpenGLlibTest.setup(OpenGLlibTest.java:27)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException:
javax.media.opengl.glu.GLUtessellatorCallback
at
sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:117)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 11 more
Additional Comment #1 From ac 2010-04-02 00:50
edit]
dummy opengl library to illustrate the problem

This is just the Eclipse project of the dummy library described in the main
text of the bug report.
Additional Comment #2 From fry 2010-04-03 09:25
fixed for 0184.