Go to the documentation of this file.
20 #ifndef MIRAL_WAYLAND_APP_H
21 #define MIRAL_WAYLAND_APP_H
23 #include <wayland-client.h>
36 : proxy{
nullptr, [](
auto){}}
41 : proxy{proxy, destroy}
51 std::unique_ptr<T, void(*)(T*)> proxy;
58 static void create(wl_callback* callback, std::function<
void()>&& func);
62 : callback{std::move(callback)},
67 static wl_callback_listener
const callback_listener;
70 std::function<void()>
const func;
79 auto scale() const ->
int {
return scale_; }
80 auto transform() const ->
int {
return transform_; }
81 auto operator==(wl_output* other)
const ->
bool {
return wl_ == other; }
82 auto wl() const -> wl_output* {
return wl_; }
85 static void handle_geometry(
87 struct wl_output* wl_output,
90 int32_t physical_width,
91 int32_t physical_height,
96 static void handle_mode(
98 struct wl_output* wl_output,
103 static void handle_done(
void* data,
struct wl_output* wl_output);
104 static void handle_scale(
void* data,
struct wl_output* wl_output, int32_t factor);
106 static wl_output_listener
const output_listener;
110 bool has_initialized;
127 auto display() const -> wl_display* {
return display_.get(); };
128 auto compositor() const -> wl_compositor* {
return compositor_; };
129 auto shm() const -> wl_shm* {
return shm_; };
130 auto seat() const -> wl_seat* {
return seat_; };
131 auto shell() const -> wl_shell* {
return shell_; };
141 std::unique_ptr<wl_display, decltype(&wl_display_roundtrip)> display_;
149 static void handle_new_global(
151 struct wl_registry* registry,
153 char const* interface,
155 static void handle_global_remove(
void* data,
struct wl_registry* registry, uint32_t name);
157 static wl_registry_listener
const registry_listener;
160 std::map<uint32_t, std::function<void()>> global_remove_handlers;
163 #endif // MIRAL_WAYLAND_APP_H
Definition: wayland_app.h:74
auto transform() const -> int
Definition: wayland_app.h:80
virtual void output_changed(WaylandOutput const *)
Definition: wayland_app.h:136
virtual void output_gone(WaylandOutput const *)
Definition: wayland_app.h:137
virtual ~WaylandOutput()=default
friend WaylandOutput
Definition: wayland_app.h:131
auto operator==(wl_output *other) const -> bool
Definition: wayland_app.h:81
auto compositor() const -> wl_compositor *
Definition: wayland_app.h:128
void wayland_init(wl_display *display)
Needs to be two-step initialized to virtual methods are called.
Definition: wayland_app.cpp:126
WaylandObject(T *proxy, void(*destroy)(T *))
Definition: wayland_app.h:40
auto scale() const -> int
Definition: wayland_app.h:79
WaylandOutput(WaylandApp *app, wl_output *output)
Definition: wayland_app.cpp:47
auto seat() const -> wl_seat *
Definition: wayland_app.h:130
void roundtrip() const
Definition: wayland_app.cpp:140
auto shell() const -> wl_shell *
Definition: wayland_app.h:131
WaylandObject()
Definition: wayland_app.h:35
Definition: wayland_app.h:33
Definition: wayland_app.h:117
WaylandApp()
Definition: wayland_app.cpp:115
auto display() const -> wl_display *
Definition: wayland_app.h:127
virtual ~WaylandApp()=default
auto wl() const -> wl_output *
Definition: wayland_app.h:82
static void create(wl_callback *callback, std::function< void()> &&func)
Takes ownership of callback.
Definition: wayland_app.cpp:33
auto shm() const -> wl_shm *
Definition: wayland_app.h:129
Definition: wayland_app.h:55
virtual void output_ready(WaylandOutput const *)
Definition: wayland_app.h:135
Copyright © 2012-2021
Canonical Ltd.
Generated on Thu Jun 24 19:55:23 UTC 2021
This documentation is licensed under the GPL version 2 or 3.