render: add wlr_texture_to_dmabuf

This commit is contained in:
emersion 2018-05-23 00:03:26 +01:00
parent bd430b8620
commit 5ba1a9af56
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
7 changed files with 92 additions and 3 deletions

View file

@ -20,6 +20,7 @@ struct wlr_egl {
bool swap_buffers_with_damage;
bool dmabuf_import;
bool dmabuf_import_modifiers;
bool dmabuf_export;
bool bind_wayland_display;
} egl_exts;
@ -85,6 +86,10 @@ int wlr_egl_get_dmabuf_formats(struct wlr_egl *egl, int **formats);
int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl, int format,
uint64_t **modifiers);
bool wlr_egl_export_image_to_dmabuf(struct wlr_egl *egl, EGLImageKHR image,
int32_t width, int32_t height, uint32_t flags,
struct wlr_dmabuf_buffer_attribs *attribs);
/**
* Destroys an EGL image created with the given wlr_egl.
*/

View file

@ -62,6 +62,8 @@ struct wlr_texture_impl {
enum wl_shm_format wl_fmt, uint32_t stride, uint32_t width,
uint32_t height, uint32_t src_x, uint32_t src_y, uint32_t dst_x,
uint32_t dst_y, const void *data);
bool (*to_dmabuf)(struct wlr_texture *texture,
struct wlr_dmabuf_buffer_attribs *attribs);
void (*destroy)(struct wlr_texture *texture);
};

View file

@ -48,6 +48,9 @@ bool wlr_texture_write_pixels(struct wlr_texture *texture,
uint32_t src_x, uint32_t src_y, uint32_t dst_x, uint32_t dst_y,
const void *data);
bool wlr_texture_to_dmabuf(struct wlr_texture *texture,
struct wlr_dmabuf_buffer_attribs *attribs);
/**
* Destroys this wlr_texture.
*/