aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-05-23 00:03:26 +0100
committeremersion <contact@emersion.fr>2018-05-29 18:47:17 +0100
commit5ba1a9af5652aa2407738ec6290e7a9a59a86ea6 (patch)
tree13b44184db8f3e2b32f1b1205aa6a9997065dab8 /include/wlr
parentbd430b8620f5dec485e49269d6add8dc3c20a8ab (diff)
render: add wlr_texture_to_dmabuf
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/render/egl.h5
-rw-r--r--include/wlr/render/interface.h2
-rw-r--r--include/wlr/render/wlr_texture.h3
3 files changed, 10 insertions, 0 deletions
diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h
index 4d837138..17fef7ed 100644
--- a/include/wlr/render/egl.h
+++ b/include/wlr/render/egl.h
@@ -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.
*/
diff --git a/include/wlr/render/interface.h b/include/wlr/render/interface.h
index 2267d376..1f075e81 100644
--- a/include/wlr/render/interface.h
+++ b/include/wlr/render/interface.h
@@ -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);
};
diff --git a/include/wlr/render/wlr_texture.h b/include/wlr/render/wlr_texture.h
index 239fc51b..481b2a37 100644
--- a/include/wlr/render/wlr_texture.h
+++ b/include/wlr/render/wlr_texture.h
@@ -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.
*/