diff --git a/cogl/cogl/winsys/cogl-winsys-egl-x11.c b/cogl/cogl/winsys/cogl-winsys-egl-x11.c index 454b41ebc..b7e4e629d 100644 --- a/cogl/cogl/winsys/cogl-winsys-egl-x11.c +++ b/cogl/cogl/winsys/cogl-winsys-egl-x11.c @@ -290,6 +290,19 @@ error: return FALSE; } +static int +_cogl_winsys_egl_add_config_attributes (CoglDisplay *display, + CoglFramebufferConfig *config, + EGLint *attributes) +{ + int i = 0; + + attributes[i++] = EGL_SURFACE_TYPE; + attributes[i++] = EGL_WINDOW_BIT; + + return i; +} + static CoglBool _cogl_winsys_egl_display_setup (CoglDisplay *display, CoglError **error) @@ -794,6 +807,7 @@ _cogl_winsys_texture_pixmap_x11_get_texture (CoglTexturePixmapX11 *tex_pixmap, static const CoglWinsysEGLVtable _cogl_winsys_egl_vtable = { + .add_config_attributes = _cogl_winsys_egl_add_config_attributes, .display_setup = _cogl_winsys_egl_display_setup, .display_destroy = _cogl_winsys_egl_display_destroy, .context_created = _cogl_winsys_egl_context_created, diff --git a/cogl/cogl/winsys/cogl-winsys-egl.c b/cogl/cogl/winsys/cogl-winsys-egl.c index dbf14f6a5..8f2bcc7de 100644 --- a/cogl/cogl/winsys/cogl-winsys-egl.c +++ b/cogl/cogl/winsys/cogl-winsys-egl.c @@ -233,11 +233,11 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display, CoglRendererEGL *egl_renderer = renderer->winsys; int i = 0; - /* Let the platform add attributes first */ - if (egl_renderer->platform_vtable->add_config_attributes) - i = egl_renderer->platform_vtable->add_config_attributes (display, - config, - attributes); + /* Let the platform add attributes first, including setting the + * EGL_SURFACE_TYPE */ + i = egl_renderer->platform_vtable->add_config_attributes (display, + config, + attributes); if (config->need_stencil) { @@ -269,9 +269,6 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display, EGL_OPENGL_ES_BIT : EGL_OPENGL_ES2_BIT); - attributes[i++] = EGL_SURFACE_TYPE; - attributes[i++] = EGL_WINDOW_BIT; - if (config->samples_per_pixel) { attributes[i++] = EGL_SAMPLE_BUFFERS; diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index e2924319e..8a46dc424 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -258,6 +258,19 @@ fail: return FALSE; } +static int +meta_renderer_native_add_egl_config_attributes (CoglDisplay *cogl_display, + CoglFramebufferConfig *config, + EGLint *attributes) +{ + int i = 0; + + attributes[i++] = EGL_SURFACE_TYPE; + attributes[i++] = EGL_WINDOW_BIT; + + return i; +} + static gboolean meta_renderer_native_setup_egl_display (CoglDisplay *cogl_display, GError **error) @@ -807,6 +820,7 @@ meta_renderer_native_release_onscreen (CoglOnscreen *onscreen) static const CoglWinsysEGLVtable _cogl_winsys_egl_vtable = { + .add_config_attributes = meta_renderer_native_add_egl_config_attributes, .display_setup = meta_renderer_native_setup_egl_display, .display_destroy = meta_renderer_native_destroy_egl_display, .context_created = meta_renderer_native_egl_context_created,