diff options
author | Chia-I Wu <[email protected]> | 2010-01-04 13:32:50 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-01-12 10:55:35 +0800 |
commit | 472a6019665094c18fc47624b343ddc8c90f102c (patch) | |
tree | 17209a9bddfde141bbc86d4b04491fe07bb557ee /progs/egl/demo3.c | |
parent | c657c80180255b859b9229a994d111115aaf198d (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/demo3.c')
-rw-r--r-- | progs/egl/demo3.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/progs/egl/demo3.c b/progs/egl/demo3.c index 0665fd0516e..64b9ee652cd 100644 --- a/progs/egl/demo3.c +++ b/progs/egl/demo3.c @@ -564,11 +564,8 @@ main(int argc, char *argv[]) EGLint numConfigs, count; EGLBoolean b; const GLubyte *bitmap; - const EGLint screenAttribs[] = { - EGL_WIDTH, 1024, - EGL_HEIGHT, 768, - EGL_NONE - }; + EGLint screenAttribs[32]; + EGLint i; EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); assert(d); @@ -590,12 +587,20 @@ 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"); return 0; } + 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"); |