19 #ifndef MIR_COMPOSITOR_MULTI_THREADED_COMPOSITOR_H_
20 #define MIR_COMPOSITOR_MULTI_THREADED_COMPOSITOR_H_
38 class DisplayBufferCompositorFactory;
39 class CompositingFunctor;
41 class CompositorReport;
47 std::shared_ptr<Scene>
const& scene,
48 std::shared_ptr<DisplayBufferCompositorFactory>
const& db_compositor_factory,
49 std::shared_ptr<CompositorReport>
const& compositor_report,
50 bool compose_on_start);
57 std::shared_ptr<graphics::Display>
const display;
58 std::shared_ptr<Scene>
const scene;
59 std::shared_ptr<DisplayBufferCompositorFactory>
const display_buffer_compositor_factory;
60 std::shared_ptr<CompositorReport>
const report;
62 std::vector<std::unique_ptr<CompositingFunctor>> thread_functors;
63 std::vector<std::thread> threads;
65 std::mutex started_guard;
67 bool compose_on_start;
69 void schedule_compositing();
MultiThreadedCompositor(std::shared_ptr< graphics::Display > const &display, std::shared_ptr< Scene > const &scene, std::shared_ptr< DisplayBufferCompositorFactory > const &db_compositor_factory, std::shared_ptr< CompositorReport > const &compositor_report, bool compose_on_start)
Definition: multi_threaded_compositor.cpp:146
~MultiThreadedCompositor()
Definition: multi_threaded_compositor.cpp:161
void stop()
Definition: multi_threaded_compositor.cpp:211
Definition: multi_threaded_compositor.h:43
void start()
Definition: multi_threaded_compositor.cpp:174
Definition: compositor.h:27