Mir
Public Member Functions | List of all members
mir::scene::SurfaceStack Class Reference

#include <surface_stack.h>

Inheritance diagram for mir::scene::SurfaceStack:
[legend]

Public Member Functions

 SurfaceStack (std::shared_ptr< SceneReport > const &report)
 
virtual ~SurfaceStack () noexcept(true)
 
compositor::SceneElementSequence scene_elements_for (compositor::CompositorID id) override
 Generate a valid sequence of scene elements based on the current state of the Scene. More...
 
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 latest data in the scene. More...
 
void register_compositor (compositor::CompositorID id) override
 
void unregister_compositor (compositor::CompositorID id) override
 
void for_each (std::function< void(std::shared_ptr< input::Surface > const &)> const &callback) override
 
virtual void remove_surface (std::weak_ptr< Surface > const &surface) override
 
virtual void raise (std::weak_ptr< Surface > const &surface) override
 
void add_surface (std::shared_ptr< Surface > const &surface, DepthId depth, input::InputReceptionMode input_mode) override
 
void add_observer (std::shared_ptr< Observer > const &observer) override
 
void remove_observer (std::weak_ptr< Observer > const &observer) override
 
void add_input_visualization (std::shared_ptr< graphics::Renderable > const &overlay) override
 
void remove_input_visualization (std::weak_ptr< graphics::Renderable > const &overlay) override
 
void emit_scene_changed () override
 
- Public Member Functions inherited from mir::compositor::Scene
virtual ~Scene ()
 
virtual void add_observer (std::shared_ptr< scene::Observer > const &observer)=0
 
- Public Member Functions inherited from mir::input::Scene
virtual ~Scene ()=default
 
virtual void for_each (std::function< void(std::shared_ptr< input::Surface > const &)> const &callback)=0
 
virtual void add_observer (std::shared_ptr< scene::Observer > const &observer)=0
 
- Public Member Functions inherited from mir::scene::SurfaceStackModel
virtual ~SurfaceStackModel ()
 

Additional Inherited Members

- Protected Member Functions inherited from mir::compositor::Scene
 Scene ()=default
 
- Protected Member Functions inherited from mir::input::Scene
 Scene ()=default
 
 Scene (Scene const &)=delete
 
Sceneoperator= (Scene const &)=delete
 
- Protected Member Functions inherited from mir::scene::SurfaceStackModel
 SurfaceStackModel ()=default
 
 SurfaceStackModel (const SurfaceStackModel &)=delete
 
SurfaceStackModeloperator= (const SurfaceStackModel &)=delete
 

Constructor & Destructor Documentation

mir::scene::SurfaceStack::SurfaceStack ( std::shared_ptr< SceneReport > const &  report)
explicit
virtual mir::scene::SurfaceStack::~SurfaceStack ( )
inlinevirtualnoexcept

Member Function Documentation

void mir::scene::SurfaceStack::add_input_visualization ( std::shared_ptr< graphics::Renderable > const &  overlay)
overridevirtual

Implements mir::input::Scene.

void mir::scene::SurfaceStack::add_observer ( std::shared_ptr< Observer > const &  observer)
override
void mir::scene::SurfaceStack::add_surface ( std::shared_ptr< Surface > const &  surface,
DepthId  depth,
input::InputReceptionMode  input_mode 
)
overridevirtual
void mir::scene::SurfaceStack::emit_scene_changed ( )
overridevirtual

Implements mir::input::Scene.

void mir::scene::SurfaceStack::for_each ( std::function< void(std::shared_ptr< input::Surface > const &)> const &  callback)
override
int mir::scene::SurfaceStack::frames_pending ( compositor::CompositorID  id) const
overridevirtual

Return the number of additional frames that you need to render to get fully up to date with the latest data in the scene.

For a generic "scene change" this will be just 1. For surfaces that have multiple frames queued up however, it could be greater than 1. When the result reaches zero, you know you have consumed all the latest data from the scene.

Implements mir::compositor::Scene.

void mir::scene::SurfaceStack::raise ( std::weak_ptr< Surface > const &  surface)
overridevirtual
void mir::scene::SurfaceStack::register_compositor ( compositor::CompositorID  id)
overridevirtual
void mir::scene::SurfaceStack::remove_input_visualization ( std::weak_ptr< graphics::Renderable > const &  overlay)
overridevirtual

Implements mir::input::Scene.

void mir::scene::SurfaceStack::remove_observer ( std::weak_ptr< Observer > const &  observer)
overridevirtual

Implements mir::input::Scene.

void mir::scene::SurfaceStack::remove_surface ( std::weak_ptr< Surface > const &  surface)
overridevirtual
mc::SceneElementSequence mir::scene::SurfaceStack::scene_elements_for ( compositor::CompositorID  id)
overridevirtual

Generate a valid sequence of scene elements based on the current state of the Scene.

Parameters
[in]idAn arbitrary unique identifier used to distinguish separate compositors which need to receive a sequence for rendering. Calling with the same id will return a new (different) sequence to that user each time. For consistency, all callers need to determine their id in the same way (e.g. always use "this" pointer).
Returns
a sequence of mc::SceneElements for the compositor id. The sequence is in stacking order from back to front.

Implements mir::compositor::Scene.

void mir::scene::SurfaceStack::unregister_compositor ( compositor::CompositorID  id)
overridevirtual

The documentation for this class was generated from the following files:

Copyright © 2012,2013 Canonical Ltd.
Generated on Tue Mar 24 16:15:19 UTC 2015