summaryrefslogtreecommitdiff
path: root/src/asset-manager.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-12-28 12:00:47 -0500
committerJonathan Bradley <jcb@pikum.xyz>2023-12-28 12:00:47 -0500
commitcf0fac0eab12421f407d3acc1f1c84faead248bc (patch)
treec5b174085ebcd1bccaa29d20334e4123ade73f6b /src/asset-manager.hpp
parent41b5dafb1a3bf80db48abeb235ce00ec8e1c566f (diff)
add asset type for filtering
Diffstat (limited to 'src/asset-manager.hpp')
-rw-r--r--src/asset-manager.hpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/asset-manager.hpp b/src/asset-manager.hpp
index 71e95f5..fe0a688 100644
--- a/src/asset-manager.hpp
+++ b/src/asset-manager.hpp
@@ -12,16 +12,23 @@ struct AssetHandle : public PkeHandle { };
constexpr AssetHandle AssetHandle_MAX = AssetHandle{};
TypeSafeInt_Const_Expr(AssetLoadingState, uint8_t, 0xFF);
+TypeSafeInt_Const_Expr(AssetType, 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};
+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{
+const AssetType PKE_ASSET_TYPE_UNSET = AssetType {0x00};
+const AssetType PKE_ASSET_TYPE_SHADER = AssetType {0x01};
+const AssetType PKE_ASSET_TYPE_MODEL = AssetType {0x02};
+const AssetType PKE_ASSET_TYPE_TEXTURE = AssetType {0x04};
+const AssetType PKE_ASSET_TYPE_ALL = AssetType {0xFF};
+
+struct Asset {
AssetHandle handle{};
AssetKey key = {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'};
const char *basePath = nullptr;
@@ -30,12 +37,13 @@ struct Asset{
std::future<void> future;
int8_t referenceCount = 0;
AssetLoadingState state = PKE_ASSET_LOADING_STATE_UNLOADED;
+ AssetType type = PKE_ASSET_TYPE_UNSET;
};
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);
+AssetHandle AM_Register(AssetKey key, AssetType type, const void *data, int64_t size, std::size_t alignment);
+AssetHandle AM_Register(const char *path, AssetType type);
+AssetHandle AM_Register(AssetKey key, AssetType type, const char *path);
void AM_Release(AssetHandle assetHandle);
const Asset *AM_Get(AssetHandle assetHandle);
const AssetHandle AM_GetHandle(AssetKey key);