19 #ifndef MIR_SCENE_SCENETACK_H_
20 #define MIR_SCENE_SCENETACK_H_
38 class OperatorForScene;
43 struct SurfaceCreationParameters;
48 class InputChannelFactory;
64 std::shared_ptr<InputRegistrar>
const& input_registrar,
65 std::shared_ptr<SceneReport>
const& report);
78 void for_each(std::function<
void(std::shared_ptr<input::InputChannel>
const&)>
const& callback);
80 virtual void remove_surface(std::weak_ptr<Surface>
const& surface)
override;
82 virtual void raise(std::weak_ptr<Surface>
const& surface)
override;
85 std::shared_ptr<Surface>
const& surface,
93 void emit_change_notification();
95 std::recursive_mutex
mutable guard;
96 std::shared_ptr<InputRegistrar>
const input_registrar;
97 std::shared_ptr<SceneReport>
const report;
98 std::function<void()>
const change_cb;
100 typedef std::vector<std::shared_ptr<Surface>> Layer;
101 std::map<DepthId, Layer> layers_by_depth;
103 std::mutex notify_change_mutex;
104 std::function<void()> notify_change;
Definition: surface_stack_model.h:41
virtual void remove_surface(std::weak_ptr< Surface > const &surface) override
Definition: surface_stack.h:60
void for_each(std::function< void(std::shared_ptr< input::InputChannel > const &)> const &callback)
true
Definition: display_configuration.cpp:30
std::list< std::shared_ptr< Renderable > > RenderableList
Definition: renderable.h:88
virtual ~SurfaceStack() noexcept(true)
Definition: surface_stack.h:66
graphics::RenderableList generate_renderable_list() const
Generate a valid list of renderables based on the current state of the Scene.
virtual void for_each_if(compositor::FilterForScene &filter, compositor::OperatorForScene &op)
void add_surface(std::shared_ptr< Surface > const &surface, DepthId depth, input::InputReceptionMode input_mode) override
SurfaceStack(std::shared_ptr< InputRegistrar > const &input_registrar, std::shared_ptr< SceneReport > const &report)
Definition: surface_stack.cpp:50
virtual void set_change_callback(std::function< void()> const &f)
Sets a callback to be called whenever the state of the Scene changes.