diff options
author | Morris Meyer <[email protected]> | 2009-07-28 17:34:20 -0400 |
---|---|---|
committer | Morris Meyer <[email protected]> | 2009-07-28 17:39:14 -0400 |
commit | b6d75cac68340878b20d35b23c8449c97ad9d819 (patch) | |
tree | 2cbd05b91739249458ea5f4e18556601ac2b9c2a | |
parent | d73af059e836943fa37b9f7aab93154f530763d9 (diff) |
EGL changes for device
9 files changed, 55 insertions, 13 deletions
diff --git a/make/build-newt.xml b/make/build-newt.xml index 48c11f6dd..1ed039a57 100644 --- a/make/build-newt.xml +++ b/make/build-newt.xml @@ -371,6 +371,7 @@ <linker id="linker.cfg.linux.newt.broadcom_egl" extends="linker.cfg.linux"> <syslibset dir="/nfsroot/lg/lib" libs="EglUtil"/> + <syslibset dir="/nfsroot/lg/lib" libs="nexus"/> </linker> <linker id="linker.cfg.linux.newt.x11" extends="linker.cfg.linux"> diff --git a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java index c381f68f5..e71cf33a0 100644 --- a/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java +++ b/src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java @@ -52,7 +52,24 @@ public abstract class GLDrawableImpl implements GLDrawable { this.factory = factory; this.component = comp; this.realized = realized; - this.requestedCapabilities = (GLCapabilities)component.getGraphicsConfiguration().getNativeGraphicsConfiguration().getRequestedCapabilities(); // a copy .. + + AbstractGraphicsConfiguration agc = component.getGraphicsConfiguration(); + if (agc == null) { + System.out.println("GLDrawableImpl no AbstractGraphicsConfiguration"); + System.out.println(component.getClass().getName()); + return; + } + AbstractGraphicsConfiguration ngc = agc.getNativeGraphicsConfiguration(); + if (ngc == null) { + System.out.println("GLDrawableImpl no native AbstractGraphicsConfiguration"); + return; + } + Capabilities caps = ngc.getRequestedCapabilities(); + if (caps == null) { + System.out.println("GLDrawableImpl no native Capabilities"); + return; + } + this.requestedCapabilities = (GLCapabilities)caps; // a copy .. } /** diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java index 396580c1d..e2ee65d27 100755 --- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java +++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java @@ -45,15 +45,19 @@ import com.sun.gluegen.runtime.NativeLibrary; public class EGLDrawableFactory extends GLDrawableFactoryImpl { static { + try { // Register our GraphicsConfigurationFactory implementations // The act of constructing them causes them to be registered new EGLGraphicsConfigurationFactory(); // Check for other underlying stuff .. - if(NativeWindowFactory.TYPE_X11.equals(NativeWindowFactory.getNativeWindowType(false))) { + /* if(NativeWindowFactory.TYPE_X11.equals(NativeWindowFactory.getNativeWindowType(false))) { try { NWReflection.createInstance("com.sun.opengl.impl.x11.glx.X11GLXGraphicsConfigurationFactory"); } catch (Throwable t) {} + } */ + } catch (Throwable th) { + th.printStackTrace(); } } diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java index 8bed0eb35..99f163ca1 100755 --- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java +++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java @@ -50,7 +50,7 @@ import com.sun.gluegen.runtime.DynamicLookupHelper; * Currently two implementations exist, one for ES1 and one for ES2. */ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper { - protected static final boolean DEBUG = com.sun.opengl.impl.Debug.debug("EGL"); + protected static final boolean DEBUG = true; /* com.sun.opengl.impl.Debug.debug("EGL"); */ private static final EGLDynamicLookupHelper eglES1DynamicLookupHelper; private static final EGLDynamicLookupHelper eglES2DynamicLookupHelper; @@ -136,9 +136,13 @@ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper { private NativeLibrary loadFirstAvailable(List/*<String>*/ libNames, ClassLoader loader) { for (Iterator iter = libNames.iterator(); iter.hasNext(); ) { - NativeLibrary lib = NativeLibrary.open((String) iter.next(), loader, false /*global*/); + String libname = (String) iter.next(); + NativeLibrary lib = NativeLibrary.open(libname, loader, false /*global*/); if (lib != null) { + System.out.println("found: " + libname); return lib; + } else { + System.out.println("looked for: " + libname); } } return null; @@ -164,9 +168,11 @@ public abstract class EGLDynamicLookupHelper implements DynamicLookupHelper { // EGL libraries .. lib = loadFirstAvailable(eglLibNames, loader); if (lib == null) { - throw new GLException("Unable to dynamically load EGL library for profile ES" + esProfile); + // throw new GLException("Unable to dynamically load EGL library for profile ES" + esProfile); + System.out.println("Unable to dynamically load EGL library for profile ES" + esProfile); + } else { + glesLibraries.add(lib); } - glesLibraries.add(lib); } if (esProfile==2) { diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java index 7e60e25c0..68630344a 100755 --- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java +++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java @@ -58,6 +58,8 @@ public class EGLES1DynamicLookupHelper extends EGLDynamicLookupHelper { protected List/*<String>*/ getGLESLibNames() { List/*<String>*/ glesLibNames = new ArrayList(); + glesLibNames.add("nexus"); + glesLibNames.add("GLES_CM"); glesLibNames.add("GLES_CL"); glesLibNames.add("GLESv1_CM"); diff --git a/src/jogl/classes/javax/media/opengl/GLProfile.java b/src/jogl/classes/javax/media/opengl/GLProfile.java index ead5f6396..83a9b0098 100644 --- a/src/jogl/classes/javax/media/opengl/GLProfile.java +++ b/src/jogl/classes/javax/media/opengl/GLProfile.java @@ -54,7 +54,7 @@ import com.sun.nativewindow.impl.jvm.JVMUtil; * or more specialized versions using the other static GetProfile methods. */ public class GLProfile implements Cloneable { - public static final boolean DEBUG = Debug.debug("GLProfile"); + public static final boolean DEBUG = true; /* Debug.debug("GLProfile"); */ // // Public (user-visible) profiles @@ -736,8 +736,8 @@ public class GLProfile implements Cloneable { } } mappedProfiles = _mappedProfiles; // final .. - if(null==defaultGLProfile) { - throw new GLException("No profile available: "+list2String(GL_PROFILE_LIST_ALL)); + if (null==defaultGLProfile) { + System.out.println("No profile available: "+list2String(GL_PROFILE_LIST_ALL)); } } diff --git a/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java b/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java index b13cf4317..d054c205b 100644 --- a/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java +++ b/src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java @@ -40,7 +40,7 @@ import java.lang.reflect.*; import javax.media.nativewindow.*; public final class NWReflection { - public static final boolean DEBUG = Debug.debug("NWReflection"); + public static final boolean DEBUG = true; /* Debug.debug("NWReflection"); */ public static final boolean isClassAvailable(String clazzName) { try { @@ -69,7 +69,11 @@ public final class NWReflection { try { factory = factoryClass.getDeclaredConstructor( cstrArgTypes ); } catch(NoSuchMethodException nsme) { - throw new NativeWindowException("Constructor: '" + clazzName + "("+cstrArgTypes+")' not found"); + nsme.printStackTrace(); + throw new NativeWindowException("Constructor: '" + clazzName + "("+cstrArgTypes+")' not found"); + } catch (Throwable th) { + th.printStackTrace(); + throw new NativeWindowException(th); } return factory; } catch (Throwable e) { @@ -91,6 +95,9 @@ public final class NWReflection { factory = getConstructor(clazzName, cstrArgTypes); return factory.newInstance( cstrArgs ) ; } catch (Exception e) { + if (DEBUG) { + e.printStackTrace(); + } throw new NativeWindowException(e); } } diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java index cbd485649..d4684c783 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java +++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java @@ -48,6 +48,9 @@ import com.sun.nativewindow.impl.jvm.JVMUtil; public abstract class NativeWindowFactory { protected static final boolean DEBUG = Debug.debug("NativeWindow"); + /** Broadcom EGL type */ + public static final String TYPE_BROADCOM_EGL = "BroadcomEGL"; + /** OpenKODE/EGL type */ public static final String TYPE_EGL = "EGL"; @@ -82,6 +85,8 @@ public abstract class NativeWindowFactory { private static String _getNativeWindowingType(String osNameLowerCase) { if (osNameLowerCase.startsWith("kd")) { return TYPE_EGL; + } else if (osNameLowerCase.startsWith(TYPE_BROADCOM_EGL.toLowerCase())) { + return TYPE_BROADCOM_EGL; } else if (osNameLowerCase.startsWith("wind")) { return TYPE_WINDOWS; } else if (osNameLowerCase.startsWith("mac os x") || diff --git a/src/newt/native/BroadcomEGL.c b/src/newt/native/BroadcomEGL.c index 8afa71a47..55ca5f155 100755 --- a/src/newt/native/BroadcomEGL.c +++ b/src/newt/native/BroadcomEGL.c @@ -85,7 +85,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLDisplay_Cr { (void) env; (void) obj; - EGLDisplay dpy = EGLUtil_CreateDisplay( (GLuint) width, (GLuint) height ); + EGLDisplay dpy = EGLUtil_CreateDisplayByNative( (GLuint) width, (GLuint) height ); if(NULL==dpy) { fprintf(stderr, "[CreateDisplay] failed: NULL\n"); } else { @@ -131,7 +131,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_javafx_newt_opengl_broadcom_BCEGLWindow_Cre return 0; } - window = EGLUtil_CreateWindow( dpy, chromaKey, &uiWidth, &uiHeight ); + window = EGLUtil_CreateWindowByNative( dpy, chromaKey, &uiWidth, &uiHeight ); // EGLUtil_DestroyWindow( dpy, window ); if(NULL==window) { |