From a7bb48b404b4809532e81a5daa981c81279c863a Mon Sep 17 00:00:00 2001 From: emersion Date: Sat, 31 Mar 2018 23:20:00 -0400 Subject: render/egl: add wlr_egl_create_image_from_wl_drm This allows external renderers and potential future GL-based renderers to re-use this function. --- include/wlr/render/egl.h | 20 ++++++++++++++------ include/wlr/render/wlr_texture.h | 2 +- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'include/wlr') diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h index 20127e38..cca77870 100644 --- a/include/wlr/render/egl.h +++ b/include/wlr/render/egl.h @@ -28,21 +28,22 @@ struct wlr_egl { // TODO: Allocate and return a wlr_egl /** - * Initializes an egl context for the given platform and remote display. + * Initializes an EGL context for the given platform and remote display. * Will attempt to load all possibly required api functions. */ bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, void *remote_display, EGLint *config_attribs, EGLint visual_id); /** - * Frees all related egl resources, makes the context not-current and + * Frees all related EGL resources, makes the context not-current and * unbinds a bound wayland display. */ void wlr_egl_finish(struct wlr_egl *egl); /** - * Binds the given display to the egl instance. - * This will allow clients to create egl surfaces from wayland ones and render to it. + * Binds the given display to the EGL instance. + * This will allow clients to create EGL surfaces from wayland ones and render + * to it. */ bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display); @@ -53,7 +54,14 @@ bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display) EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window); /** - * Creates an egl image from the given dmabuf attributes. Check usability + * Creates an EGL image from the given wl_drm buffer resource. + */ +EGLImageKHR wlr_egl_create_image_from_wl_drm(struct wlr_egl *egl, + struct wl_resource *data, EGLint *fmt, int *width, int *height, + bool *inverted_y); + +/** + * Creates an EGL image from the given dmabuf attributes. Check usability * of the dmabuf with wlr_egl_check_import_dmabuf once first. */ EGLImageKHR wlr_egl_create_image_from_dmabuf(struct wlr_egl *egl, @@ -78,7 +86,7 @@ int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl, int format, uint64_t **modifiers); /** - * Destroys an egl image created with the given wlr_egl. + * Destroys an EGL image created with the given wlr_egl. */ bool wlr_egl_destroy_image(struct wlr_egl *egl, EGLImageKHR image); diff --git a/include/wlr/render/wlr_texture.h b/include/wlr/render/wlr_texture.h index ab361298..239fc51b 100644 --- a/include/wlr/render/wlr_texture.h +++ b/include/wlr/render/wlr_texture.h @@ -23,7 +23,7 @@ struct wlr_texture *wlr_texture_from_pixels(struct wlr_renderer *renderer, const void *data); /** - * Create a new texture from a wayland DRM resource. The returned texture is + * Create a new texture from a wl_drm resource. The returned texture is * immutable. */ struct wlr_texture *wlr_texture_from_wl_drm(struct wlr_renderer *renderer, -- cgit v1.2.3