From 3e0ce761ad9b081690ee64e37807781b33a4289c Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Fri, 19 Aug 2022 15:27:32 +0200
Subject: output: add wlr_output_set_layers()

---
 include/wlr/types/wlr_output.h       | 10 ++++++++++
 include/wlr/types/wlr_output_layer.h |  3 ++-
 2 files changed, 12 insertions(+), 1 deletion(-)

(limited to 'include')

diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h
index 5731eb91..4f9e3e11 100644
--- a/include/wlr/types/wlr_output.h
+++ b/include/wlr/types/wlr_output.h
@@ -434,6 +434,16 @@ uint32_t wlr_output_preferred_read_format(struct wlr_output *output);
  */
 void wlr_output_set_damage(struct wlr_output *output,
 	const pixman_region32_t *damage);
+/**
+ * Set the output layers state.
+ *
+ * See struct wlr_output_layer for more details on output layers.
+ *
+ * This state is double-buffered, see wlr_output_commit(). The layers array
+ * must remain valid until the wlr_output_test() or wlr_output_commit() call.
+ */
+void wlr_output_set_layers(struct wlr_output *output,
+	struct wlr_output_layer_state *layers, size_t layers_len);
 /**
  * Test whether the pending output state would be accepted by the backend. If
  * this function returns true, wlr_output_commit() can only fail due to a
diff --git a/include/wlr/types/wlr_output_layer.h b/include/wlr/types/wlr_output_layer.h
index 92980108..e9b899a9 100644
--- a/include/wlr/types/wlr_output_layer.h
+++ b/include/wlr/types/wlr_output_layer.h
@@ -21,7 +21,8 @@
  *
  * To configure output layers, callers should call wlr_output_layer_create() to
  * create layers, attach struct wlr_output_layer_state onto
- * struct wlr_output_state to describe their new state, and commit the output.
+ * struct wlr_output_state via wlr_output_set_layers() to describe their new
+ * state, and commit the output via wlr_output_commit().
  *
  * Backends may have arbitrary limitations when it comes to displaying output
  * layers. Backends indicate whether or not a layer can be displayed via
-- 
cgit v1.2.3