diff options
Diffstat (limited to 'cogl/cogl/winsys/cogl-winsys-egl.c')
-rw-r--r-- | cogl/cogl/winsys/cogl-winsys-egl.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/cogl/cogl/winsys/cogl-winsys-egl.c b/cogl/cogl/winsys/cogl-winsys-egl.c index 8f2bcc7de..fbd6112d4 100644 --- a/cogl/cogl/winsys/cogl-winsys-egl.c +++ b/cogl/cogl/winsys/cogl-winsys-egl.c @@ -338,10 +338,9 @@ try_create_context (CoglDisplay *display, CoglRendererEGL *egl_renderer = renderer->winsys; EGLDisplay edpy; EGLConfig config; - EGLint config_count = 0; - EGLBoolean status; EGLint attribs[9]; EGLint cfg_attribs[MAX_EGL_CONFIG_ATTRIBS]; + GError *config_error = NULL; const char *error_message; _COGL_RETURN_VAL_IF_FAIL (egl_display->egl_context == NULL, TRUE); @@ -356,14 +355,16 @@ try_create_context (CoglDisplay *display, edpy = egl_renderer->edpy; - status = eglChooseConfig (edpy, - cfg_attribs, - &config, 1, - &config_count); - if (status != EGL_TRUE || config_count == 0) + if (!egl_renderer->platform_vtable->choose_config (display, + cfg_attribs, + &config, + &config_error)) { - error_message = "Unable to find a usable EGL configuration"; - goto fail; + _cogl_set_error (error, COGL_WINSYS_ERROR, + COGL_WINSYS_ERROR_CREATE_CONTEXT, + "Couldn't choose config: %s", config_error->message); + g_error_free (config_error); + goto err; } egl_display->egl_config = config; @@ -419,6 +420,7 @@ fail: COGL_WINSYS_ERROR_CREATE_CONTEXT, "%s", error_message); +err: cleanup_context (display); return FALSE; |