From b911c5b6c37ab13be6188cf039cd4246414fc7b5 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Fri, 22 Dec 2023 19:33:26 -0500 Subject: first pass background asset loading - buggy --- src/asset-manager.hpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/asset-manager.hpp') 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 #include -#include -#include +#include 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 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(); -- cgit v1.2.3