mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-31 22:25:21 -04:00
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.
This commit is contained in:
parent
b60e31e5c0
commit
a7bb48b404
4 changed files with 64 additions and 47 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue