summaryrefslogtreecommitdiffstats
path: root/progs/egl/demo2.c
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2010-01-04 13:32:50 +0800
committerChia-I Wu <[email protected]>2010-01-12 10:55:35 +0800
commit472a6019665094c18fc47624b343ddc8c90f102c (patch)
tree17209a9bddfde141bbc86d4b04491fe07bb557ee /progs/egl/demo2.c
parentc657c80180255b859b9229a994d111115aaf198d (diff)
progs/egl: Fix screen surface demos.
Set the screen surface size to the mode size, as the spec requires the screen surface size to be larger than the mode size. Besides, bind the API to OpenGL as they are written in it. Signed-off-by: Chia-I Wu <[email protected]>
Diffstat (limited to 'progs/egl/demo2.c')
-rw-r--r--progs/egl/demo2.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/progs/egl/demo2.c b/progs/egl/demo2.c
index 3994656721f..b9e92f62ac2 100644
--- a/progs/egl/demo2.c
+++ b/progs/egl/demo2.c
@@ -111,11 +111,7 @@ 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;
@@ -149,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");
@@ -169,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");