summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/asset-manager.cpp11
-rw-r--r--src/asset-manager.hpp3
-rw-r--r--src/project.cpp8
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;