Unravel Engine C++ Reference
Loading...
Searching...
No Matches
asset_database.hpp
Go to the documentation of this file.
1#pragma once
2#include <engine/engine_export.h>
3
5
8
9namespace unravel
10{
11
14
17
20
21void save_to_file(const std::string& absolute_path, const asset_database& obj);
22void save_to_file_bin(const std::string& absolute_path, const asset_database& obj);
23auto load_from_file(const std::string& absolute_path, asset_database& obj) -> bool;
24auto load_from_file_bin(const std::string& absolute_path, asset_database& obj) -> bool;
25
26
27void save_to_file(const std::string& absolute_path, const asset_meta& obj);
28void save_to_file_bin(const std::string& absolute_path, const asset_meta& obj);
29auto load_from_file(const std::string& absolute_path, asset_meta& obj) -> bool;
30auto load_from_file_bin(const std::string& absolute_path, asset_meta& obj) -> bool;
31
32
33template<typename Importer>
34auto load_importer_from_file(const std::string& absolute_path, asset_meta& obj) -> bool
35{
36 asset_meta loaded_meta;
37 if(load_from_file(absolute_path, loaded_meta))
38 {
39 auto obj_importer = std::dynamic_pointer_cast<Importer>(obj.importer);;
40 auto loaded_importer = std::dynamic_pointer_cast<Importer>(loaded_meta.importer);;
41
42 if(obj_importer && loaded_importer)
43 {
44 *obj_importer = *loaded_importer;
45 return true;
46 }
47 }
48 return false;
49}
50
51} // namespace unravel
Manages asset metadata and provides functionality for adding, removing, and querying assets.
auto load_importer_from_file(const std::string &absolute_path, asset_meta &obj) -> bool
void save_to_file_bin(const std::string &absolute_path, const animation_clip &obj)
void load_from_file(const std::string &absolute_path, animation_clip &obj)
void save_to_file(const std::string &absolute_path, const animation_clip &obj)
void load_from_file_bin(const std::string &absolute_path, animation_clip &obj)
#define LOAD_EXTERN(cls)
#define SAVE_EXTERN(cls)
Metadata information for an asset including its location.
Metadata for an asset, including its UUID and type.
std::shared_ptr< asset_importer_meta > importer
Importer meta.