DEKI/ENGINE docs
Deki 0.19.0
Modular C++ 2D engine for embedded displays and desktop
Loading...
Searching...
No Matches
Deki::IRenderSystem Class Referenceabstract

The render system as the engine sees it, so it need not link to the implementation in the rendering package DLL. More...

#include <deki/providers/IRenderSystem.h>

Public Member Functions

virtual ~IRenderSystem ()=default
virtual bool Setup (int32_t width, int32_t height, ColorFormat format)=0
virtual void Render (Scene *currentScene)=0
virtual const uint8_t * GetFrameBuffer () const =0
virtual int32_t GetScreenWidth () const =0
virtual int32_t GetScreenHeight () const =0
virtual ColorFormat GetColorFormat () const =0
virtual void SetRenderer (DekiRendering::DekiRenderer *renderer)=0
virtual DekiRendering::DekiRenderer * GetRenderer () const =0
virtual void RenderToBuffer (Scene *scene, ICamera *camera, uint8_t *buffer, int32_t width, int32_t height, ColorFormat format)=0
 Renders scene through camera into a caller's buffer (edit mode).
virtual void MarkAllDirty ()
 Makes the next present cover the whole framebuffer.
virtual const Rect * GetPresentRects (int32_t *count) const
 The rectangles the last Render() changed, which Engine::PresentFrame passes to IDisplay::PresentRegions when the display supports partial presents.

Detailed Description

The render system as the engine sees it, so it need not link to the implementation in the rendering package DLL.

Constructor & Destructor Documentation

◆ ~IRenderSystem()

virtual Deki::IRenderSystem::~IRenderSystem ( )
virtualdefault

Member Function Documentation

◆ Setup()

virtual bool Deki::IRenderSystem::Setup ( int32_t width,
int32_t height,
ColorFormat format )
pure virtual

◆ Render()

virtual void Deki::IRenderSystem::Render ( Scene * currentScene)
pure virtual

◆ GetFrameBuffer()

virtual const uint8_t * Deki::IRenderSystem::GetFrameBuffer ( ) const
pure virtual

◆ GetScreenWidth()

virtual int32_t Deki::IRenderSystem::GetScreenWidth ( ) const
pure virtual

◆ GetScreenHeight()

virtual int32_t Deki::IRenderSystem::GetScreenHeight ( ) const
pure virtual

◆ GetColorFormat()

virtual ColorFormat Deki::IRenderSystem::GetColorFormat ( ) const
pure virtual

◆ SetRenderer()

virtual void Deki::IRenderSystem::SetRenderer ( DekiRendering::DekiRenderer * renderer)
pure virtual

◆ GetRenderer()

virtual DekiRendering::DekiRenderer * Deki::IRenderSystem::GetRenderer ( ) const
pure virtual

◆ RenderToBuffer()

virtual void Deki::IRenderSystem::RenderToBuffer ( Scene * scene,
ICamera * camera,
uint8_t * buffer,
int32_t width,
int32_t height,
ColorFormat format )
pure virtual

Renders scene through camera into a caller's buffer (edit mode).

◆ MarkAllDirty()

virtual void Deki::IRenderSystem::MarkAllDirty ( )
inlinevirtual

Makes the next present cover the whole framebuffer.

Call it after pixels change that the renderer did not draw: a display swap, an overlay shown or hidden, a direct write to the framebuffer.

◆ GetPresentRects()

virtual const Rect * Deki::IRenderSystem::GetPresentRects ( int32_t * count) const
inlinevirtual

The rectangles the last Render() changed, which Engine::PresentFrame passes to IDisplay::PresentRegions when the display supports partial presents.

*count -1 means present everything (tracking off, or the frame is unknown); 0 means nothing changed; above 0 it is the number of rectangles, valid until the next Render(). The default reports -1.


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