From 9a40ee16d0be3a08ac2f467311673f4b9333191d Mon Sep 17 00:00:00 2001 From: Chad Versace Date: Sun, 9 Feb 2014 09:13:27 -0800 Subject: [PATCH] egl/wayland: Emit EGL_BAD_PARAMETER for eglCreatePlatformPixmapSurface From the EGL_EXT_wayland_spec, version 3: It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a that belongs to Wayland. Any such call fails and generates EGL_BAD_PARAMETER. Signed-off-by: Chad Versace --- src/egl/drivers/dri2/platform_wayland.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index 85564661e92..691f3e1ef84 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -202,6 +202,22 @@ dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp, return surf; } +static _EGLSurface * +dri2_wl_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp, + _EGLConfig *conf, void *native_window, + const EGLint *attrib_list) +{ + /* From the EGL_EXT_platform_wayland spec, version 3: + * + * It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a + * that belongs to Wayland. Any such call fails and generates + * EGL_BAD_PARAMETER. + */ + _eglError(EGL_BAD_PARAMETER, "cannot create EGL pixmap surfaces on " + "Wayland"); + return NULL; +} + /** * Called via eglDestroySurface(), drv->API.DestroySurface(). */ @@ -936,7 +952,7 @@ dri2_wl_setup_swap_interval(struct dri2_egl_display *dri2_dpy) static struct dri2_egl_display_vtbl dri2_wl_display_vtbl = { .authenticate = dri2_wl_authenticate, .create_window_surface = dri2_wl_create_window_surface, - .create_pixmap_surface = dri2_fallback_create_pixmap_surface, + .create_pixmap_surface = dri2_wl_create_pixmap_surface, .create_pbuffer_surface = dri2_fallback_create_pbuffer_surface, .destroy_surface = dri2_wl_destroy_surface, .create_image = dri2_create_image_khr, -- 2.30.2