X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=progs%2Fegl%2Fdemo2.c;h=b9e92f62ac2eba822a0533d92c638aabef2369cb;hb=eb4dc547885994cc7961f7996c33ff484f664964;hp=d7283e13bd3f6d47572f0a38fb7be6c03e309d82;hpb=2a7dc7927339322fbffaba62d2fb69373b94caf0;p=mesa.git diff --git a/progs/egl/demo2.c b/progs/egl/demo2.c index d7283e13bd3..b9e92f62ac2 100644 --- a/progs/egl/demo2.c +++ b/progs/egl/demo2.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -110,19 +111,12 @@ main(int argc, char *argv[]) EGL_HEIGHT, 500, EGL_NONE }; - const EGLint screenAttribs[] = { - EGL_WIDTH, 1024, - EGL_HEIGHT, 768, - EGL_NONE - }; + EGLint screenAttribs[32]; EGLModeMESA mode; EGLScreenMESA screen; EGLint count; - /* EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - */ - EGLDisplay d = eglGetDisplay((EGLNativeDisplayType) "!EGL_i915"); assert(d); if (!eglInitialize(d, &maj, &min)) { @@ -132,6 +126,11 @@ main(int argc, char *argv[]) printf("EGL version = %d.%d\n", maj, min); printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + if (!strstr(eglQueryString(d, EGL_EXTENSIONS), + "EGL_MESA_screen_surface")) { + printf("EGL_MESA_screen_surface is not supported\n"); + exit(1); + } eglGetConfigs(d, configs, 10, &numConfigs); printf("Got %d EGL configs:\n", numConfigs); @@ -146,6 +145,7 @@ main(int argc, char *argv[]) eglGetScreensMESA(d, &screen, 1, &count); eglGetModesMESA(d, screen, &mode, 1, &count); + eglBindAPI(EGL_OPENGL_API); ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); if (ctx == EGL_NO_CONTEXT) { printf("failed to create context\n"); @@ -166,6 +166,13 @@ main(int argc, char *argv[]) b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + i = 0; + screenAttribs[i++] = EGL_WIDTH; + eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]); + screenAttribs[i++] = EGL_HEIGHT; + eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]); + screenAttribs[i] = EGL_NONE; + screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); if (screen_surf == EGL_NO_SURFACE) { printf("failed to create screen surface\n");