summaryrefslogtreecommitdiff
path: root/boilerplate
diff options
context:
space:
mode:
authorAlexandros Frantzis <alexandros.frantzis@linaro.org>2011-02-11 17:46:51 +0200
committerKristian Høgsberg <krh@bitplanet.net>2011-02-18 09:45:00 -0500
commit00ffb09593b25a603cb5c1ad6d3712ea7776a027 (patch)
treeb9cd38ba600325869ec36d50c6719e6fb9a26aad /boilerplate
parent2181a53f61c08c3461c74932add4bac7bfa0cf27 (diff)
boilerplate/egl: Ensure that we are using an RGBA32 egl config
Diffstat (limited to 'boilerplate')
-rw-r--r--boilerplate/cairo-boilerplate-egl.c17
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);