How anvilstudio/anvilworkspace works
Anvil is a C++ engine for games and lightweight applications, with Forge providing project and scene-editing tools. The main workflow is to launch a project, manage scenes and assets, then run scene content through the engine’s rendering and runtime systems. The README documents multi-window support and high-/low-level rendering access; the tree also exposes scripting, physics, and editor panels. Some wiring is based on documented responsibilities and module boundaries because those implementations were not sampled.
Main entry points: App.cpp App Runtime · AssetManager.cpp Asset Manager · Scene.cpp Scene · Manager.cpp Scene Manager
Components 23
Application
- App Runtime
AnvilEngine/src/Core/App.cpp - Scene Layer
AnvilEngine/src/Core/AppLayers/SceneLayer.cpp - Window System
AnvilEngine/src/Core/Window.cpp
Project Content
- Scene Manager
AnvilEngine/src/Scene/Manager.cpp - Scene
AnvilEngine/src/Scene/Scene.cpp - Asset Manager
AnvilEngine/src/Asset/AssetManager.cpp - Project Files
AnvilEngine/src/Util/FileSys/FileSystem.cpp
Runtime Systems
- Python Scripting
AnvilEngine/src/Scripting/PythonScriptEngine.cpp - Python API
AnvilEngine/Resources/Python/anvil/__init__.py - 2D Physics
AnvilEngine/src/Physics/PhysicsSystem2D.cpp - Input System
AnvilEngine/src/Input/Input.cpp
Rendering
- 2D Scene Renderer
AnvilEngine/src/Scene/2D/SceneRenderer2D.cpp - Renderer
AnvilEngine/src/Render/Renderer.cpp - Pipeline Library
AnvilEngine/src/Render/PipelineLibrary.cpp - Vulkan Backend
AnvilEngine/src/Render/Platform/Vulkan/VulkanPipeline.cpp
Forge Editor
- Forge
Forge/Forge.cpp - Editor Layer
Forge/Editor/EditorLayer.cpp - Scene Hierarchy
Forge/Editor/Windows/SceneHierarchy.cpp - Inspector
Forge/Editor/Windows/InspectorLayer.cpp - Viewport
Forge/Editor/Windows/Viewport.cpp - Asset Registry
Forge/Editor/Windows/AssetRegistry.cpp
Other components
- Developer
- Graphics API
Connections 18
- Developer → Forge: launches project
- Forge → Editor Layer: starts editor
- App Runtime → Window System: creates window
- App Runtime → Asset Manager: creates manager
- App Runtime → Scene Manager: creates manager
- App Runtime → Scene Layer: pushes layer
- Scene Manager → Scene: opens and tracks
- Asset Manager → Project Files: resolves resources
- Python Scripting → Python API: loads API
- 2D Scene Renderer → Renderer: submits scene work
- Renderer → Pipeline Library: gets pipelines
- Pipeline Library → Vulkan Backend: builds pipelines
- Vulkan Backend → Graphics API: issues commands
- Input System → Window System: receives window input
- Scene Hierarchy → Scene: edits hierarchy
- Inspector → Scene: edits properties
- Viewport → 2D Scene Renderer: views scene
- Asset Registry → Asset Manager: inspects assets