46 operator=(
const dmabuf_t &) =
delete;
53 listen(zwlr_export_dmabuf_manager_v1 *dmabuf_manager, wl_output *output,
bool blend_cursor =
false);
59 zwlr_export_dmabuf_frame_v1 *frame,
60 std::uint32_t width, std::uint32_t height,
61 std::uint32_t x, std::uint32_t y,
62 std::uint32_t buffer_flags, std::uint32_t flags,
64 std::uint32_t high, std::uint32_t low,
65 std::uint32_t obj_count);
69 zwlr_export_dmabuf_frame_v1 *frame,
75 std::uint32_t plane_index);
79 zwlr_export_dmabuf_frame_v1 *frame,
80 std::uint32_t tv_sec_hi, std::uint32_t tv_sec_lo, std::uint32_t tv_nsec);
84 zwlr_export_dmabuf_frame_v1 *frame,
85 std::uint32_t reason);
89 return current_frame == &frames[0] ? &frames[1] : &frames[0];
94 std::array<frame_t, 2> frames;
97 zwlr_export_dmabuf_frame_v1_listener listener;
113 xdg_name(zxdg_output_v1 *,
const char *name);
115 xdg_description(zxdg_output_v1 *,
const char *description);
117 xdg_position(zxdg_output_v1 *, std::int32_t x, std::int32_t y);
119 xdg_size(zxdg_output_v1 *, std::int32_t width, std::int32_t height);
121 xdg_done(zxdg_output_v1 *) {}
124 wl_geometry(wl_output *wl_output, std::int32_t x, std::int32_t y,
125 std::int32_t physical_width, std::int32_t physical_height, std::int32_t subpixel,
126 const char *make,
const char *model, std::int32_t transform) {}
128 wl_mode(wl_output *wl_output, std::uint32_t flags,
129 std::int32_t width, std::int32_t height, std::int32_t refresh);
131 wl_done(wl_output *wl_output) {}
133 wl_scale(wl_output *wl_output, std::int32_t factor) {}
136 listen(zxdg_output_manager_v1 *output_manager);
141 std::string description;
145 wl_output_listener wl_listener;
146 zxdg_output_v1_listener xdg_listener;
152 std::uint32_t version;
173 listen(wl_registry *registry);
175 std::vector<std::unique_ptr<
monitor_t>> monitors;
177 zwlr_export_dmabuf_manager_v1 *dmabuf_manager;
178 zxdg_output_manager_v1 *output_manager;
182 return interface[bit];
187 add_interface(wl_registry *registry, std::uint32_t
id,
const char *interface, std::uint32_t version);
189 del_interface(wl_registry *registry, uint32_t
id);
191 std::bitset<MAX_INTERFACES> interface;
193 wl_registry_listener listener;
int init(const char *display_name=nullptr)
Initialize display. If display_name == nullptr -> display_name = std::getenv("WAYLAND_DISPLAY")
Definition wayland.cpp:39
bool dispatch(std::chrono::milliseconds timeout)
Waits up to the specified timeout to dispatch new events on the wl_display.
Definition wayland.cpp:71
std::unique_ptr< platf::deinit_t > init(const std::filesystem::path &persistence_filepath, const config::video_t &video_config)
Initialize the implementation and perform the initial state recovery (if needed).
Definition display_device.cpp:721