19 #ifndef MIR_SCENE_SURFACE_STACK_H_
20 #define MIR_SCENE_SURFACE_STACK_H_
50 class RenderingTracker;
71 std::shared_ptr<SceneReport>
const& report);
81 void for_each(std::function<
void(std::shared_ptr<input::Surface>
const&)>
const& callback)
override;
83 virtual void remove_surface(std::weak_ptr<Surface>
const& surface)
override;
85 virtual void raise(std::weak_ptr<Surface>
const& surface)
override;
87 void raise(
SurfaceSet const& surfaces)
override;
90 std::shared_ptr<Surface>
const& surface,
108 void create_rendering_tracker_for(
std::shared_ptr<
Surface> const&);
109 void update_rendering_tracker_compositors();
111 std::mutex mutable guard;
113 std::shared_ptr<InputRegistrar> const input_registrar;
121 std::vector<
std::shared_ptr<graphics::Renderable>> overlays;
124 bool scene_changed = false;
All things Mir.
Definition: atomic_callback.h:25
Definition: surface_stack_model.h:37
void surface_added(Surface *surface) override
Definition: surface_stack.cpp:429
Definition: hwc_layers.h:45
Definition: surface_stack.h:67
Definition: scene_report.h:29
void surface_removed(Surface *surface) override
Definition: surface_stack.cpp:435
int frames_pending(compositor::CompositorID) const override
Return the number of additional frames that you need to render to get fully up to date with the lates...
Definition: surface_stack.cpp:159
An observer for top level notifications of scene changes. In order to receive more granular change no...
Definition: observer.h:33
std::set< std::weak_ptr< Surface >, std::owner_less< std::weak_ptr< Surface >>> SurfaceSet
Definition: surface_stack_model.h:40
void for_each(std::function< void(std::shared_ptr< input::Surface > const &)> const &callback) override
Definition: surface_stack.cpp:321
void emit_scene_changed() override
Definition: surface_stack.cpp:231
void add_input_visualization(std::shared_ptr< graphics::Renderable > const &overlay) override
Definition: surface_stack.cpp:204
void add_observer(std::shared_ptr< Observer > const &observer) override
Definition: surface_stack.cpp:403
std::vector< std::shared_ptr< SceneElement >> SceneElementSequence
Definition: scene.h:38
virtual void remove_surface(std::weak_ptr< Surface > const &surface) override
Definition: surface_stack.cpp:256
true
Definition: display_configuration.cpp:30
SurfaceStack(std::shared_ptr< SceneReport > const &report)
Definition: surface_stack.cpp:122
compositor::SceneElementSequence scene_elements_for(compositor::CompositorID id) override
Generate a valid sequence of scene elements based on the current state of the Scene.
Definition: surface_stack.cpp:128
void unregister_compositor(compositor::CompositorID id) override
Definition: surface_stack.cpp:195
Definition: surface_stack.h:52
virtual ~SurfaceStack() noexcept(true)
Definition: surface_stack.h:72
void remove_input_visualization(std::weak_ptr< graphics::Renderable > const &overlay) override
Definition: surface_stack.cpp:214
auto surface_at(geometry::Point) const -> std::shared_ptr< Surface > override
Definition: surface_stack.cpp:301
void remove_observer(std::weak_ptr< Observer > const &observer) override
Definition: surface_stack.cpp:418
void const * CompositorID
Definition: compositor_id.h:27
Definition: basic_observers.h:28
void end_observation() override
Definition: surface_stack.cpp:459
void surface_exists(Surface *surface) override
Definition: surface_stack.cpp:453
void surfaces_reordered() override
Definition: surface_stack.cpp:441
void add_surface(std::shared_ptr< Surface > const &surface, DepthId depth, input::InputReceptionMode input_mode) override
Definition: surface_stack.cpp:240
void register_compositor(compositor::CompositorID id) override
Definition: surface_stack.cpp:186
Definition: rendering_tracker.h:37
void scene_changed() override
Definition: surface_stack.cpp:447