-
Notifications
You must be signed in to change notification settings - Fork 3
/
wlr_surface.h
144 lines (104 loc) · 3.28 KB
/
wlr_surface.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#ifndef GDWLR_WLR_SURFACE_H
#define GDWLR_WLR_SURFACE_H
#include "core/object.h"
#include "scene/resources/texture.h"
#include "wlr_output.h"
extern "C" {
#include <wlr/types/wlr_surface.h>
#include "wlr/interfaces/wlr_output.h"
}
class WlrSurfaceAtResult;
class WlrSurfaceState : public Resource {
GDCLASS(WlrSurfaceState, Resource);
const struct wlr_surface_state *state;
protected:
static void _bind_methods();
/* Necessary for Object */
WlrSurfaceState();
public:
int32_t get_dx();
int32_t get_dy();
int get_width();
int get_height();
int get_buffer_width();
int get_buffer_height();
int get_scale();
void delete_state();
WlrSurfaceState(const struct wlr_surface_state *state);
};
class WlrSurface : public Resource {
GDCLASS(WlrSurface, Resource);
struct wlr_surface *wlr_surface;
Array children;
static void handle_new_subsurface(struct wl_listener *listener, void *data);
struct wl_listener new_subsurface;
static void handle_destroy(struct wl_listener *listener, void *data);
struct wl_listener destroy;
static void handle_commit(struct wl_listener *listener, void *data);
struct wl_listener commit;
protected:
static void _bind_methods();
public:
static WlrSurface *from_wlr_surface(struct wlr_surface *wlr_surface);
struct wlr_surface *get_wlr_surface() const;
int get_sx();
int get_sy();
WlrSurfaceState *alloc_current_state() const;
WlrSurfaceState *alloc_pending_state() const;
WlrSurfaceState *alloc_previous_state() const;
Ref<Texture> get_texture() const;
Array get_damage_regions() const;
Array accumulate_damage_regions(Array surfaces, Array xs, Array ys);
Array get_damage_regions_with_damage(Array gsvsDamageBoxes) const;
Array get_opaque_regions() const;
Array get_input_regions() const;
void send_frame_done();
Array get_children();
WlrSurfaceAtResult *surface_at(double sx, double sy);
WlrSurface *get_root_surface();
void surface_send_leave(Object * _output);
bool is_wlr_subsurface();
bool is_wlr_xwayland_surface();
bool is_wlr_xdg_surface();
bool is_valid();
WlrSurface(); // Necessary for Object
WlrSurface(struct wlr_surface *surface);
};
class WlrSubsurface : public Resource {
GDCLASS(WlrSubsurface, Resource);
struct wlr_subsurface *wlr_subsurface;
Array children;
static void handle_destroy(struct wl_listener *listener, void *data);
struct wl_listener destroy;
protected:
static void _bind_methods();
WlrSubsurface(); // Necessary for Object
WlrSubsurface(struct wlr_subsurface *subsurface);
public:
static WlrSubsurface *from_wlr_subsurface(struct wlr_subsurface *wlr_subsurface);
WlrSurface *from_wlr_surface(struct wlr_surface *wlr_surface);
WlrSurface *getWlrSurface();
struct wlr_subsurface *get_wlr_subsurface() const;
int get_ssx();
int get_ssy();
Ref<Texture> get_texture() const;
Array get_children();
WlrSurface *get_wlr_surface_parent();
WlrSurface *get_wlr_surface();
bool is_valid();
};
class WlrSurfaceAtResult : public Reference {
GDCLASS(WlrSurfaceAtResult, Reference);
WlrSurface *surface;
double sub_x, sub_y;
protected:
static void _bind_methods();
/* Necessary for Object */
WlrSurfaceAtResult();
public:
WlrSurface *get_surface();
double get_sub_x();
double get_sub_y();
WlrSurfaceAtResult(WlrSurface *surface, double sub_x, double sub_y);
};
#endif