|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
Loadable resource wrapper supporting textures, containers (GLB), and fonts. More...
#include <framework/assets/asset.h>
Public Member Functions | |
| Asset (const std::string &name, const std::string &type, const std::string &file, const AssetData &data={}) | |
| const AssetData & | data () const |
| const std::string & | file () const |
| void | loadAsync (ResourceLoader &loader, std::function< void(std::optional< Resource >)> callback) |
| const std::string & | name () const |
| bool | preload () const |
| std::optional< Resource > | resource () |
| Synchronous load — blocks until the resource is ready. | |
| const std::string & | type () const |
| void | unload () |
| 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 |
Static Public Member Functions | |
| static void | setDefaultGraphicsDevice (const std::shared_ptr< GraphicsDevice > &graphicsDevice) |
Additional Inherited Members | |
| Protected Member Functions inherited from visutwin::canvas::EventHandler | |
| EventHandle * | addCallback (const std::string &name, HandleEventCallback callback, void *scope=nullptr, bool once=false) |
Loadable resource wrapper supporting textures, containers (GLB), and fonts.
Asset wraps a typed Resource (Texture, ContainerResource, or FontResource) and provides synchronous and asynchronous loading via the ResourceLoader. Assets are registered in the AssetRegistry and referenced by name or ID.
| visutwin::canvas::Asset::Asset | ( | const std::string & | name, |
| const std::string & | type, | ||
| const std::string & | file, | ||
| const AssetData & | data = {} ) |
|
inline |
Definition at line 82 of file asset.h.
Referenced by Asset(), and loadAsync().
|
inline |
Definition at line 81 of file asset.h.
Referenced by Asset(), and loadAsync().
| void visutwin::canvas::Asset::loadAsync | ( | ResourceLoader & | loader, |
| std::function< void(std::optional< Resource >)> | callback ) |
Asynchronous load — queues I/O on the ResourceLoader's background thread and invokes callback on the main thread (during ResourceLoader::processCompletions) once the resource is ready.
If the asset is already loaded the callback fires immediately (on the current call, not deferred).
Definition at line 206 of file asset.cpp.
References visutwin::canvas::AssetType::CONTAINER, visutwin::canvas::GlbParser::createFromModel(), visutwin::canvas::GlbParser::createFromPrepared(), data(), visutwin::canvas::Default, file(), visutwin::canvas::AssetType::FONT, visutwin::canvas::TextureOptions::format, visutwin::canvas::TextureOptions::height, visutwin::canvas::ResourceLoader::load(), visutwin::canvas::loadBitmapFontResource(), visutwin::canvas::TextureOptions::mipmaps, name(), visutwin::canvas::TextureOptions::name, visutwin::canvas::TextureOptions::numLevels, visutwin::canvas::AssimpParser::parse(), visutwin::canvas::ObjParser::parse(), visutwin::canvas::StlParser::parse(), visutwin::canvas::GlbParser::parseFromMemory(), visutwin::canvas::PIXELFORMAT_RGBA32F, visutwin::canvas::PIXELFORMAT_RGBA8, visutwin::canvas::RGBM, visutwin::canvas::RGBP, visutwin::canvas::AssetType::TEXTURE, visutwin::canvas::TextureType::TEXTURETYPE_RGBM, visutwin::canvas::TextureType::TEXTURETYPE_RGBP, type(), and visutwin::canvas::TextureOptions::width.
|
inline |
Definition at line 79 of file asset.h.
Referenced by Asset(), and loadAsync().
| std::optional< Resource > visutwin::canvas::Asset::resource | ( | ) |
Synchronous load — blocks until the resource is ready.
Definition at line 54 of file asset.cpp.
References visutwin::canvas::AssetType::CONTAINER, visutwin::canvas::Default, visutwin::canvas::AssetType::FONT, visutwin::canvas::TextureOptions::format, visutwin::canvas::TextureOptions::height, visutwin::canvas::loadBitmapFontResource(), visutwin::canvas::TextureOptions::mipmaps, visutwin::canvas::TextureOptions::name, visutwin::canvas::TextureOptions::numLevels, visutwin::canvas::AssimpParser::parse(), visutwin::canvas::GlbParser::parse(), visutwin::canvas::ObjParser::parse(), visutwin::canvas::StlParser::parse(), visutwin::canvas::PIXELFORMAT_RGBA32F, visutwin::canvas::PIXELFORMAT_RGBA8, visutwin::canvas::RGBM, visutwin::canvas::RGBP, visutwin::canvas::AssetType::TEXTURE, visutwin::canvas::TextureType::TEXTURETYPE_RGBM, visutwin::canvas::TextureType::TEXTURETYPE_RGBP, and visutwin::canvas::TextureOptions::width.
Referenced by unload().
|
static |
Definition at line 30 of file asset.cpp.
Referenced by visutwin::canvas::Engine::init().
|
inline |
Definition at line 80 of file asset.h.
Referenced by Asset(), and loadAsync().
| void visutwin::canvas::Asset::unload | ( | ) |
Definition at line 35 of file asset.cpp.
References resource().