How aval0on/loke works
Loke is a modular C++ scene and rendering engine. Its user-to-result workflow loads engine settings, selects dynamically loaded window and render systems, builds and processes a scene, and repeatedly polls input, renders, and presents frames. The tree and excerpts support the runtime, scene, UI, and LKGL shader/storage branches; ray-tracing algorithms and several README-listed rendering features are documented but their implementation and wiring are not sampled, so they are represented only as renderer capability scope.
Main entry points: Engine.cpp Engine loop · LKGL3D.cpp LKGL renderer · main.cpp Application entry · ModuleManager.cpp Module manager
Components 21
Configuration
- Config loader
src/Config/Config.cpp - Config parsers
src/Config/EngineConfigParser.cpp
Engine runtime
- Application entry
src/main.cpp - Module manager
src/Utils/Modules/ModuleManager.cpp - Engine loop
src/Engine/Engine.cpp
Scene authoring
- Scene tree
src/Scene/SceneTree/SceneTree.cpp - Scene nodes
include/Scene/SceneTree/Nodes/3D - Scene resources
include/Scene/Resources/3D
Rendering
- Rendering server
include/Server/RenderingServer.hpp - 3D render interface
include/Server/Rendering/3D/IRenderSystem3D.hpp - LKGL renderer
Modules/RenderSystems/LKGL/src/LKGL3D.cpp - Scene render storage
Modules/RenderSystems/LKGL/src/Storage/Storage.hpp - Shader pipeline
Modules/RenderSystems/LKGL/src/Shaders/ShaderManager.hpp - Renderer capabilities
Modules/RenderSystems/LKGL/src
Platform and UI
- Input server
include/Drivers/Input/InputServer.hpp - Window server
src/Drivers/Window/WindowServer.cpp - X11 backend
Modules/WindowSystems/LKX11/src/X11Display.cpp - UI server
src/Server/UIServer.cpp
Other components
- User
- Slide image files
- OpenGL
Connections 21
- User → Application entry: starts
- Application entry → Config loader: loads settings
- Config loader → Config parsers: parses lines
- Application entry → Engine loop: starts runtime
- Engine loop → Module manager: loads plugins
- Module manager → 3D render interface: selects renderer
- Engine loop → Window server: opens and polls
- Engine loop → Rendering server: initializes and renders
- Engine loop → Scene tree: processes scene
- Engine loop → Input server: checks input
- Engine loop → UI server: updates and draws UI
- Engine loop → Window server: presents frame
- Scene tree → Scene nodes: manages nodes
- Scene nodes → Scene resources: uses resources
- Rendering server → 3D render interface: dispatches rendering
- Module manager → LKGL renderer: loads selected plugin
- LKGL renderer → Scene render storage: updates render data
- LKGL renderer → Shader pipeline: manages shaders
- Scene render storage → Slide image files: loads slide images
- LKGL renderer → OpenGL: renders with
- Renderer capabilities → LKGL renderer: documents capabilities