aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-09-29 16:47:21 -0700
committerSven Gothel <[email protected]>2012-09-29 16:47:21 -0700
commit20a2a4f27c9d7c029a86a96fa44c7e77d2d7db6b (patch)
tree67a032cec7fd0c16ad6ec898c491152708196a1d
parent43891be36e8485353ac74f329fd2f7438303a846 (diff)
parent8351d513730009316b81149414ea87f3c631f9a2 (diff)
Merge pull request #52 from xranby/bcm.vc.iv-autodetect
_getNativeWindowingType() TYPE_BCM_VC_IV autodetection.
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
index 4f4bb629b..ddacc2859 100644
--- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
+++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java
@@ -33,6 +33,7 @@
package javax.media.nativewindow;
+import java.io.File;
import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -65,6 +66,9 @@ public abstract class NativeWindowFactory {
/** X11 type, as retrieved with {@link #getNativeWindowType(boolean)}. String is canonical via {@link String#intern()}. */
public static final String TYPE_X11 = ".x11".intern();
+ /** Broadcom VC IV/EGL type, as retrieved with {@link #getNativeWindowType(boolean)}. String is canonical via {@link String#intern()}. */
+ public static final String TYPE_BCM_VC_IV = ".bcm.vc.iv".intern();
+
/** Android/EGL type, as retrieved with {@link #getNativeWindowType(boolean)}. String is canonical via {@link String#intern()}.*/
public static final String TYPE_ANDROID = ".android".intern();
@@ -102,6 +106,19 @@ public abstract class NativeWindowFactory {
protected NativeWindowFactory() {
}
+ private static final boolean guessBroadcomVCIV() {
+ return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+ private final File vcliblocation = new File(
+ "/opt/vc/lib/libbcm_host.so");
+ public Boolean run() {
+ if ( vcliblocation.isFile() ) {
+ return new Boolean(true);
+ }
+ return new Boolean(false);
+ }
+ } ).booleanValue();
+ }
+
private static String _getNativeWindowingType() {
switch(Platform.OS_TYPE) {
case ANDROID:
@@ -118,6 +135,9 @@ public abstract class NativeWindowFactory {
case SUNOS:
case HPUX:
default:
+ if( guessBroadcomVCIV() ) {
+ return TYPE_BCM_VC_IV;
+ }
return TYPE_X11;
}
}