summaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/javax/media/opengl
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2010-06-17 00:14:11 +0200
committerMichael Bien <[email protected]>2010-06-17 00:14:11 +0200
commit33a24c85dd18d851b614359bb6b19535afd56d33 (patch)
treee943d0d45d28e41633d7279c41e03d81fd94a009 /src/jogl/classes/javax/media/opengl
parenteca1abf29ac48dd18c2d40f44c2396ce160df6f2 (diff)
Provide a classloader for all reflection driven classloading ops.
- attempt to solve some issues in module systems - all classes are now loaded with the same classloader which loads GLProfile
Diffstat (limited to 'src/jogl/classes/javax/media/opengl')
-rw-r--r--src/jogl/classes/javax/media/opengl/GLDrawableFactory.java7
-rw-r--r--src/jogl/classes/javax/media/opengl/GLProfile.java10
2 files changed, 10 insertions, 7 deletions
diff --git a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
index 81c7d4b4a..86e3def38 100644
--- a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
+++ b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java
@@ -99,13 +99,14 @@ public abstract class GLDrawableFactory {
GLDrawableFactory tmp = null;
String factoryClassName = Debug.getProperty("jogl.gldrawablefactory.class.name", true, AccessController.getContext());
+ ClassLoader cl = GLDrawableFactory.class.getClassLoader();
if (null == factoryClassName) {
if ( nativeOSType.equals(NativeWindowFactory.TYPE_X11) ) {
factoryClassName = "com.jogamp.opengl.impl.x11.glx.X11GLXDrawableFactory";
} else if ( nativeOSType.equals(NativeWindowFactory.TYPE_WINDOWS) ) {
factoryClassName = "com.jogamp.opengl.impl.windows.wgl.WindowsWGLDrawableFactory";
} else if ( nativeOSType.equals(NativeWindowFactory.TYPE_MACOSX) ) {
- if(ReflectionUtil.isClassAvailable(macosxFactoryClassNameAWTCGL)) {
+ if(ReflectionUtil.isClassAvailable(macosxFactoryClassNameAWTCGL, cl)) {
factoryClassName = macosxFactoryClassNameAWTCGL;
} else {
factoryClassName = macosxFactoryClassNameCGL;
@@ -122,7 +123,7 @@ public abstract class GLDrawableFactory {
System.err.println("GLDrawableFactory.static - Native OS Factory for: "+nativeOSType+": "+factoryClassName);
}
try {
- tmp = (GLDrawableFactory) ReflectionUtil.createInstance(factoryClassName);
+ tmp = (GLDrawableFactory) ReflectionUtil.createInstance(factoryClassName, cl);
} catch (JogampRuntimeException jre) {
if (GLProfile.DEBUG) {
System.err.println("GLDrawableFactory.static - Native Platform: "+nativeOSType+" - not available: "+factoryClassName);
@@ -134,7 +135,7 @@ public abstract class GLDrawableFactory {
tmp = null;
try {
- tmp = (GLDrawableFactory) ReflectionUtil.createInstance("com.jogamp.opengl.impl.egl.EGLDrawableFactory");
+ tmp = (GLDrawableFactory) ReflectionUtil.createInstance("com.jogamp.opengl.impl.egl.EGLDrawableFactory", cl);
} catch (JogampRuntimeException jre) {
if (GLProfile.DEBUG) {
System.err.println("GLDrawableFactory.static - EGLDrawableFactory - not available");
diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java
index 21d32e16a..3b40dbe69 100644
--- a/src/jogl/classes/javax/media/opengl/GLProfile.java
+++ b/src/jogl/classes/javax/media/opengl/GLProfile.java
@@ -854,16 +854,18 @@ public class GLProfile {
NativeWindowFactory.initSingleton();
+ ClassLoader classloader = GLProfile.class.getClassLoader();
+
isAWTAvailable = NativeWindowFactory.isAWTAvailable() &&
- ReflectionUtil.isClassAvailable("javax.media.opengl.awt.GLCanvas") ; // JOGL
+ ReflectionUtil.isClassAvailable("javax.media.opengl.awt.GLCanvas", classloader) ; // JOGL
- hasGL234Impl = ReflectionUtil.isClassAvailable("com.jogamp.opengl.impl.gl4.GL4bcImpl");
+ hasGL234Impl = ReflectionUtil.isClassAvailable("com.jogamp.opengl.impl.gl4.GL4bcImpl", classloader);
hasGL4bcImpl = hasGL234Impl;
hasGL4Impl = hasGL234Impl;
hasGL3bcImpl = hasGL234Impl;
hasGL3Impl = hasGL234Impl;
hasGL2Impl = hasGL234Impl;
- hasGL2ES12Impl = ReflectionUtil.isClassAvailable("com.jogamp.opengl.impl.gl2es12.GL2ES12Impl");
+ hasGL2ES12Impl = ReflectionUtil.isClassAvailable("com.jogamp.opengl.impl.gl2es12.GL2ES12Impl", classloader);
mappedProfiles = computeProfileMap();
boolean hasDesktopGL = false;
@@ -929,7 +931,7 @@ public class GLProfile {
hasGL2ES12Impl = hasGL2ES12Impl && GLContext.isGL2Available();
}
- if ( ReflectionUtil.isClassAvailable("com.jogamp.opengl.impl.egl.EGLDrawableFactory") ) {
+ if ( ReflectionUtil.isClassAvailable("com.jogamp.opengl.impl.egl.EGLDrawableFactory", classloader) ) {
t=null;
try {
GLDrawableFactoryImpl factory = (GLDrawableFactoryImpl) GLDrawableFactory.getFactoryImpl(GLES2);