3#include <Infinity/api.h>
4#include <Infinity/Assets/Asset.hpp>
5#include <Infinity/Assets/AssetLoadInfo.hpp>
7#include <Infinity/Types/All.hpp>
13#include <unordered_map>
Abstract base class for source-specific asset loading plugins.
Definition AssetPlugin.hpp:52
virtual Asset load_Material(const AssetLoadInfo &loadInfo)
Loads a material asset from this plugin's source.
virtual Asset load_Array3D_Vector3ub(const AssetLoadInfo &loadInfo)
Loads a 3D array of 3-component unsigned byte vectors from this plugin's source.
virtual Asset load_Array3D_ubyte(const AssetLoadInfo &loadInfo)
Loads a 3D array of unsigned bytes from this plugin's source.
virtual Asset load_Array3D_Vector4ub(const AssetLoadInfo &loadInfo)
Loads a 3D array of 4-component unsigned byte vectors from this plugin's source.
Asset load(const AssetLoadInfo &loadInfo)
Loads an asset using the provided load information.
virtual Asset load_Array2D_Vector4ub(const AssetLoadInfo &loadInfo)
Loads a 2D array of 4-component unsigned byte vectors from this plugin's source.
virtual AssetPluginAPIVer getPluginAPIVersion()=0
Gets the plugin API version this plugin implements.
virtual ~AssetPlugin()
Virtual destructor.
virtual std::string getPluginVendor()=0
Gets the vendor/author of this plugin.
virtual Asset load_Array2D_Vector3(const AssetLoadInfo &loadInfo)
Loads a 2D array of 3-component float vectors from this plugin's source.
virtual Asset load_Array3D_Vector3(const AssetLoadInfo &loadInfo)
Loads a 3D array of 3-component float vectors from this plugin's source.
virtual Asset load_Array2D_Vector3ub(const AssetLoadInfo &loadInfo)
Loads a 2D array of 3-component unsigned byte vectors from this plugin's source.
virtual std::string getPluginName()=0
Gets the name of this plugin.
virtual Asset load_RenderObject(const AssetLoadInfo &loadInfo)
Loads a render object asset from this plugin's source.
AssetPlugin()
Default constructor.
virtual Asset load_Array2D_ubyte(const AssetLoadInfo &loadInfo)
Loads a 2D array of unsigned bytes from this plugin's source.
Asset load(const Infinity::Types::TypeID &type, const std::string &path)
Convenience function to load an asset with a full path.
virtual Asset load_Mesh(const AssetLoadInfo &loadInfo)
Loads a mesh asset from this plugin's source.
virtual Asset load_Array2D_Vector4(const AssetLoadInfo &loadInfo)
Loads a 2D array of 4-component float vectors from this plugin's source.
virtual Asset load_Array3D_Vector4(const AssetLoadInfo &loadInfo)
Loads a 3D array of 4-component float vectors from this plugin's source.
virtual Asset load_Array2D_float(const AssetLoadInfo &loadInfo)
Loads a 2D array of floats from this plugin's source.
virtual Asset load_Text(const AssetLoadInfo &loadInfo)
Loads a text asset from this plugin's source.
virtual Asset load_Array3D_float(const AssetLoadInfo &loadInfo)
Loads a 3D array of floats from this plugin's source.
Type-erased container for loaded asset data.
Definition Asset.hpp:40
void() DestroyAssetPluginFunction(AssetPlugin *)
Function signature for destroying an AssetPlugin instance.
Definition AssetPlugin.hpp:303
INFINITY_API_PLUGIN CreateAssetPluginFunction CreateAssetPlugin
Plugin entry point for creating an AssetPlugin instance.
Definition AssetPlugin.hpp:312
AssetPluginAPIVer
Versioning for the AssetPlugin API.
Definition AssetPlugin.hpp:25
@ V1
Version 1 of the AssetPlugin API.
Definition AssetPlugin.hpp:26
AssetPlugin *() CreateAssetPluginFunction(void)
Function signature for creating an AssetPlugin instance.
Definition AssetPlugin.hpp:292
INFINITY_API_PLUGIN DestroyAssetPluginFunction DestroyAssetPlugin
Plugin entry point for destroying an AssetPlugin instance.
Definition AssetPlugin.hpp:321
Encapsulates the information required to load an asset in the Infinity engine.
Definition AssetLoadInfo.hpp:23
Runtime type identifier for the Infinity type system.
Definition TypeID.hpp:71