aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_output_layer.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/wlr/types/wlr_output_layer.h b/include/wlr/types/wlr_output_layer.h
index e9b899a9..9f787e2c 100644
--- a/include/wlr/types/wlr_output_layer.h
+++ b/include/wlr/types/wlr_output_layer.h
@@ -9,6 +9,7 @@
#ifndef WLR_TYPES_WLR_OUTPUT_LAYER_H
#define WLR_TYPES_WLR_OUTPUT_LAYER_H
+#include <wlr/render/drm_format_set.h>
#include <wlr/types/wlr_output.h>
#include <wlr/util/addon.h>
@@ -36,6 +37,10 @@ struct wlr_output_layer {
struct wl_list link; // wlr_output.layers
struct wlr_addon_set addons;
+ struct {
+ struct wl_signal feedback; // struct wlr_output_layer_feedback_event
+ } events;
+
void *data;
};
@@ -57,6 +62,18 @@ struct wlr_output_layer_state {
};
/**
+ * Feedback for an output layer.
+ *
+ * After an output commit, if the backend is not able to display a layer, it
+ * can send feedback events. These events can be used to re-allocate the
+ * layer's buffers so that they have a higher chance to get displayed.
+ */
+struct wlr_output_layer_feedback_event {
+ dev_t target_device;
+ const struct wlr_drm_format_set *formats;
+};
+
+/**
* Create a new output layer.
*/
struct wlr_output_layer *wlr_output_layer_create(struct wlr_output *output);