A few egl patches needed for glitz, mainly config BITS
authorJon Smirl <jonsmirl@gmail.com>
Sun, 15 May 2005 04:00:59 +0000 (04:00 +0000)
committerJon Smirl <jonsmirl@gmail.com>
Sun, 15 May 2005 04:00:59 +0000 (04:00 +0000)
src/egl/main/eglconfig.c
src/mesa/drivers/dri/fb/fb_egl.c

index ff9a647a8fc4a4828c4ded679f339d6f9f83d056..03f2cd047a8727007b827cdfbc77b4a12f9b6592 100644 (file)
@@ -28,7 +28,8 @@ _eglInitConfig(_EGLConfig *config, EGLint id)
    _eglSetConfigAtrib(config, EGL_NATIVE_VISUAL_TYPE,      EGL_DONT_CARE);
    _eglSetConfigAtrib(config, EGL_MIN_SWAP_INTERVAL,       EGL_DONT_CARE);
    _eglSetConfigAtrib(config, EGL_MAX_SWAP_INTERVAL,       EGL_DONT_CARE);
-   _eglSetConfigAtrib(config, EGL_SURFACE_TYPE,            EGL_WINDOW_BIT);
+   _eglSetConfigAtrib(config, EGL_SURFACE_TYPE,            
+          EGL_SCREEN_BIT_MESA | EGL_PBUFFER_BIT | EGL_PIXMAP_BIT | EGL_WINDOW_BIT);
    _eglSetConfigAtrib(config, EGL_TRANSPARENT_TYPE,        EGL_NONE);
    _eglSetConfigAtrib(config, EGL_TRANSPARENT_RED_VALUE,   EGL_DONT_CARE);
    _eglSetConfigAtrib(config, EGL_TRANSPARENT_GREEN_VALUE, EGL_DONT_CARE);
@@ -128,6 +129,7 @@ _eglSetConfigAtrib(_EGLConfig *config, EGLint attr, EGLint val)
    case EGL_SAMPLE_BUFFERS:
       break;
    case EGL_SURFACE_TYPE:
+      config->glmode.drawableType = val;
       break;
    case EGL_TRANSPARENT_TYPE:
       break;
@@ -375,13 +377,15 @@ _eglGetConfigs(_EGLDriver *drv, EGLDisplay dpy, EGLConfig *configs, EGLint confi
       return EGL_FALSE;
    }
 
-   *num_config = MIN2(disp->NumConfigs, config_size);
    if (configs) {
       EGLint i;
+      *num_config = MIN2(disp->NumConfigs, config_size);
       for (i = 0; i < *num_config; i++) {
          configs[i] = disp->Configs[i].Handle;
       }
-   }
+   } else
+      *num_config = disp->NumConfigs;
+      
    return EGL_TRUE;
 }
 
@@ -592,7 +596,9 @@ _eglFillInConfigs(_EGLConfig * configs,
 
             config->glmode.visualType = visType;
             config->glmode.renderType = GLX_RGBA_BIT;
-            config->glmode.drawableType = GLX_WINDOW_BIT;
+            _eglSetConfigAtrib(config, EGL_SURFACE_TYPE, EGL_SCREEN_BIT_MESA |
+                                EGL_PBUFFER_BIT | EGL_PIXMAP_BIT | EGL_WINDOW_BIT);
+
             config->glmode.rgbMode = GL_TRUE;
 
             if (db_modes[i] == GLX_NONE) {
index 24a7442eb98ebd8efe892d6cd3e0bb59f2a70dd4..0d91970453c1d555475c6ee85abf97bfca00d1d5 100644 (file)
@@ -254,8 +254,10 @@ fbInitialize(_EGLDriver *drv, EGLDisplay dpy, EGLint *major, EGLint *minor)
    *minor = 0;
    
    dir = opendir(sysfs);
-   if (!dir)
+   if (!dir) {
+      printf("EGL - %s framebuffer device not found.", sysfs);
       return EGL_FALSE;
+   }
    
    while (dirent = readdir(dir)) {