Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
mir::examples::DemoRenderer Class Reference

#include <demo_renderer.h>

Inheritance diagram for mir::examples::DemoRenderer:
Inheritance graph
[legend]

Public Member Functions

 DemoRenderer (geometry::Rectangle const &display_area)
 
 ~DemoRenderer ()
 
void begin () const override
 
void tessellate (std::vector< Primitive > &primitives, graphics::Renderable const &renderable, geometry::Size const &buf_size) const override
 tessellate defines the list of triangles that will be used to render the surface. More...
 
void tessellate_shadow (std::vector< Primitive > &primitives, graphics::Renderable const &renderable, float radius) const
 
void tessellate_frame (std::vector< Primitive > &primitives, graphics::Renderable const &renderable, float titlebar_height) const
 
- Public Member Functions inherited from mir::compositor::GLRenderer
 GLRenderer (geometry::Rectangle const &display_area)
 
virtual ~GLRenderer () noexcept
 
void set_viewport (geometry::Rectangle const &rect) override
 
void set_rotation (float degrees) override
 
void begin () const override
 
void render (graphics::Renderable const &renderable, graphics::Buffer &buffer) const override
 
void end () const override
 
void suspend () override
 
virtual GLuint load_texture (graphics::Renderable const &renderable, graphics::Buffer &buffer) const
 Load the texture for a surface any which way you like. More...
 
- Public Member Functions inherited from mir::compositor::Renderer
virtual ~Renderer ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from mir::compositor::Renderer
 Renderer ()=default
 
 Renderer (const Renderer &)=delete
 
Rendereroperator= (const Renderer &)=delete
 

Constructor & Destructor Documentation

DemoRenderer::DemoRenderer ( geometry::Rectangle const &  display_area)
DemoRenderer::~DemoRenderer ( )

Member Function Documentation

void DemoRenderer::begin ( ) const
overridevirtual
void DemoRenderer::tessellate ( std::vector< Primitive > &  primitives,
graphics::Renderable const &  renderable,
geometry::Size const &  buf_size 
) const
overridevirtual

tessellate defines the list of triangles that will be used to render the surface.

By default it just returns 4 vertices for a rectangle. However you can override its behaviour to tessellate more finely and deform freely for effects like wobbly windows.

Parameters
[in,out]primitivesThe list of rendering primitives to be grown and/or modified.
[in]renderableThe renderable surface being tessellated.
[in]buf_sizeThe dimensions of the buffer being rendered, which can be particularly useful in calculating texcoords for a surface being actively resized (as the buf_size doesn't yet match renderable.size()).
Note
The cohesion of this function to GLRenderer is quite loose and it does not strictly need to reside here. However it seems a good choice under GLRenderer while this remains the only OpenGL-specific class in the display server, and tessellation is very much OpenGL-specific.

Reimplemented from mir::compositor::GLRenderer.

void DemoRenderer::tessellate_frame ( std::vector< Primitive > &  primitives,
graphics::Renderable const &  renderable,
float  titlebar_height 
) const
void DemoRenderer::tessellate_shadow ( std::vector< Primitive > &  primitives,
graphics::Renderable const &  renderable,
float  radius 
) const

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

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