diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-28 12:00:47 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-28 12:00:47 -0500 |
| commit | cf0fac0eab12421f407d3acc1f1c84faead248bc (patch) | |
| tree | c5b174085ebcd1bccaa29d20334e4123ade73f6b /src/asset-manager.hpp | |
| parent | 41b5dafb1a3bf80db48abeb235ce00ec8e1c566f (diff) | |
add asset type for filtering
Diffstat (limited to 'src/asset-manager.hpp')
| -rw-r--r-- | src/asset-manager.hpp | 22 |
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); |
