|
| virtual | ~IDekiDisplay ()=default |
| virtual bool | Initialize (int32_t width, int32_t height)=0 |
| | Initialize the platform display.
|
| virtual void | Shutdown ()=0 |
| | Shutdown the display and cleanup resources.
|
| virtual void | Present (const uint8_t *framebuffer, int width, int height, int format)=0 |
| | Present the frame buffer to the display.
|
| virtual bool | SupportsPartialPresent () const |
| | True when PresentRegions() pushes only the rectangles it is given.
|
| virtual void | PresentRegions (const uint8_t *framebuffer, int width, int height, int format, const DekiRect *rects, int32_t count) |
| | Present only rects of the framebuffer.
|
| virtual void | GetDisplaySize (int32_t *width, int32_t *height) const =0 |
| | Get the display dimensions.
|
| virtual bool | IsInitialized () const =0 |
| | Check if the display is initialized.
|
| virtual void | RequestFullRefresh ()=0 |
| | Request a full display refresh.
|
| virtual bool | ProcessEvents ()=0 |
| | Process platform events (window close, resize, etc.).
|
| virtual void * | CreateUIOverlay (int32_t width, int32_t height)=0 |
| virtual bool | UpdateUIOverlay (void *overlay, int32_t x, int32_t y, int32_t width, int32_t height, const uint32_t *pixels)=0 |
| virtual bool | UpdateUIOverlayRGB565A8 (void *overlay, int32_t x, int32_t y, int32_t width, int32_t height, const uint8_t *rgb565a8_pixels)=0 |
| virtual void | DestroyUIOverlay (void *overlay)=0 |
| virtual void | SetActiveUIOverlay (void *overlay)=0 |
| virtual void | ClearActiveUIOverlay ()=0 |
| virtual uint8_t * | GetRenderBuffer (int32_t *width, int32_t *height) |
| | Get a display-owned buffer suitable for direct rendering.
|
| virtual void | SetBacklight (bool on) |
| | Turn the display backlight on or off.
|
Abstract interface for display package operations.
This interface defines the contract that display packages must implement to work with the Deki engine. It abstracts display initialization, buffer management, and rendering operations.
Whichever platform integration package is loaded at runtime registers its concrete display via DekiEngine::SetDisplay(this, name). Engine-core owns no concrete display logic — only the IDekiDisplay* pointer and the lifecycle coordination around it.
| virtual void IDekiDisplay::PresentRegions |
( |
const uint8_t * | framebuffer, |
|
|
int | width, |
|
|
int | height, |
|
|
int | format, |
|
|
const DekiRect * | rects, |
|
|
int32_t | count ) |
|
inlinevirtual |
Present only rects of the framebuffer.
Rectangles are framebuffer pixels, half-open, already clipped to the buffer; they may overlap. count 0 means nothing changed since the last present: a windowed display still redraws its window from the texture it holds, an LCD does nothing. The default pushes the whole frame, so a display that does not override this behaves exactly as before.
Reimplemented in EditorDisplay.