egl: Log (debug) native platform type
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Tue, 9 Aug 2011 14:16:33 +0000 (16:16 +0200)
committerBenjamin Franzke <benjaminfranzke@googlemail.com>
Mon, 15 Aug 2011 07:42:16 +0000 (09:42 +0200)
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
src/egl/main/egldisplay.c

index 2849dd9..512ad50 100644 (file)
 
 
 /**
+ * Map --with-egl-platforms names to platform types.
+ */
+static const struct {
+   _EGLPlatformType platform;
+   const char *name;
+} egl_platforms[_EGL_NUM_PLATFORMS] = {
+   { _EGL_PLATFORM_WINDOWS, "gdi" },
+   { _EGL_PLATFORM_X11, "x11" },
+   { _EGL_PLATFORM_WAYLAND, "wayland" },
+   { _EGL_PLATFORM_DRM, "drm" },
+   { _EGL_PLATFORM_FBDEV, "fbdev" }
+};
+
+
+/**
  * Return the native platform by parsing EGL_PLATFORM.
  */
 static _EGLPlatformType
 _eglGetNativePlatformFromEnv(void)
 {
-   /* map --with-egl-platforms names to platform types */
-   static const struct {
-      _EGLPlatformType platform;
-      const char *name;
-   } egl_platforms[_EGL_NUM_PLATFORMS] = {
-      { _EGL_PLATFORM_WINDOWS, "gdi" },
-      { _EGL_PLATFORM_X11, "x11" },
-      { _EGL_PLATFORM_WAYLAND, "wayland" },
-      { _EGL_PLATFORM_DRM, "drm" },
-      { _EGL_PLATFORM_FBDEV, "fbdev" }
-   };
    _EGLPlatformType plat = _EGL_INVALID_PLATFORM;
    const char *plat_name;
    EGLint i;
@@ -181,16 +185,25 @@ _EGLPlatformType
 _eglGetNativePlatform(EGLNativeDisplayType nativeDisplay)
 {
    static _EGLPlatformType native_platform = _EGL_INVALID_PLATFORM;
+   char *detection_method = NULL;
 
    if (native_platform == _EGL_INVALID_PLATFORM) {
       native_platform = _eglGetNativePlatformFromEnv();
+      detection_method = "environment overwrite";
       if (native_platform == _EGL_INVALID_PLATFORM) {
          native_platform = _eglNativePlatformDetectNativeDisplay(nativeDisplay);
-         if (native_platform == _EGL_INVALID_PLATFORM)
+         detection_method = "autodetected";
+         if (native_platform == _EGL_INVALID_PLATFORM) {
             native_platform = _EGL_NATIVE_PLATFORM;
+            detection_method = "build-time configuration";
+         }
       }
    }
 
+   if (detection_method != NULL)
+      _eglLog(_EGL_DEBUG, "Native platform type: %s (%s)",
+              egl_platforms[native_platform].name, detection_method);
+
    return native_platform;
 }