Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | List of all members
mir::graphics::Renderable Class Referenceabstract

#include <renderable.h>

Inheritance diagram for mir::graphics::Renderable:
Inheritance graph
[legend]

Public Member Functions

virtual std::shared_ptr< Bufferbuffer (void const *user_id) const =0
 Return the next buffer that should be composited/rendered. More...
 
virtual bool alpha_enabled () const =0
 
virtual geometry::Rectangle screen_position () const =0
 
virtual float alpha () const =0
 
virtual glm::mat4 transformation () const =0
 Transformation returns the transformation matrix that should be applied to the surface. More...
 
virtual bool visible () const =0
 TODO: Its a bit questionable that we have this member function, why not just trim the renderable from the RenderableList? Its convenient to have this function temporarily while refactoring –kdub. More...
 
virtual bool shaped () const =0
 
virtual int buffers_ready_for_compositor () const =0
 

Protected Member Functions

 Renderable ()=default
 
virtual ~Renderable ()=default
 
 Renderable (Renderable const &)=delete
 
Renderableoperator= (Renderable const &)=delete
 

Constructor & Destructor Documentation

mir::graphics::Renderable::Renderable ( )
protecteddefault
virtual mir::graphics::Renderable::~Renderable ( )
protectedvirtualdefault
mir::graphics::Renderable::Renderable ( Renderable const &  )
protecteddelete

Member Function Documentation

virtual float mir::graphics::Renderable::alpha ( ) const
pure virtual
virtual bool mir::graphics::Renderable::alpha_enabled ( ) const
pure virtual
virtual std::shared_ptr<Buffer> mir::graphics::Renderable::buffer ( void const *  user_id) const
pure virtual

Return the next buffer that should be composited/rendered.

Parameters
[in]user_idAn arbitrary unique identifier used to distinguish separate threads/monitors/components which need to concurrently receive the same buffer. Calling with the same user_id will return a new (different) buffer to that user each time. For consistency, all callers need to determine their user_id in the same way (e.g. always use "this" pointer).

Implemented in mir::scene::BasicSurface, mir::test::doubles::FakeRenderable, and mir::test::doubles::StubRenderable.

virtual int mir::graphics::Renderable::buffers_ready_for_compositor ( ) const
pure virtual
Renderable& mir::graphics::Renderable::operator= ( Renderable const &  )
protecteddelete
virtual geometry::Rectangle mir::graphics::Renderable::screen_position ( ) const
pure virtual
virtual bool mir::graphics::Renderable::shaped ( ) const
pure virtual
virtual glm::mat4 mir::graphics::Renderable::transformation ( ) const
pure virtual

Transformation returns the transformation matrix that should be applied to the surface.

By default when there are no transformations this will be the identity matrix.

Warning
As this functionality is presently only used by mir_demo_standalone_render_surfaces for rotations it may be deprecated in future. It is expected that real transformations may become more transient things (e.g. applied by animation logic externally instead of being a semi-permanent attribute of the surface itself).

Implemented in mir::scene::BasicSurface, mir::test::doubles::FakeRenderable, and mir::test::doubles::StubRenderable.

virtual bool mir::graphics::Renderable::visible ( ) const
pure virtual

TODO: Its a bit questionable that we have this member function, why not just trim the renderable from the RenderableList? Its convenient to have this function temporarily while refactoring –kdub.

Implemented in mir::scene::BasicSurface, mir::test::doubles::FakeRenderable, and mir::test::doubles::StubRenderable.


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

Copyright © 2012,2013 Canonical Ltd.
Generated on Fri Apr 11 21:14:53 UTC 2014