|
Deki 1.3.0
Modular C++ 2D engine for embedded displays and desktop
|
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 | |
| DekiComponent & | operator= (const DekiComponent &)=delete |
| virtual ComponentType | GetType () const =0 |
| virtual ComponentType | GetBaseType () const |
| virtual DekiBehaviour * | AsBehaviour () |
| virtual bool | DeclaresUpdate () const |
| Does this class (or a reflected base) declare Update()? | |
| DekiObject * | GetOwner () 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 | |
| DekiObject * | m_Owner |
| bool | m_RefsResolved |
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.
| int32_t DisplayProjectSettings::targetWidth = 320 |
| int32_t DisplayProjectSettings::targetHeight = 240 |
| DekiColorFormat DisplayProjectSettings::colorFormat = DekiColorFormat::RGB565 |