diff options
author | Alexandros Frantzis <alexandros.frantzis@linaro.org> | 2011-02-11 17:46:51 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2011-02-18 09:45:00 -0500 |
commit | 00ffb09593b25a603cb5c1ad6d3712ea7776a027 (patch) | |
tree | b9cd38ba600325869ec36d50c6719e6fb9a26aad /boilerplate | |
parent | 2181a53f61c08c3461c74932add4bac7bfa0cf27 (diff) |
boilerplate/egl: Ensure that we are using an RGBA32 egl config
Diffstat (limited to 'boilerplate')
-rw-r--r-- | boilerplate/cairo-boilerplate-egl.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/boilerplate/cairo-boilerplate-egl.c b/boilerplate/cairo-boilerplate-egl.c index 75439a9b..1a5abec6 100644 --- a/boilerplate/cairo-boilerplate-egl.c +++ b/boilerplate/cairo-boilerplate-egl.c @@ -73,8 +73,17 @@ _cairo_boilerplate_egl_create_surface (const char *name, egl_target_closure_t *gltc; cairo_surface_t *surface; int major, minor; - EGLConfig *configs; + EGLConfig config; EGLint numConfigs; + EGLint config_attribs[] = { + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, + EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE + }; gltc = xcalloc (1, sizeof (egl_target_closure_t)); *closure = gltc; @@ -86,17 +95,15 @@ _cairo_boilerplate_egl_create_surface (const char *name, return NULL; } - eglGetConfigs (gltc->dpy, NULL, 0, &numConfigs); + eglChooseConfig (gltc->dpy, config_attribs, &config, 1, &numConfigs); if (numConfigs == 0) { free (gltc); return NULL; } - configs = xmalloc(sizeof(*configs) *numConfigs); - eglGetConfigs (gltc->dpy, configs, numConfigs, &numConfigs); eglBindAPI (EGL_OPENGL_API); - gltc->ctx = eglCreateContext (gltc->dpy, configs[0], EGL_NO_CONTEXT, NULL); + gltc->ctx = eglCreateContext (gltc->dpy, config, EGL_NO_CONTEXT, NULL); if (gltc->ctx == EGL_NO_CONTEXT) { eglTerminate (gltc->dpy); free (gltc); |