aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/wlr/types/wlr_surface.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/include/wlr/types/wlr_surface.h b/include/wlr/types/wlr_surface.h
index 2bfd5d36..b80b1de4 100644
--- a/include/wlr/types/wlr_surface.h
+++ b/include/wlr/types/wlr_surface.h
@@ -1,21 +1,40 @@
#ifndef _WLR_TYPES_WLR_SURFACE_H
#define _WLR_TYPES_WLR_SURFACE_H
-
#include <wayland-server.h>
+#include <pixman.h>
+#include <stdint.h>
struct wlr_frame_callback {
struct wl_resource *resource;
struct wl_list link;
};
-struct wlr_surface {
- struct wl_resource *pending_buffer;
- bool pending_attached;
- bool attached; // whether the surface currently has a buffer attached
+#define WLR_SURFACE_INVALID_BUFFER 1
+#define WLR_SURFACE_INVALID_SURFACE_DAMAGE 2
+#define WLR_SURFACE_INVALID_BUFFER_DAMAGE 4
+#define WLR_SURFACE_INVALID_OPAQUE_REGION 8
+#define WLR_SURFACE_INVALID_INPUT_REGION 16
+#define WLR_SURFACE_INVALID_TRANSFORM 16
+#define WLR_SURFACE_INVALID_SCALE 16
+
+struct wlr_surface_state {
+ uint32_t invalid;
+ struct wl_resource *buffer;
+ int32_t sx, sy;
+ pixman_region32_t surface_damage, buffer_damage;
+ pixman_region32_t opaque, input;
+ uint32_t transform;
+ int32_t scale;
+};
+struct wlr_surface {
+ struct wl_resource *resource;
struct wlr_texture *texture;
+ struct wlr_surface_state current, pending;
const char *role; // the lifetime-bound role or null
- struct wl_resource *resource;
+
+ float buffer_to_surface_matrix[16];
+ float surface_to_buffer_matrix[16];
struct {
struct wl_signal destroy;