summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--progs/egl/demo1.c21
-rw-r--r--progs/egl/eglinfo.c11
2 files changed, 29 insertions, 3 deletions
diff --git a/progs/egl/demo1.c b/progs/egl/demo1.c
index 9b9a2ed4a..f656b5474 100644
--- a/progs/egl/demo1.c
+++ b/progs/egl/demo1.c
@@ -8,6 +8,25 @@
#include <stdlib.h>
+/**
+ * Test EGL_MESA_screen_surface functions
+ */
+static void
+TestScreens(EGLDisplay dpy)
+{
+#define MAX 8
+ EGLScreenMESA screens[MAX];
+ EGLint numScreens;
+ EGLint i;
+
+ eglGetScreensMESA(dpy, screens, MAX, &numScreens);
+ printf("Found %d screens\n", numScreens);
+ for (i = 0; i < numScreens; i++) {
+ printf(" Screen %d handle: %d\n", i, (int) screens[i]);
+ }
+}
+
+
int
main(int argc, char *argv[])
@@ -68,6 +87,8 @@ main(int argc, char *argv[])
b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+ TestScreens(d);
+
eglDestroySurface(d, pbuffer);
eglDestroyContext(d, ctx);
eglTerminate(d);
diff --git a/progs/egl/eglinfo.c b/progs/egl/eglinfo.c
index 7e29ce7cf..a80df6cd9 100644
--- a/progs/egl/eglinfo.c
+++ b/progs/egl/eglinfo.c
@@ -98,12 +98,17 @@ PrintModes(EGLDisplay d)
#ifdef EGL_MESA_screen_surface
const char *extensions = eglQueryString(d, EGL_EXTENSIONS);
if (strstr("EGL_MESA_screen_surface", extensions)) {
- EGLint scrn, numScreens = 1;
+ EGLScreenMESA screens[20];
+ EGLint numScreens = 1, scrn;
EGLModeMESA modes[MAX_MODES];
- EGLint numModes, i;
+
+ eglGetScreensMESA(d, screens, 20, &numScreens);
+ printf("Number of Screens: %d\n\n", numScreens);
for (scrn = 0; scrn < numScreens; scrn++) {
- eglGetModesMESA(d, scrn, modes, MAX_MODES, &numModes);
+ EGLint numModes, i;
+
+ eglGetModesMESA(d, screens[scrn], modes, MAX_MODES, &numModes);
printf("Screen %d Modes:\n", scrn);
printf(" id width height refresh\n");