diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-01-05 07:35:32 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-01-05 07:35:32 -0500 |
| commit | b2a8cab15fe0790ea74f446d1aa92fd96c924660 (patch) | |
| tree | faa950f234fe2932c243a345bad7b1ecf2855ffe /src | |
| parent | b0e0814374d934a62e434b65d02d23d3884bce80 (diff) | |
engine assets are handled by the engine
Diffstat (limited to 'src')
| -rw-r--r-- | src/asset-manager.cpp | 11 | ||||
| -rw-r--r-- | src/asset-manager.hpp | 3 | ||||
| -rw-r--r-- | src/project.cpp | 8 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/asset-manager.cpp b/src/asset-manager.cpp index 77aeffd..f652b64 100644 --- a/src/asset-manager.cpp +++ b/src/asset-manager.cpp @@ -18,9 +18,20 @@ BucketContainer<AssetBucket, AssetHandle> Asset_BucketContainer{}; ThreadPoolHandle assetThreadPool = ThreadPoolHandle_MAX; +AssetKey EngineDefinedAssets[EngineDefinedAssetCount] = { + "pke_prsnt_vrt\0\0", + "pke_prsnt_frg\0\0", + "pke_txtr_vrt\0\0\0", + "pke_txtr_frg\0\0\0", +}; + void AM_Init() { Buckets_Init(Asset_BucketContainer); assetThreadPool = PkeThreads_Init(2, 255); + AM_Register(EngineDefinedAssets[0], PKE_ASSET_TYPE_SHADER, "assets/shaders/present.vert.spv"); + AM_Register(EngineDefinedAssets[1], PKE_ASSET_TYPE_SHADER, "assets/shaders/present.frag.spv"); + AM_Register(EngineDefinedAssets[2], PKE_ASSET_TYPE_SHADER, "assets/shaders/vert.vert.spv"); + AM_Register(EngineDefinedAssets[3], PKE_ASSET_TYPE_SHADER, "assets/shaders/texture.frag.spv"); } void AM_Load_Task(Asset &asset) { diff --git a/src/asset-manager.hpp b/src/asset-manager.hpp index 48a9ccb..6204614 100644 --- a/src/asset-manager.hpp +++ b/src/asset-manager.hpp @@ -29,6 +29,9 @@ const AssetType PKE_ASSET_TYPE_TEXTURE = AssetType {0x04}; const AssetType PKE_ASSET_TYPE_AUDIO = AssetType {0x08}; const AssetType PKE_ASSET_TYPE_ALL = AssetType {0xFF}; +constexpr int64_t EngineDefinedAssetCount = 4; +extern AssetKey EngineDefinedAssets[EngineDefinedAssetCount]; + struct Asset { AssetHandle handle{}; AssetKey key = {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'}; diff --git a/src/project.cpp b/src/project.cpp index ae804ff..e596d75 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -328,6 +328,14 @@ void PkeProject_Save(const char *filePath) { uint64_t assetI = 0; auto *assets = AM_GetAssets(b, assetI); for (long i = 0; i < assetI; ++i) { + bool isGlobalAsset = false; + for (long k = 0; k < EngineDefinedAssetCount; ++k) { + if (strncmp(EngineDefinedAssets[k], assets[i].key, AssetKeyLength) == 0) { + isGlobalAsset = true; + break; + } + } + if (isGlobalAsset) continue; f << PKE_PROJ_FILE_OBJ_ASSET << std::endl; Proj_SerializeAsset(f, assets[i]); f << PKE_PROJ_FILE_OBJ_END << std::endl; |
