r300: respect radeon common code fallbacks
[mesa.git] / progs / egl / demo1.c
index 49b6624538832aa34e407101ee6e0444f9ca5d29..d892734ee55f49de55995e8dcdebbd79265e6b3b 100644 (file)
@@ -34,14 +34,9 @@ TestScreens(EGLDisplay dpy)
  * Print table of all available configurations.
  */
 static void
-PrintConfigs(EGLDisplay d)
+PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs)
 {
-   EGLConfig *configs;
-   EGLint numConfigs, i;
-
-   eglGetConfigs(d, NULL, 0, &numConfigs);
-   configs = malloc(sizeof(*configs) *numConfigs);
-   eglGetConfigs(d, configs, numConfigs, &numConfigs);
+   EGLint i;
 
    printf("Configurations:\n");
    printf("     bf lv d st colorbuffer dp st   supported \n");
@@ -83,7 +78,6 @@ PrintConfigs(EGLDisplay d)
              red, green, blue, alpha,
              depth, stencil, surfString);
    }
-   free(configs);
 }
 
 
@@ -94,7 +88,8 @@ main(int argc, char *argv[])
    int maj, min;
    EGLContext ctx;
    EGLSurface pbuffer;
-   EGLConfig configs[10];
+   EGLConfig *configs;
+   EGLint numConfigs;
    EGLBoolean b;
    const EGLint pbufAttribs[] = {
       EGL_WIDTH, 500,
@@ -102,10 +97,7 @@ main(int argc, char *argv[])
       EGL_NONE
    };
 
-   /*
    EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-   */
-   EGLDisplay d = eglGetDisplay((EGLNativeDisplayType) "!EGL_i915");
    assert(d);
 
    if (!eglInitialize(d, &maj, &min)) {
@@ -116,8 +108,13 @@ main(int argc, char *argv[])
    printf("EGL version = %d.%d\n", maj, min);
    printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
 
-   PrintConfigs(d);
+   eglGetConfigs(d, NULL, 0, &numConfigs);
+   configs = malloc(sizeof(*configs) *numConfigs);
+   eglGetConfigs(d, configs, numConfigs, &numConfigs);
 
+   PrintConfigs(d, configs, numConfigs);
+
+   eglBindAPI(EGL_OPENGL_API);
    ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
    if (ctx == EGL_NO_CONTEXT) {
       printf("failed to create context\n");
@@ -130,6 +127,8 @@ main(int argc, char *argv[])
       return 0;
    }
 
+   free(configs);
+
    b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
    if (!b) {
       printf("make current failed\n");