19 #ifndef MIR_SCENE_SURFACE_STACK_H_ 20 #define MIR_SCENE_SURFACE_STACK_H_ 51 class RenderingTracker;
59 void surfaces_reordered()
override;
60 void scene_changed()
override;
61 void surface_exists(
Surface* surface)
override;
62 void end_observation()
override;
72 std::shared_ptr<SceneReport>
const& report);
82 void for_each(std::function<
void(std::shared_ptr<input::Surface>
const&)>
const& callback)
override;
84 virtual void remove_surface(std::weak_ptr<Surface>
const& surface)
override;
86 virtual void raise(std::weak_ptr<Surface>
const& surface)
override;
88 void raise(
SurfaceSet const& surfaces)
override;
91 std::shared_ptr<Surface>
const& surface,
94 auto surface_at(
geometry::Point)
const -> std::shared_ptr<Surface>
override;
96 void add_observer(std::shared_ptr<Observer>
const& observer)
override;
97 void remove_observer(std::weak_ptr<Observer>
const& observer)
override;
100 void add_input_visualization(std::shared_ptr<graphics::Renderable>
const&
overlay)
override;
101 void remove_input_visualization(std::weak_ptr<graphics::Renderable>
const& overlay)
override;
103 void emit_scene_changed()
override;
108 void create_rendering_tracker_for(std::shared_ptr<Surface>
const&);
109 void update_rendering_tracker_compositors();
113 std::shared_ptr<InputRegistrar>
const input_registrar;
114 std::shared_ptr<SceneReport>
const report;
116 std::vector<std::shared_ptr<Surface>> surfaces;
117 std::map<Surface*,std::shared_ptr<RenderingTracker>> rendering_trackers;
118 std::set<compositor::CompositorID> registered_compositors;
120 std::vector<std::shared_ptr<graphics::Renderable>> overlays;
123 std::atomic<bool> scene_changed;
All things Mir.
Definition: atomic_callback.h:25
Definition: hwc_layers.h:45
Definition: surface_stack.h:68
An observer for top level notifications of scene changes. In order to receive more granular change no...
Definition: observer.h:33
std::vector< std::shared_ptr< SceneElement >> SceneElementSequence
Definition: scene.h:38
surface_removed
Definition: scene_report_tp.h:46
surface_added
Definition: scene_report_tp.h:41
Definition: surface_stack.h:40
Definition: surface_stack.h:53
virtual ~SurfaceStack() noexcept(true)
Definition: surface_stack.h:73
a recursive read-write mutex.
Definition: recursive_read_write_mutex.h:31
std::set< std::weak_ptr< scene::Surface >, std::owner_less< std::weak_ptr< scene::Surface >>> SurfaceSet
Definition: surface_stack.h:43
void const * CompositorID
Definition: compositor_id.h:27
Definition: basic_observers.h:28