diff options
Diffstat (limited to 'src/asset-manager.hpp')
| -rw-r--r-- | src/asset-manager.hpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/asset-manager.hpp b/src/asset-manager.hpp index 001ec4f..36516b5 100644 --- a/src/asset-manager.hpp +++ b/src/asset-manager.hpp @@ -4,25 +4,34 @@ #include "macros.hpp" #include "memory.hpp" -#include <fstream> #include <cstdint> -#include <cstring> -#include <cassert> +#include <future> struct AssetHandle : public PkeHandle { }; constexpr AssetHandle AssetHandle_MAX = AssetHandle{}; +TypeSafeInt_Const_Expr(AssetLoadingState, uint8_t, 0xFF); + +const AssetLoadingState PKE_ASSET_LOADING_STATE_UNLOADED = AssetLoadingState {0}; +const AssetLoadingState PKE_ASSET_LOADING_STATE_LOADING = AssetLoadingState {1}; +const AssetLoadingState PKE_ASSET_LOADING_STATE_LOADED = AssetLoadingState {2}; +const AssetLoadingState PKE_ASSET_LOADING_STATE_FAILED = AssetLoadingState {3}; + struct Asset{ char key[16] = {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'}; + const char *basePath = nullptr; int64_t size = 0; void *ptr = nullptr; + std::future<void> future; + int8_t referenceCount = 0; + AssetLoadingState state = PKE_ASSET_LOADING_STATE_UNLOADED; }; void AM_Init(); AssetHandle AM_Register(const void *data, int64_t size, std::size_t alignment, const char *key); AssetHandle AM_Register(const char *path); -void AM_Destroy(AssetHandle assetHandle); +void AM_Release(AssetHandle assetHandle); const Asset *AM_Get(AssetHandle assetHandle); void AM_Teardown(); void AM_DebugPrint(); |
