DEKI/ENGINE docs
Deki 0.19.0
Modular C++ 2D engine for embedded displays and desktop
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
 CDeki::AllocContextWho asked for an allocation, filled in by the compiler
 CDekiEditor::EditorHttpUtils::ArchiveLinkA symbolic link in an archive: its entry name and the path it points to, as the archive stores them
 CDekiEditor::AssetCacheContextEverything a cache handler needs to write the cache files for one asset
 CDekiEditor::AssetDataWhat an asset's .data sidecar file holds: its GUID and its import settings as JSON, keyed by type name
 CDekiEditor::AssetDatabaseStatic asset import and GUID lookup for editor tools, like Unity's AssetDatabase
 CDekiEditor::AssetExportContextWhat an asset export encoder is given
 CDekiEditor::AssetExportTargetThe target an asset is stored for: a platform and its screen's format
 CDekiEditor::AssetFileWatcherOS file watcher that feeds AssetPipeline::Tick()
 CDeki::LoadedPack::AssetInfo
 CDekiEditor::AssetInfoA discovered asset
 CDeki::AssetLookupTable
 CDeki::AssetManager
 CDeki::AssetPackReader
 CDekiEditor::AssetPickerAsset picker popup
 CDekiEditor::AssetPickerEntry
 CDekiEditor::AssetPipelineThe asset import pipeline, like Unity's: finds assets, gives them GUIDs and compiles them into the cache
 CDeki::AssetRefBaseThe untyped part of AssetRef, so the asset system can reach guid and ptr without knowing T
  CDeki::AssetRef< T >Typed asset reference: use it like a T*
 CDekiEditor::AssetTypeEditorRegistry
 CDekiEditor::AssetTypeHandler
 CDekiEditor::AssetTypeRegistry
 CDekiEditor::AtlasFrame
 CDeki::AutoSetupRegistrar< T, Phase >
 CDeki::Buffer< T >Owning array of T, freed when it goes out of scope
 CDekiEditor::BuilderDefinition
 CDekiEditor::BuilderRegistryThe available firmware builders: the backends packages and plugins contribute, plus builder DLL plugins loaded from ~/.deki-editor/builders/
 CDekiEditor::BuildOptions
 CDekiEditor::BuildProgress
 CDekiEditor::BuildStripSettings
 CDekiEditor::ChromaKeySettings
 CDekiEditor::CliToolContextWhat a package's CLI tool may use of the running editor
 CDeki::ColorAn RGBA colour, 8 bits per channel, with conversions to and from packed formats (RGB565, RGB888, ARGB8888, RGBA8888), floats and HSV
 CDekiEditor::CommandAn undoable edit
  CDekiEditor::CompoundCommandSeveral commands undone and redone as one
 CDekiEditor::CommandHistoryThe undo/redo history. Commands that arrive close together can merge
 CDeki::ComponentThe base class of every component
  CDeki::CoreProjectSettings
  CDeki::PlatformSetupComponentRuns the boot scene's SetupComponents (such as SDCardComponent) one at a time, in order, waiting for each to finish, then loads the startup scene
  CDeki::ScreenAnchorKeeps its object at a point on the screen, such as the top-left corner, on every screen size and while the camera moves
  CDeki::SetupComponentBase class for components that need asynchronous setup at boot
  CDeki::UnitProjectSettings
 CDekiEditor::ComponentDef
 CDeki::ComponentFactoryCreates components by type id and tells which class an id belongs to
 CDeki::ComponentMetaComponent metadata for runtime reflection
 CDeki::ComponentRegistry
 CDeki::ComponentsMigrationRegistrar
 CDeki::ComponentTypeInfoEverything the engine knows about one component class
 CDekiEditor::ComponentUsage
 CCoreDependencyA dependency the editor manages itself; the user never edits it
 CDekiEditor::CreateMenuEntryAn item in the hierarchy's right-click "Create Object" menu, registered by a package
 CDekiEditor::CreateMenuRegistry
 CDekiEditor::CustomEditorRegistry
 CDekiEditor::DeadMemoryMemory that is about to be freed, described as byte ranges
 CDekiEditor::DecodedImage
 CDekiBuilderAbiWhat the plugin was compiled against
 CDekiReflectionAbiLayout fingerprint of the structs that cross DLL boundaries
 CDependencyInfo
 CDekiEditor::DeployTargetOne thing a build can be deployed to, as the backend enumerates them
 CDekiEditor::DialogButtonSpec
 CDeki::ProjectSettings::DisplaySettings
 CDekiEditor::DownloadProgress
 CDeki::DPackEntry
 CDeki::DPackHeader
 CDekiEditor::EditorUI::EditCallbacksBytes
 CDekiEditor::EditorApplicationThe editor's state as seen by EditorWindow and CustomEditor code, like Unity's static editor access: auto& app = EditorApplication::Get(); const char* projectPath = app.GetProjectPath(); Deki::Object* selected = app.GetActiveObject();
 CDekiEditor::EditorAssetsLoads assets onto the GPU for the editor, cached by GUID: uint32_t texId = EditorAssets::Get()->LoadTexture(guid, &w, &h); Deki2D::BitmapFont* font = EditorAssets::Get()->GetBitmapFont(bakedGuid);
 CDekiEditor::EditorExtension
  CDekiEditor::AssetTypeEditor
  CDekiEditor::CliToolA tool a package adds to the editor's command line and MCP server
  CDekiEditor::CustomEditorCustom editor for one component type, like Unity's CustomEditor: it can replace the component's Inspector UI and tell the scene view its size
  CDekiEditor::FileInspector
 CDekiEditorInternal::EditorFactoryInfoHow to make one kind of editor extension
 CDekiEditor::EditorHttpUtilsHTTP and archive helpers for the whole editor
 CDekiEditor::EditorPathsWhere the editor keeps its files
 CDekiEditorInternal::EditorRegistrar< T >Registers editor class T at static init: a static prototype for metadata, and a factory that makes new instances on demand
 CDekiEditorInternal::EditorRegistryCollects the editor factories that static initializers register when a DLL loads
 CDekiEditor::EditorSettingsThe editor's own settings, saved per user
 CDekiEditor::EditorUIThe editor's UI controls and inspector drawing, for CustomEditor code: auto& ui = EditorUI::Get(); ui.DrawDefaultInspector(); ui.PropertyField("speed");
 CDekiEditor::EditorWindowBase class for standalone editor windows
 CDekiEditor::EditorWindowMeta
 CDeki::EngineEngine singleton: owns the scene system, lifecycle and frame loop
 CDeki::EngineHost
 CDeki::EngineSettings
 CDekiEditor::EditorUI::EnumCallbacks
 CDekiEditor::AssetFileWatcher::Event
 CDekiEditor::FallbackDef
 CDekiEditor::FeatureDecision
 CDekiEditor::CMakeGen::FeatureEntryOne entry of a package's "features": a compile definition the package brings, the component types it provides, and whether it may be left out
 CDeki::FieldRefCompact field descriptor, the one piece of reflection on every platform
 CDeki::ProjectSettings::FileHeader
 CDekiEditor::FileInspectorRegistry
 CDeki::FileSystemHolds the process-wide filesystems
 CDekiEditor::EditorUI::FloatCallbacks
 CDeki::FPSCounter
 CDeki::Engine::FrameTimingsHow long the parts of a frame took, in milliseconds of the engine's clock: update (input, lifecycle, update callbacks), render and present
 CDekiEditor::CMakeGen::FrameworkDependencyOne thing a package needs from a build framework, from package.json: "dependencies": { "<framework id>": [ "bare-name", { "name": "...", ... } ] }
 CDekiEditor::GuidCacheMaps asset paths to GUIDs, read from the .data sidecar files and cached in a JSON file
 CDeki::Texture2D::HeaderHeader of a texture file. The file is [Header][pixel data][metadata]
 CDekiEditor::IAssetImporterBase interface for asset importers
  CDekiEditor::TextureImporter
 CDekiEditor::IBuildActivitySink
 CDeki::ICameraCamera interface for coordinate conversion
 CDeki::IClipProvider
 CDeki::IDisplayWhat a display package implements: setup, presenting frames, events and UI overlays
 CDeki::IFileSystemWhat a filesystem package implements: file operations, path conversion and USB storage mode
 CDeki::IInputSystemThe input system as the engine sees it, so it need not link to the implementation in the input package DLL
 CDeki::IMemoryProviderThe platform's memory, as the engine sees it, so the engine has no platform-specific allocation code: a microcontroller with external RAM uses its SDK's capability allocator, a part without it or a desktop uses malloc
  CDeki::HostMemoryProviderMemory provider over the C heap (malloc/free), for any host with a normal C library heap: the editor, desktop and simulator builds, tests
 CDekiEditor::ImportResult
 CDekiEditor::EditorUI::IntCallbacks
 CDeki::IPackageWhat a hardware peripheral package (SD card, GPS, WiFi, ...) implements
 CIPackageInstallerHow packages get installed
 CIPackageSourceWhere packages come from
 CDekiEditor::IPlatformEditorUIA builder's own settings UI in the platform editor
 CDeki::IPowerDevice power management (sleep and wake)
 CDeki::IRenderSystemThe render system as the engine sees it, so it need not link to the implementation in the rendering package DLL
 CDeki::ISortableProvider
 CDekiEditor::ITargetBuilderA build backend: everything the editor knows about one kind of target
  CDekiEditor::FirmwareBuilderBase
 CDeki::ITimeProviderThe platform's millisecond clock, such as SDL_GetTicks() on SDL3 or esp_timer_get_time() / 1000 on ESP32
 CDekiEditor::Localization::Language
 CDeki::LoadedPack
 CDeki::LogSystem
 CDeki::Mat44x4 matrix in the layout OpenGL/GLSL expect: column-major, m[col][row]
 CDeki::MemoryThe engine's memory, in named regions
 CDeki::MemoryStats
 CDekiEditor::NodeCanvas
 CDekiEditor::NodeCanvasEventsWhat happened this frame. Every field is false or zero unless its event fired
 CDekiEditor::NodeCanvasLinkOne link to draw, by node ids and pin indices
 CDekiEditor::NodeCanvasNodeOne node to draw. Pin labels are for display; events report pin indices
 CDekiEditor::NodeCanvasPaletteCanvas colours, packed as EditorUI::Rgba does: a<<24 | b<<16 | g<<8 | r
 CDeki::NodeRef
 CDeki::Object
 CDeki::ObjectRefBase
  CDeki::ObjectRef< T >An object reference the user assigns in the editor
 CDeki::PackageConfigRuntime configuration of one hardware package on a board: pin assignments (GPIO numbers) and string settings, loaded from the platform JSON
 CDekiEditor::PackageDecision
 CDekiEditor::EditorSettings::PackageDepInfo
 CDekiEditor::CMakeGen::PackageEntryPackage manifest data, parsed from package.json and package.cmake
 CPackageEntryOne package as the package manager sees it
 CDeki::PackIndexEntry
 CDekiEditor::PickerItemOne entry in a SchematicPicker list
 CDekiEditor::PlatformConfigWhat the editor knows about a platform: its identity, the framework whose backend builds for it, that backend's settings (carried, not interpreted), its screen, compiler flags, what it offers packages and what it needs from them, and the scene it boots
 CDekiEditor::PlatformOriginStatus
 CDekiEditor::PlatformRegistryThe available platforms, all loaded from JSON: the project's own, those its packages offer, and board packs
 CDekiEditor::PlatformSyncResult
 CDekiEditor::PlatformTemplate
 CDekiEditor::PostInstallDef
 CDeki::Power
 CDeki::PropertyBindingA resolved PropertyRef: where the field lives and what it is
 CDeki::PropertyInfoProperty metadata, one per component type and field
 CDeki::PropertyRefA picked field of a component on an object
 CDeki::Rect
 CDeki::Memory::RegionWhere an allocation lives
 CDekiEditor::Motion::RowHoverList rows that ImGui draws (tree nodes, selectables) with a fading highlight
 CDeki::ProjectSettings::RuntimeSettings
 CDeki::SceneA scene: objects with components, and Deki's basic unit of content
 CDeki::SceneFormat::SceneMsgPackParserMessagePack parser for compiled scene files, made for embedded targets: it allocates nothing and its recursion depth is capped (kMaxDepth)
 CDeki::SceneFormat::SceneMsgPackWriterWrites a scene in the compiled MessagePack format (editor only)
 CDeki::SceneSystemLoads and owns the root scene, the scene that is running, and keeps the persistent objects that outlive scene changes
 CDekiEditor::SceneViewThe scene view's current render context, for gizmo code to read:
 CDekiEditor::SceneViewContextEverything BeginObject() needs to set up an object's gizmo context
 CDekiEditor::Localization::ScopedPackageWhile it lives, Tr and TrLabel look in package's own table first, so text a package's class shows (its component, property and enum names) reads as that package translates it even when the editor or another package translates the same English word differently: deki-fsm's "Add" (an arithmetic operation) is not the editor's "Add" button
 CDeki::SettingsRegistryRegistry of project-settings types, which packages can add to
 CDeki::SettingsTypeInfo
 CDeki::IPower::SleepInfo
 CDekiEditor::SpriteFrameDataA sprite frame's pixel rect within its texture, registered by frame GUID and used for rendering
 CDekiEditor::SpriteSettings
 CDekiEditor::StripPlan
 CDekiEditor::SubAssetInfoAn item inside a parent asset, such as a sprite frame or a LOD level
 CDekiEditor::SubComponentDef
 CDekiEditor::TargetContentConflict
 CDekiEditor::TexData
 CDekiEditor::TexHeader
 CDekiEditor::EditorUI::TextCallbacks
 CDeki::Texture2D
 CDekiEditor::TextureSettings
 CDekiEditor::TextureTargetSettingsOne target's own values
 CDeki::TimeThe engine's clock, independent of the platform
 CDekiEditor::ToolchainComponent
 CDekiEditor::ToolchainComponentManagerManages a builder's toolchain components as its BuilderDefinition describes them: detects them, downloads and installs them, and checks for updates
 CDekiEditor::ToolchainVersionInfo
 CDeki::Detail::TypeNameProbe
 CDeki::Detail::TypeNameStorage< T, Seq >
 CDeki::Detail::TypeShortNameStorage< T, Seq >
 CDekiEditor::EditorUI::VecCallbacks
 CDeki::Vector< T >Growable array of T whose growth can fail
 CDeki::Vector22D vector for positions, directions and scales
 CDeki::Vector33D vector for positions, directions, scales and rotations
 CDekiEditor::VersionCheckDef
 CDekiEditor::EditorUI::WidgetBackend