Graphics::RenderQueue Class Reference

Top-level manager to queue objects for rendering to a specific target. More...

#include <RenderQueue.h>

Inheritance diagram for Graphics::RenderQueue:
Collaboration diagram for Graphics::RenderQueue:

Public Types

using Completed = Delegate< void(Object *object)>
 

Public Member Functions

 RenderQueue (RenderTarget &target, uint8_t surfaceCount=2, size_t bufferSize=0)
 Constructor. More...
 
template<typename T >
void render (T *object, const Location &location, typename T::Callback callback=nullptr, uint16_t delayMs=0)
 Add object to the render queue and start rendering if it isn't already. More...
 
template<typename T >
void render (T *object, typename T::Callback callback=nullptr, uint16_t delayMs=0)
 
bool isActive () const
 

Detailed Description

Top-level manager to queue objects for rendering to a specific target.

Use this to render single objects, typically Scenes or Drawings

Member Typedef Documentation

◆ Completed

Constructor & Destructor Documentation

◆ RenderQueue()

Graphics::RenderQueue::RenderQueue ( RenderTarget target,
uint8_t  surfaceCount = 2,
size_t  bufferSize = 0 
)
inline

Constructor.

Parameters
targetWhere to render scenes
bufferSizeSize of each allocated surface buffer. Specify 0 to use default.
surfaceCountNumber of surfaces to allocate

Surfaces are created by the target display device.

For minimum RAM usage use a single surface.

For best performance use two, so one can be prepared whilst the other is being written to the screen.

The RenderQueue owns these surfaces.

Member Function Documentation

◆ isActive()

bool Graphics::RenderQueue::isActive ( ) const
inline

◆ render() [1/2]

template<typename T >
void Graphics::RenderQueue::render ( T *  object,
const Location location,
typename T::Callback  callback = nullptr,
uint16_t  delayMs = 0 
)
inline

Add object to the render queue and start rendering if it isn't already.

Parameters
objectScene, Drawing, etc. to render
locationWhere to draw the object
callbackOptional callback to invoke when render is complete
delayMsDelay between render completion and callback

◆ render() [2/2]

template<typename T >
void Graphics::RenderQueue::render ( T *  object,
typename T::Callback  callback = nullptr,
uint16_t  delayMs = 0 
)
inline

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