Deki 1.3.0
Modular C++ 2D engine for embedded displays and desktop
Loading...
Searching...
No Matches
IDekiRenderSystem Class Referenceabstract

Abstract interface for the rendering system. More...

#include <IDekiRenderSystem.h>

Public Member Functions

virtual ~IDekiRenderSystem ()=default
virtual bool Setup (int32_t width, int32_t height, DekiColorFormat format)=0
virtual void Render (Scene *current_scene)=0
virtual const uint8_t * GetFrameBuffer () const =0
virtual int32_t GetScreenWidth () const =0
virtual int32_t GetScreenHeight () const =0
virtual DekiColorFormat GetColorFormat () const =0
virtual void SetRenderer (DekiRenderer *renderer)=0
virtual DekiRenderer * GetRenderer () const =0
virtual void RenderToBuffer (Scene *scene, ICamera *camera, uint8_t *buffer, int32_t width, int32_t height, DekiColorFormat format)=0
 Render a scene to an external buffer (used by edit mode).
virtual void MarkAllDirty ()
 Force the next present to cover the whole framebuffer.
virtual const DekiRectGetPresentRects (int32_t *count) const
 The rectangles the last Render() left needing presentation.

Detailed Description

Abstract interface for the rendering system.

DekiEngine uses this interface to interact with the render system without linking to the concrete DekiRenderSystem implementation (which lives in the rendering package DLL).

Constructor & Destructor Documentation

◆ ~IDekiRenderSystem()

virtual IDekiRenderSystem::~IDekiRenderSystem ( )
virtualdefault

Member Function Documentation

◆ Setup()

virtual bool IDekiRenderSystem::Setup ( int32_t width,
int32_t height,
DekiColorFormat format )
pure virtual

◆ Render()

virtual void IDekiRenderSystem::Render ( Scene * current_scene)
pure virtual

◆ GetFrameBuffer()

virtual const uint8_t * IDekiRenderSystem::GetFrameBuffer ( ) const
pure virtual

◆ GetScreenWidth()

virtual int32_t IDekiRenderSystem::GetScreenWidth ( ) const
pure virtual

◆ GetScreenHeight()

virtual int32_t IDekiRenderSystem::GetScreenHeight ( ) const
pure virtual

◆ GetColorFormat()

virtual DekiColorFormat IDekiRenderSystem::GetColorFormat ( ) const
pure virtual

◆ SetRenderer()

virtual void IDekiRenderSystem::SetRenderer ( DekiRenderer * renderer)
pure virtual

◆ GetRenderer()

virtual DekiRenderer * IDekiRenderSystem::GetRenderer ( ) const
pure virtual

◆ RenderToBuffer()

virtual void IDekiRenderSystem::RenderToBuffer ( Scene * scene,
ICamera * camera,
uint8_t * buffer,
int32_t width,
int32_t height,
DekiColorFormat format )
pure virtual

Render a scene to an external buffer (used by edit mode).

◆ MarkAllDirty()

virtual void IDekiRenderSystem::MarkAllDirty ( )
inlinevirtual

Force the next present to cover the whole framebuffer.

For anything that changed pixels the renderer did not draw: a display swap, an overlay shown or hidden, a direct write to the framebuffer.

◆ GetPresentRects()

virtual const DekiRect * IDekiRenderSystem::GetPresentRects ( int32_t * count) const
inlinevirtual

The rectangles the last Render() left needing presentation.

DekiEngine::PresentFrame hands them to IDekiDisplay::PresentRegions when the display supports partial presents. *count == -1 means present everything (tracking off, or the frame is unknown); 0 means nothing changed; > 0 is the number of rectangles returned, valid until the next Render(). The default render system reports -1.


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