modules/graphics/src/main/java/com/sun/glass/ui/monocle/NativePlatformFactory.java
Print this page
rev 6978 : RT-37065 [Monocle] Use the X11 implementation in preference to framebuffer if DISPLAY is set
@@ -38,11 +38,11 @@
private static NativePlatform platform;
public static synchronized NativePlatform getNativePlatform() {
if (platform == null) {
String platformFactoryProperty =
AccessController.doPrivileged((PrivilegedAction<String>) () -> System.getProperty("monocle.platform",
- "MX6,OMAP,Dispman,Linux,Headless"));
+ "MX6,OMAP,Dispman,X11,Linux,Headless"));
String[] platformFactories = platformFactoryProperty.split(",");
for (int i = 0; i < platformFactories.length; i++) {
String factoryName = platformFactories[i].trim();
String factoryClassName;
if (factoryName.contains(".")) {
@@ -50,19 +50,30 @@
} else {
factoryClassName = "com.sun.glass.ui.monocle."
+ factoryName.toLowerCase(Locale.ROOT)
+ "." + factoryName + "PlatformFactory";
}
+ if (MonocleSettings.settings.tracePlatformConfig) {
+ MonocleTrace.traceConfig("Trying platform %s with class %s",
+ factoryName, factoryClassName);
+ }
try {
NativePlatformFactory npf = (NativePlatformFactory)
Class.forName(factoryClassName)
.newInstance();
if (npf.matches()) {
platform = npf.createNativePlatform();
+ if (MonocleSettings.settings.tracePlatformConfig) {
+ MonocleTrace.traceConfig("Matched %s", factoryName);
+ }
return platform;
}
} catch (Exception e) {
+ if (MonocleSettings.settings.tracePlatformConfig) {
+ MonocleTrace.traceConfig("Failed to create platform %s",
+ factoryClassName);
+ }
e.printStackTrace();
}
}
throw new UnsupportedOperationException(
"Cannot load a native platform from: '"