1 #ifndef DS_SURFACE_PRIVATE_H
2 #define DS_SURFACE_PRIVATE_H
7 #include <wayland-server.h>
13 enum ds_surface_state_field
15 DS_SURFACE_STATE_BUFFER = 1 << 0,
16 DS_SURFACE_STATE_SURFACE_DAMAGE = 1 << 1,
17 DS_SURFACE_STATE_BUFFER_DAMAGE = 1 << 2,
18 DS_SURFACE_STATE_OPAQUE_REGION = 1 << 3,
19 DS_SURFACE_STATE_INPUT_REGION = 1 << 4,
20 DS_SURFACE_STATE_TRANSFORM = 1 << 5,
21 DS_SURFACE_STATE_SCALE = 1 << 6,
22 DS_SURFACE_STATE_FRAME_CALLBACK_LIST = 1 << 7,
23 DS_SURFACE_STATE_VIEWPORT = 1 << 8,
26 struct ds_surface_state
28 enum ds_surface_state_field committed;
30 struct ds_buffer *buffer;
32 pixman_region32_t surface_damage, buffer_damage;
33 pixman_region32_t opaque, input;
34 enum wl_output_transform transform;
36 struct wl_list frame_callback_list;
39 int buffer_width, buffer_height;
41 struct wl_list subsurfaces_below;
42 struct wl_list subsurfaces_above;
49 struct wl_resource *resource;
51 struct ds_buffer *buffer;
53 pixman_region32_t buffer_damage;
54 pixman_region32_t opaque_region;
55 pixman_region32_t input_region;
57 struct ds_surface_state current, pending;
59 const struct ds_surface_role *role;
65 struct wl_signal commit;
66 struct wl_signal new_subsurface;
67 struct wl_signal destroy;
70 struct ds_addon_set addons;
73 struct ds_subsurface_parent_state
81 struct wl_resource *resource;
82 struct ds_surface *surface;
83 struct ds_surface *parent;
85 struct ds_subsurface_parent_state current, pending;
88 struct wl_signal destroy;
92 struct wl_listener surface_destroy;
93 struct wl_listener parent_destroy;
102 ds_surface_get_root_surface(struct ds_surface *surface);
104 struct ds_subsurface *
105 ds_subsurface_from_ds_surface(struct ds_surface *surface);
108 ds_subsurface_get_parent(struct ds_subsurface *subsurface);