summaryrefslogtreecommitdiff
path: root/cogl/winsys/cogl-winsys-egl.c
diff options
context:
space:
mode:
Diffstat (limited to 'cogl/winsys/cogl-winsys-egl.c')
-rw-r--r--cogl/winsys/cogl-winsys-egl.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/cogl/winsys/cogl-winsys-egl.c b/cogl/winsys/cogl-winsys-egl.c
index 5597cd12..97179067 100644
--- a/cogl/winsys/cogl-winsys-egl.c
+++ b/cogl/winsys/cogl-winsys-egl.c
@@ -353,7 +353,8 @@ check_egl_extensions (CoglRenderer *renderer)
egl_renderer->private_features = 0;
for (i = 0; i < G_N_ELEMENTS (winsys_feature_data); i++)
if (_cogl_feature_check (winsys,
- "EGL", winsys_feature_data + i, 0, 0, 0,
+ "EGL", winsys_feature_data + i, 0, 0,
+ COGL_DRIVER_GL, /* the driver isn't used */
egl_extensions,
egl_renderer))
{
@@ -514,7 +515,7 @@ update_winsys_features (CoglContext *context)
check_egl_extensions (context->display->renderer);
- _cogl_gl_update_features (context);
+ _cogl_context_update_features (context);
#if defined (COGL_HAS_EGL_PLATFORM_POWERVR_X11_SUPPORT) || \
defined (COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT)
@@ -619,23 +620,17 @@ try_create_context (CoglDisplay *display,
EGL_BUFFER_SIZE, EGL_DONT_CARE,
-#if defined (HAVE_COGL_GL)
- EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
-#elif defined (HAVE_COGL_GLES2)
- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
-#else
- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
-#endif
+ EGL_RENDERABLE_TYPE, (display->renderer->driver == COGL_DRIVER_GL ?
+ EGL_OPENGL_BIT :
+ display->renderer->driver == COGL_DRIVER_GLES1 ?
+ EGL_OPENGL_ES_BIT :
+ EGL_OPENGL_ES2_BIT),
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_NONE
};
-#if defined (HAVE_COGL_GLES2)
- EGLint attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
-#else
- EGLint *attribs = NULL;
-#endif
+ EGLint attribs[3];
#ifdef COGL_HAS_EGL_PLATFORM_POWERVR_X11_SUPPORT
XVisualInfo *xvisinfo;
@@ -646,11 +641,19 @@ try_create_context (CoglDisplay *display,
#endif
const char *error_message;
+ if (display->renderer->driver == COGL_DRIVER_GLES2)
+ {
+ attribs[0] = EGL_CONTEXT_CLIENT_VERSION;
+ attribs[1] = 2;
+ attribs[2] = EGL_NONE;
+ }
+ else
+ attribs[0] = EGL_NONE;
+
edpy = egl_renderer->edpy;
-#ifdef HAVE_COGL_GL
- eglBindAPI (EGL_OPENGL_API);
-#endif
+ if (display->renderer->driver == COGL_DRIVER_GL)
+ eglBindAPI (EGL_OPENGL_API);
/* Some GLES hardware can't support a stencil buffer: */
if (retry_cookie == 1)