aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorAlexander Orzechowski <alex@ozal.ski>2023-02-20 16:54:52 -0500
committerAlexander Orzechowski <alex@ozal.ski>2023-02-20 17:21:17 -0500
commit3ef9f9128306cac549a99a3e844b3e55f9381279 (patch)
treee791f05ee48323a0c20fbdfcc6c6e13d372f1129 /include/wlr
parent4ddc20e14c5413a74e71d68b642dda09ecdf2fac (diff)
wlr_scene: Add dmabuf_feedback helper
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_scene.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/wlr/types/wlr_scene.h b/include/wlr/types/wlr_scene.h
index 19924090..b6f0d217 100644
--- a/include/wlr/types/wlr_scene.h
+++ b/include/wlr/types/wlr_scene.h
@@ -38,6 +38,7 @@ struct wlr_scene_node;
struct wlr_scene_buffer;
struct wlr_presentation;
+struct wlr_linux_dmabuf_v1;
typedef bool (*wlr_scene_buffer_point_accepts_input_func_t)(
struct wlr_scene_buffer *buffer, int sx, int sy);
@@ -95,10 +96,12 @@ struct wlr_scene {
// May be NULL
struct wlr_presentation *presentation;
+ struct wlr_linux_dmabuf_v1 *linux_dmabuf_v1;
// private state
struct wl_listener presentation_destroy;
+ struct wl_listener linux_dmabuf_v1_destroy;
enum wlr_scene_debug_damage_option debug_damage_option;
bool direct_scanout;
@@ -169,6 +172,7 @@ struct wlr_scene_buffer {
int dst_width, dst_height;
enum wl_output_transform transform;
pixman_region32_t opaque_region;
+ struct wlr_linux_dmabuf_feedback_v1_init_options prev_feedback_options;
};
/** A viewport for an output in the scene-graph */
@@ -288,6 +292,15 @@ void wlr_scene_set_presentation(struct wlr_scene *scene,
struct wlr_presentation *presentation);
/**
+ * Handles linux_dmabuf_v1 feedback for all surfaces in the scene.
+ *
+ * Asserts that a struct wlr_linux_dmabuf_v1 hasn't already been set for the scene.
+ */
+void wlr_scene_set_linux_dmabuf_v1(struct wlr_scene *scene,
+ struct wlr_linux_dmabuf_v1 *linux_dmabuf_v1);
+
+
+/**
* Add a node displaying nothing but its children.
*/
struct wlr_scene_tree *wlr_scene_tree_create(struct wlr_scene_tree *parent);