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: '"