diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-22 19:33:26 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-23 11:43:15 -0500 |
| commit | b911c5b6c37ab13be6188cf039cd4246414fc7b5 (patch) | |
| tree | da4743a719e8134abb35f87f5097541e09c8f581 /src/asset-manager.hpp | |
| parent | a3937e7eef97cb0badcd65c390b9dd39d4cfd094 (diff) | |
first pass background asset loading - buggy
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(); |
