From b2a8cab15fe0790ea74f446d1aa92fd96c924660 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Fri, 5 Jan 2024 07:35:32 -0500 Subject: engine assets are handled by the engine --- src/asset-manager.cpp | 11 +++++++++++ src/asset-manager.hpp | 3 +++ src/project.cpp | 8 ++++++++ 3 files changed, 22 insertions(+) (limited to 'src') 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 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; -- cgit v1.2.3