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

The framebuffer contract: logical render resolution and color format. More...

#include <DisplayProjectSettings.h>

Inherits DekiComponent.

Public Attributes

int32_t targetWidth = 320
int32_t targetHeight = 240
DekiColorFormat colorFormat = DekiColorFormat::RGB565

Additional Inherited Members

Public Member Functions inherited from DekiComponent
 DekiComponent ()
virtual ~DekiComponent ()=default
 DekiComponent (const DekiComponent &)=delete
DekiComponentoperator= (const DekiComponent &)=delete
virtual ComponentType GetType () const =0
virtual ComponentType GetBaseType () const
virtual DekiBehaviourAsBehaviour ()
virtual bool DeclaresUpdate () const
 Does this class (or a reflected base) declare Update()?
DekiObjectGetOwner () const
void SetOwner (DekiObject *owner)
virtual void LoadAssets ()
 Load assets needed by this component.
virtual void UnloadAssets ()
 Unload/clear assets held by this component.
virtual void RuntimeUpdate (float deltaTime)
 Update this component (runtime only).
virtual void OnAssetRefResolved (const char *propertyName, void *asset, const char *guid)
 Called after an AssetRef property is resolved by LifecycleManager.
virtual bool NeedsAssetLoading () const
 Check if this component needs asset loading.
virtual bool NeedsRuntimeUpdate () const
 Check if this component needs runtime updates.
virtual bool Deserialize (SceneFormat::SceneMsgPackParser &parser, uint32_t mapSize)
 Deserialize component data from MessagePack.
virtual void ResolveObjectRefs (class Scene *scene)
 Resolve all ObjectRef properties in this component.
virtual void RemapObjectRefs (const std::unordered_map< uint32_t, uint32_t > &idRemap)
 Remap ObjectRef IDs after cloning/instantiation.
bool HasRefsResolved () const
void MarkRefsResolved ()
void ResetRefsResolved ()
virtual void OnPropertyChanged (const char *propertyName)
 Called when a property is modified via the editor.
Static Public Attributes inherited from DekiComponent
static constexpr ComponentType StaticType = 0
Protected Attributes inherited from DekiComponent
DekiObjectm_Owner
bool m_RefsResolved

Detailed Description

The framebuffer contract: logical render resolution and color format.

Registered under the "Framebuffer" section — this is exactly the triple passed to IDekiRenderSystem::Setup(width, height, format), so it is renderer-agnostic and dictated by the target hardware rather than chosen by a renderer. The editor's Project Settings panel renders these fields via reflection; persistence goes through Project::Save/Load (deki.json) and ProjectSettings::Write/Load (dproject.bin) for the runtime device.

targetWidth / targetHeight is the logical resolution — what the engine renders into. On embedded the panel size matches this exactly. On desktop preview, SDL3 handles the integer-multiple upscale via SDL_SetRenderLogicalPresentation with nearest-neighbor sampling.

Member Data Documentation

◆ targetWidth

int32_t DisplayProjectSettings::targetWidth = 320

◆ targetHeight

int32_t DisplayProjectSettings::targetHeight = 240

◆ colorFormat

DekiColorFormat DisplayProjectSettings::colorFormat = DekiColorFormat::RGB565

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