mirror of
https://github.com/brl/mutter.git
synced 2024-11-12 17:27:03 -05:00
cogl: Make platforms set the EGL_SURFACE_TYPE
Cogl has no way to know how to properly set the surface type, so lets outsource that to the platform layer. https://bugzilla.gnome.org/show_bug.cgi?id=773629
This commit is contained in:
parent
da21f02eb9
commit
8f716772c2
@ -290,6 +290,19 @@ error:
|
|||||||
return FALSE;
|
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
|
static CoglBool
|
||||||
_cogl_winsys_egl_display_setup (CoglDisplay *display,
|
_cogl_winsys_egl_display_setup (CoglDisplay *display,
|
||||||
CoglError **error)
|
CoglError **error)
|
||||||
@ -794,6 +807,7 @@ _cogl_winsys_texture_pixmap_x11_get_texture (CoglTexturePixmapX11 *tex_pixmap,
|
|||||||
static const CoglWinsysEGLVtable
|
static const CoglWinsysEGLVtable
|
||||||
_cogl_winsys_egl_vtable =
|
_cogl_winsys_egl_vtable =
|
||||||
{
|
{
|
||||||
|
.add_config_attributes = _cogl_winsys_egl_add_config_attributes,
|
||||||
.display_setup = _cogl_winsys_egl_display_setup,
|
.display_setup = _cogl_winsys_egl_display_setup,
|
||||||
.display_destroy = _cogl_winsys_egl_display_destroy,
|
.display_destroy = _cogl_winsys_egl_display_destroy,
|
||||||
.context_created = _cogl_winsys_egl_context_created,
|
.context_created = _cogl_winsys_egl_context_created,
|
||||||
|
@ -233,11 +233,11 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
|
|||||||
CoglRendererEGL *egl_renderer = renderer->winsys;
|
CoglRendererEGL *egl_renderer = renderer->winsys;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
/* Let the platform add attributes first */
|
/* Let the platform add attributes first, including setting the
|
||||||
if (egl_renderer->platform_vtable->add_config_attributes)
|
* EGL_SURFACE_TYPE */
|
||||||
i = egl_renderer->platform_vtable->add_config_attributes (display,
|
i = egl_renderer->platform_vtable->add_config_attributes (display,
|
||||||
config,
|
config,
|
||||||
attributes);
|
attributes);
|
||||||
|
|
||||||
if (config->need_stencil)
|
if (config->need_stencil)
|
||||||
{
|
{
|
||||||
@ -269,9 +269,6 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
|
|||||||
EGL_OPENGL_ES_BIT :
|
EGL_OPENGL_ES_BIT :
|
||||||
EGL_OPENGL_ES2_BIT);
|
EGL_OPENGL_ES2_BIT);
|
||||||
|
|
||||||
attributes[i++] = EGL_SURFACE_TYPE;
|
|
||||||
attributes[i++] = EGL_WINDOW_BIT;
|
|
||||||
|
|
||||||
if (config->samples_per_pixel)
|
if (config->samples_per_pixel)
|
||||||
{
|
{
|
||||||
attributes[i++] = EGL_SAMPLE_BUFFERS;
|
attributes[i++] = EGL_SAMPLE_BUFFERS;
|
||||||
|
@ -258,6 +258,19 @@ fail:
|
|||||||
return FALSE;
|
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
|
static gboolean
|
||||||
meta_renderer_native_setup_egl_display (CoglDisplay *cogl_display,
|
meta_renderer_native_setup_egl_display (CoglDisplay *cogl_display,
|
||||||
GError **error)
|
GError **error)
|
||||||
@ -807,6 +820,7 @@ meta_renderer_native_release_onscreen (CoglOnscreen *onscreen)
|
|||||||
|
|
||||||
static const CoglWinsysEGLVtable
|
static const CoglWinsysEGLVtable
|
||||||
_cogl_winsys_egl_vtable = {
|
_cogl_winsys_egl_vtable = {
|
||||||
|
.add_config_attributes = meta_renderer_native_add_egl_config_attributes,
|
||||||
.display_setup = meta_renderer_native_setup_egl_display,
|
.display_setup = meta_renderer_native_setup_egl_display,
|
||||||
.display_destroy = meta_renderer_native_destroy_egl_display,
|
.display_destroy = meta_renderer_native_destroy_egl_display,
|
||||||
.context_created = meta_renderer_native_egl_context_created,
|
.context_created = meta_renderer_native_egl_context_created,
|
||||||
|
Loading…
Reference in New Issue
Block a user