aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-06-19 19:07:29 +0100
committeremersion <contact@emersion.fr>2018-06-30 22:17:59 +0100
commit73755ad348657fdf8d9e0f9a48ee13a2ab947e35 (patch)
tree92eea1b7076e38a38792b7ff222bd9a51975c823 /include/wlr
parent02dfa9101ec7fd8328ed329d2f2faa815b1ad61c (diff)
screencopy-v1: add basic implementation
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_screencopy_v1.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/wlr/types/wlr_screencopy_v1.h b/include/wlr/types/wlr_screencopy_v1.h
new file mode 100644
index 00000000..fbcc1ce2
--- /dev/null
+++ b/include/wlr/types/wlr_screencopy_v1.h
@@ -0,0 +1,36 @@
+#ifndef WLR_TYPES_WLR_SCREENCOPY_V1_H
+#define WLR_TYPES_WLR_SCREENCOPY_V1_H
+
+#include <wayland-server.h>
+
+struct wlr_screencopy_manager_v1 {
+ struct wl_global *global;
+ struct wl_list resources; // wl_resource
+ struct wl_list frames; // wlr_screencopy_frame_v1::link
+
+ struct wl_listener display_destroy;
+
+ void *data;
+};
+
+struct wlr_screencopy_frame_v1 {
+ struct wl_resource *resource;
+ struct wlr_screencopy_manager_v1 *manager;
+ struct wl_list link;
+
+ int32_t width, height;
+
+ struct wl_shm_buffer *buffer;
+
+ struct wlr_output *output;
+ struct wl_listener output_swap_buffers;
+
+ void *data;
+};
+
+struct wlr_screencopy_manager_v1 *wlr_screencopy_manager_v1_create(
+ struct wl_display *display);
+void wlr_screencopy_manager_v1_destroy(
+ struct wlr_screencopy_manager_v1 *screencopy);
+
+#endif