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; }
48 std::shared_ptr<frontend::ClientBuffers>
const& map,
49 std::shared_ptr<Schedule>
const& schedule);
52 void compositor_release(std::shared_ptr<graphics::Buffer>
const&)
override;
53 std::shared_ptr<graphics::Buffer> snapshot_acquire()
override;
54 void snapshot_release(std::shared_ptr<graphics::Buffer>
const&)
override;
55 void set_schedule(std::shared_ptr<Schedule>
const& schedule);
59 void advance_schedule();
63 void clean_onscreen_buffers(std::lock_guard<std::mutex>
const&);
65 std::mutex
mutable mutex;
67 std::shared_ptr<frontend::ClientBuffers>
const map;
70 ScheduleEntry(std::shared_ptr<graphics::Buffer>
const& buffer,
unsigned int use_count) :
75 std::shared_ptr<graphics::Buffer> buffer;
76 unsigned int use_count;
78 std::deque<ScheduleEntry> onscreen_buffers;
79 std::set<compositor::CompositorID> current_buffer_users;
80 std::shared_ptr<Schedule> schedule;
All things Mir.
Definition: atomic_callback.h:25
MultiMonitorMode
Definition: multi_monitor_arbiter.h:37
Definition: multi_monitor_arbiter.h:43
void const * CompositorID
Definition: compositor_id.h:27
Definition: buffer_bundle.h:33