From 3187a32f7f0253ded7a41c4c21612253e525a8fe Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Wed, 27 Dec 2023 22:04:12 -0500 Subject: assets are global and stored in the project file --- src/asset-manager.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/asset-manager.hpp') diff --git a/src/asset-manager.hpp b/src/asset-manager.hpp index 36516b5..71e95f5 100644 --- a/src/asset-manager.hpp +++ b/src/asset-manager.hpp @@ -13,13 +13,17 @@ constexpr AssetHandle AssetHandle_MAX = AssetHandle{}; TypeSafeInt_Const_Expr(AssetLoadingState, uint8_t, 0xFF); +const int64_t AssetKeyLength = 16; +using AssetKey = char[AssetKeyLength]; + 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'}; + AssetHandle handle{}; + AssetKey key = {'\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; @@ -31,8 +35,12 @@ struct Asset{ 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); +AssetHandle AM_Register(AssetKey key, const char *path); void AM_Release(AssetHandle assetHandle); const Asset *AM_Get(AssetHandle assetHandle); +const AssetHandle AM_GetHandle(AssetKey key); +uint64_t AM_GetBucketCount(); +Asset *AM_GetAssets(uint64_t bucketIndex, uint64_t &itemCount); void AM_Teardown(); void AM_DebugPrint(); -- cgit v1.2.3