18 #ifndef MIR_COMPOSITOR_MULTI_MONITOR_ARBITER_H_ 19 #define MIR_COMPOSITOR_MULTI_MONITOR_ARBITER_H_ 31 namespace graphics {
class Buffer; }
32 namespace frontend {
class ClientBuffers; }
42 std::shared_ptr<frontend::ClientBuffers>
const& map,
43 std::shared_ptr<Schedule>
const& schedule);
46 void compositor_release(std::shared_ptr<graphics::Buffer>
const&)
override;
47 std::shared_ptr<graphics::Buffer> snapshot_acquire()
override;
48 void snapshot_release(std::shared_ptr<graphics::Buffer>
const&)
override;
49 void set_schedule(std::shared_ptr<Schedule>
const& schedule);
53 void advance_schedule();
57 void clean_onscreen_buffers(std::lock_guard<std::mutex>
const&);
59 std::mutex
mutable mutex;
61 std::shared_ptr<frontend::ClientBuffers>
const map;
64 ScheduleEntry(std::shared_ptr<graphics::Buffer>
const& buffer,
unsigned int use_count) :
69 std::shared_ptr<graphics::Buffer> buffer;
70 unsigned int use_count;
72 std::deque<ScheduleEntry> onscreen_buffers;
73 std::set<compositor::CompositorID> current_buffer_users;
74 std::shared_ptr<Schedule> schedule;
All things Mir.
Definition: atomic_callback.h:25
MultiMonitorMode
Definition: buffer_bundle.h:33
Definition: multi_monitor_arbiter.h:37
void const * CompositorID
Definition: compositor_id.h:27
Definition: buffer_bundle.h:39