|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
Central application orchestrator managing scenes, rendering, input, and resource loading. More...
#include <framework/engine.h>
Public Member Functions | |
| BatchManager * | batcher () |
| void | destroy () |
| Engine (SDL_Window *window) | |
| float | fixedDeltaTime () const |
| float | fixedTimeAlpha () const |
| void | fixedUpdate (float fixedDt) |
| const std::shared_ptr< GraphicsDevice > & | graphicsDevice () const |
| void | init (const AppOptions &appOptions) |
| void | inputUpdate (float dt) |
| const std::shared_ptr< ResourceLoader > & | loader () const |
| int | maxFixedSubSteps () const |
| void | render () |
| std::pair< int, int > | resizeCanvas (int width=0, int height=0) |
| std::shared_ptr< Entity > | root () |
| const std::shared_ptr< Scene > & | scene () const |
| std::shared_ptr< ScriptRegistry > | scripts () const |
| SDL_Window * | sdlWindow () const |
| void | setCanvasFillMode (FillMode mode, int width=0, int height=0) |
| void | setCanvasResolution (ResolutionMode mode, int width=0, int height=0) |
| void | setFixedDeltaTime (float dt) |
| void | setMaxFixedSubSteps (int n) |
| void | start () |
| std::shared_ptr< ComponentSystemRegistry > | systems () const |
| void | update (float dt) |
| void | updateCanvasSize () |
| virtual | ~Engine () |
| Public Member Functions inherited from visutwin::canvas::EventHandler | |
| template<typename... Args> | |
| EventHandler * | fire (const std::string &name, Args &&... args) |
| bool | hasEvent (const std::string &name) const |
| void | initEventHandler () |
| template<typename Callback> requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>) | |
| EventHandler * | off (const std::string &name, Callback &&callback, void *scope=nullptr) |
| EventHandler * | off (const std::string &name="", const HandleEventCallback &callback=HandleEventCallback(), void *scope=nullptr) |
| EventHandler * | offByHandle (EventHandle *handle) |
| template<typename Callback> requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>) | |
| EventHandle * | on (const std::string &name, Callback &&callback, void *scope=nullptr) |
| EventHandle * | on (const std::string &name, HandleEventCallback callback, void *scope=nullptr) |
| template<typename Callback> requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>) | |
| EventHandle * | once (const std::string &name, Callback &&callback, void *scope=nullptr) |
| EventHandle * | once (const std::string &name, HandleEventCallback callback, void *scope=nullptr) |
| virtual | ~EventHandler ()=default |
Protected Member Functions | |
| virtual double | processTimestamp (double timestamp) |
| Protected Member Functions inherited from visutwin::canvas::EventHandler | |
| EventHandle * | addCallback (const std::string &name, HandleEventCallback callback, void *scope=nullptr, bool once=false) |
Friends | |
| MakeTickCallback | makeTick (const std::shared_ptr< Engine > &engine) |
Central application orchestrator managing scenes, rendering, input, and resource loading.
Engine is the entry point for a VisuTwin Canvas application. It owns the GraphicsDevice, Scene, ForwardRenderer, component systems, and the async ResourceLoader. A typical frame calls update() -> fixedUpdate() (zero or more substeps) -> render().
|
inline |
|
virtual |
Definition at line 95 of file engine.cpp.
References destroy().
|
inline |
| void visutwin::canvas::Engine::destroy | ( | ) |
Definition at line 100 of file engine.cpp.
References visutwin::canvas::EventHandler::fire().
Referenced by ~Engine().
|
inline |
|
inline |
| void visutwin::canvas::Engine::fixedUpdate | ( | float | fixedDt | ) |
Definition at line 636 of file engine.cpp.
References visutwin::canvas::EventHandler::fire().
Referenced by update().
|
inline |
| void visutwin::canvas::Engine::init | ( | const AppOptions & | appOptions | ) |
Definition at line 207 of file engine.cpp.
References visutwin::canvas::AppOptions::batchManager, visutwin::canvas::AppOptions::componentSystems, visutwin::canvas::AssetType::CONTAINER, visutwin::canvas::AppOptions::elementInput, visutwin::canvas::AssetType::FONT, visutwin::canvas::AppOptions::gamepads, visutwin::canvas::AppOptions::graphicsDevice, visutwin::canvas::AppOptions::keyboard, visutwin::canvas::AppOptions::lightmapper, makeTick, visutwin::canvas::AppOptions::mouse, visutwin::canvas::AppOptions::scriptPrefix, visutwin::canvas::AppOptions::scriptsOrder, visutwin::canvas::Asset::setDefaultGraphicsDevice(), visutwin::canvas::AssetType::TEXTURE, visutwin::canvas::AppOptions::touch, and visutwin::canvas::AppOptions::xr.
| void visutwin::canvas::Engine::inputUpdate | ( | float | dt | ) |
Definition at line 532 of file engine.cpp.
Referenced by update().
|
inline |
|
inline |
|
inlineprotectedvirtual |
| void visutwin::canvas::Engine::render | ( | ) |
Definition at line 314 of file engine.cpp.
References visutwin::canvas::EventHandler::fire().
| std::pair< int, int > visutwin::canvas::Engine::resizeCanvas | ( | int | width = 0, |
| int | height = 0 ) |
Definition at line 406 of file engine.cpp.
References visutwin::canvas::FILLMODE_FILL_WINDOW, visutwin::canvas::FILLMODE_KEEP_ASPECT, and updateCanvasSize().
Referenced by setCanvasFillMode().
|
inline |
|
inline |
|
inline |
|
inline |
| void visutwin::canvas::Engine::setCanvasFillMode | ( | FillMode | mode, |
| int | width = 0, | ||
| int | height = 0 ) |
Definition at line 400 of file engine.cpp.
References resizeCanvas().
| void visutwin::canvas::Engine::setCanvasResolution | ( | ResolutionMode | mode, |
| int | width = 0, | ||
| int | height = 0 ) |
Definition at line 442 of file engine.cpp.
References visutwin::canvas::RESOLUTION_AUTO.
|
inline |
|
inline |
| void visutwin::canvas::Engine::start | ( | ) |
Definition at line 308 of file engine.cpp.
|
inline |
| void visutwin::canvas::Engine::update | ( | float | dt | ) |
Definition at line 548 of file engine.cpp.
References visutwin::canvas::EventHandler::fire(), fixedUpdate(), and inputUpdate().
| void visutwin::canvas::Engine::updateCanvasSize | ( | ) |
Definition at line 657 of file engine.cpp.
References visutwin::canvas::RESOLUTION_AUTO.
Referenced by resizeCanvas().
|
friend |
Definition at line 24 of file engine.cpp.
Referenced by init().