diff --git a/Assets/Cube.003.shmesh.shmeta b/Assets/Cube.003.shmesh.shmeta new file mode 100644 index 00000000..628ecd00 --- /dev/null +++ b/Assets/Cube.003.shmesh.shmeta @@ -0,0 +1,3 @@ +Name: Cube.003 +ID: 71245919 +Type: 4 diff --git a/Assets/Cube.012.shmesh.shmeta b/Assets/Cube.012.shmesh.shmeta new file mode 100644 index 00000000..56d2d0f5 --- /dev/null +++ b/Assets/Cube.012.shmesh.shmeta @@ -0,0 +1,3 @@ +Name: Cube.012 +ID: 80365422 +Type: 4 diff --git a/Assets/RaccoonBag_Color_Ver4.shtex b/Assets/RaccoonBag_Color_Ver4.shtex new file mode 100644 index 00000000..effba95a Binary files /dev/null and b/Assets/RaccoonBag_Color_Ver4.shtex differ diff --git a/Assets/RaccoonBag_Color_Ver4.shtex.shmeta b/Assets/RaccoonBag_Color_Ver4.shtex.shmeta new file mode 100644 index 00000000..d386e9a4 --- /dev/null +++ b/Assets/RaccoonBag_Color_Ver4.shtex.shmeta @@ -0,0 +1,3 @@ +Name: RaccoonBag_Color_Ver4 +ID: 58303057 +Type: 3 diff --git a/Assets/RaccoonPreTexturedVer1_Base9.shtex.shmeta b/Assets/RaccoonPreTexturedVer1_Base9.shtex.shmeta new file mode 100644 index 00000000..e1a72340 --- /dev/null +++ b/Assets/RaccoonPreTexturedVer1_Base9.shtex.shmeta @@ -0,0 +1,3 @@ +Name: RaccoonPreTexturedVer1_Base9 +ID: 64651793 +Type: 3 diff --git a/Assets/Shaders/KirschCs.glsl b/Assets/Shaders/Kirsch_CS.glsl similarity index 100% rename from Assets/Shaders/KirschCs.glsl rename to Assets/Shaders/Kirsch_CS.glsl diff --git a/Assets/Shaders/Kirsch_CS.shshaderb b/Assets/Shaders/Kirsch_CS.shshaderb new file mode 100644 index 00000000..6219d9a9 Binary files /dev/null and b/Assets/Shaders/Kirsch_CS.shshaderb differ diff --git a/Assets/Shaders/Kirsch_CS.shshaderb.shmeta b/Assets/Shaders/Kirsch_CS.shshaderb.shmeta new file mode 100644 index 00000000..61c735f3 --- /dev/null +++ b/Assets/Shaders/Kirsch_CS.shshaderb.shmeta @@ -0,0 +1,3 @@ +Name: Kirsch_CS +ID: 19931255 +Type: 2 diff --git a/Assets/Shaders/PureCopyCs.glsl b/Assets/Shaders/PureCopy_CS.glsl similarity index 100% rename from Assets/Shaders/PureCopyCs.glsl rename to Assets/Shaders/PureCopy_CS.glsl diff --git a/Assets/Shaders/PureCopy_CS.shshaderb b/Assets/Shaders/PureCopy_CS.shshaderb new file mode 100644 index 00000000..9f1b0534 Binary files /dev/null and b/Assets/Shaders/PureCopy_CS.shshaderb differ diff --git a/Assets/Shaders/PureCopy_CS.shshaderb.shmeta b/Assets/Shaders/PureCopy_CS.shshaderb.shmeta new file mode 100644 index 00000000..8cb091d7 --- /dev/null +++ b/Assets/Shaders/PureCopy_CS.shshaderb.shmeta @@ -0,0 +1,3 @@ +Name: PureCopy_CS +ID: 29659779 +Type: 2 diff --git a/Assets/Shaders/TestCubeFs.glsl b/Assets/Shaders/TestCube_FS.glsl similarity index 100% rename from Assets/Shaders/TestCubeFs.glsl rename to Assets/Shaders/TestCube_FS.glsl diff --git a/Assets/Shaders/TestCube_FS.shshaderb b/Assets/Shaders/TestCube_FS.shshaderb new file mode 100644 index 00000000..863287f6 Binary files /dev/null and b/Assets/Shaders/TestCube_FS.shshaderb differ diff --git a/Assets/Shaders/TestCube_FS.shshaderb.shmeta b/Assets/Shaders/TestCube_FS.shshaderb.shmeta new file mode 100644 index 00000000..3a647313 --- /dev/null +++ b/Assets/Shaders/TestCube_FS.shshaderb.shmeta @@ -0,0 +1,3 @@ +Name: TestCube_FS +ID: 18415057 +Type: 2 diff --git a/Assets/Shaders/TestCubeVs.glsl b/Assets/Shaders/TestCube_VS.glsl similarity index 100% rename from Assets/Shaders/TestCubeVs.glsl rename to Assets/Shaders/TestCube_VS.glsl diff --git a/Assets/Shaders/TestCube_VS.shshaderb b/Assets/Shaders/TestCube_VS.shshaderb new file mode 100644 index 00000000..3d12507b Binary files /dev/null and b/Assets/Shaders/TestCube_VS.shshaderb differ diff --git a/Assets/Shaders/TestCube_VS.shshaderb.shmeta b/Assets/Shaders/TestCube_VS.shshaderb.shmeta new file mode 100644 index 00000000..23c5e30d --- /dev/null +++ b/Assets/Shaders/TestCube_VS.shshaderb.shmeta @@ -0,0 +1,3 @@ +Name: TestCube_VS +ID: 29315909 +Type: 2 diff --git a/Assets/TD_Checker_Base_Color.shtex b/Assets/TD_Checker_Base_Color.shtex new file mode 100644 index 00000000..c99ff515 Binary files /dev/null and b/Assets/TD_Checker_Base_Color.shtex differ diff --git a/Assets/TD_Checker_Base_Color.shtex.shmeta b/Assets/TD_Checker_Base_Color.shtex.shmeta new file mode 100644 index 00000000..8c0d5b77 --- /dev/null +++ b/Assets/TD_Checker_Base_Color.shtex.shmeta @@ -0,0 +1,3 @@ +Name: TD_Checker_Base_Color +ID: 51995224 +Type: 3 diff --git a/SHADE_Application/src/Application/SBApplication.cpp b/SHADE_Application/src/Application/SBApplication.cpp index 54dc0ccf..53393fea 100644 --- a/SHADE_Application/src/Application/SBApplication.cpp +++ b/SHADE_Application/src/Application/SBApplication.cpp @@ -110,14 +110,7 @@ namespace Sandbox SHComponentManager::CreateComponentSparseSet(); SHComponentManager::CreateComponentSparseSet(); - //TODO: REMOVE AFTER PRESENTATION - //SHAssetManager::LoadDataTemp("../../Assets/racoon.gltf"); - //SHAssetManager::LoadDataTemp("../../Assets/Cube.012.shmesh"); - //SHAssetManager::LoadDataTemp("../../Assets/RaccoonBag_Color_Ver4.dds"); - //SHAssetManager::LoadDataTemp("../../Assets/RaccoonPreTexturedVer1_Base9.dds"); - //SHAssetManager::LoadDataTemp("../../Assets/RaccoonPreTexturedVer1_Base9.shtex"); - //TODO: REMOVE AFTER PRESENTATION - + SHAssetManager::Load(); auto id = SHFamilyID::GetID(); auto id2 = SHFamilyID::GetID(); @@ -133,8 +126,6 @@ namespace Sandbox SHSceneManager::InitSceneManager("TestScene"); SHFrameRateController::UpdateFRC(); - - SHAssetManager::Load(); } void SBApplication::Update(void) diff --git a/SHADE_Application/src/Scenes/SBTestScene.cpp b/SHADE_Application/src/Scenes/SBTestScene.cpp index de408cc9..3f56e140 100644 --- a/SHADE_Application/src/Scenes/SBTestScene.cpp +++ b/SHADE_Application/src/Scenes/SBTestScene.cpp @@ -54,6 +54,7 @@ namespace Sandbox handles.emplace_back(SHResourceManager::LoadOrGet(asset.id)); break; case AssetType::TEXTURE: + if (asset.name == "RaccoonPreTexturedVer1_Base9") texHandles.emplace_back(SHResourceManager::LoadOrGet(asset.id)); break; } diff --git a/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.cpp b/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.cpp new file mode 100644 index 00000000..d0200b1f --- /dev/null +++ b/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.cpp @@ -0,0 +1,61 @@ +/*************************************************************************//** + * \file SHShaderAsset.cpp + * \author Brandon Mak + * \date 24 October 2022 + * \brief + * + * Copyright (C) 2022 DigiPen Institute of Technology. Reproduction or + * disclosure of this file or its contents without the prior written consent + * of DigiPen Institute of Technology is prohibited. + *****************************************************************************/ + +#include "SHpch.h" +#include "SHShaderAsset.h" + +namespace SHADE +{ + SHShaderAsset::SHShaderAsset() noexcept + : spirvBinary{}, + shaderType{SH_SHADER_TYPE::VERTEX}, + name{} + { + } + + SHShaderAsset::SHShaderAsset(SHShaderAsset const& rhs) noexcept + : spirvBinary{rhs.spirvBinary}, + shaderType{ rhs.shaderType }, + name{rhs.name} + { + } + + SHShaderAsset::SHShaderAsset(SHShaderAsset&& rhs) noexcept + : spirvBinary{ std::move(rhs.spirvBinary) }, + shaderType{ std::move(rhs.shaderType) }, + name{ std::move(rhs.name) } + { + } + + SHShaderAsset& SHShaderAsset::operator=(SHShaderAsset&& rhs) noexcept + { + if (this == &rhs) + { + return *this; + } + + spirvBinary = std::move(rhs.spirvBinary); + shaderType = std::move(rhs.shaderType); + name = std::move(rhs.name); + } + + SHShaderAsset& SHShaderAsset::operator=(SHShaderAsset const& rhs) noexcept + { + if (this == &rhs) + { + return *this; + } + + spirvBinary = rhs.spirvBinary; + shaderType = rhs.shaderType; + name = rhs.name; + } +} diff --git a/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.h b/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.h index 47681d79..adcd215a 100644 --- a/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.h +++ b/SHADE_Engine/src/Assets/Asset Types/SHShaderAsset.h @@ -13,6 +13,7 @@ #include "SHAssetData.h" #include "SH_API.h" #include +#include namespace SHADE { @@ -38,10 +39,7 @@ namespace SHADE //! Name of the shader file (without parent path) std::string name; - //! id of the shader - uint32_t id; - - SHShaderAsset(void) noexcept; + SHShaderAsset() noexcept; SHShaderAsset(SHShaderAsset const& rhs) noexcept; SHShaderAsset(SHShaderAsset&& rhs) noexcept; SHShaderAsset& operator= (SHShaderAsset&& rhs) noexcept; diff --git a/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.cpp b/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.cpp index 3962b851..046ba767 100644 --- a/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.cpp +++ b/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.cpp @@ -138,14 +138,14 @@ namespace SHADE return; } - ExtractAnimations(*scene, anims); + //ExtractAnimations(*scene, anims); ProcessNode(*scene->mRootNode, *scene, meshes); aiImporter.FreeScene(); } - std::string SHMeshCompiler::CompileMeshBinary(SHMeshAsset const& asset, AssetPath path) noexcept + std::optional SHMeshCompiler::CompileMeshBinary(SHMeshAsset const& asset, AssetPath path) noexcept { std::string newPath{ path.parent_path().string() + '/' }; newPath += asset.header.name + MESH_EXTENSION.data(); diff --git a/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.h b/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.h index 0b873621..1af1298b 100644 --- a/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.h +++ b/SHADE_Engine/src/Assets/Libraries/Compilers/SHMeshCompiler.h @@ -35,6 +35,6 @@ namespace SHADE public: static void LoadFromFile(AssetPath path, MeshVectorRef meshes, AnimVectorRef anims) noexcept; - static std::string CompileMeshBinary(SHMeshAsset const& asset, AssetPath path) noexcept; + static std::optional CompileMeshBinary(SHMeshAsset const& asset, AssetPath path) noexcept; }; } \ No newline at end of file diff --git a/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.cpp b/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.cpp index 85e69e31..242e25f4 100644 --- a/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.cpp +++ b/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.cpp @@ -21,7 +21,9 @@ namespace SHADE { std::string SHShaderSourceCompiler::CompileShaderSourceToBinary(AssetPath path, SHShaderAsset const& data) noexcept { - std::string newPath{ path.string() + SHADER_EXTENSION.data() }; + std::string newPath{ path.string() }; + newPath = newPath.substr(0, newPath.find_last_of('.')); + newPath += SHADER_EXTENSION.data(); std::ofstream file{ newPath, std::ios::binary | std::ios::out | std::ios::trunc }; @@ -85,10 +87,13 @@ namespace SHADE } auto result = new SHShaderAsset(); - result->spirvBinary.reserve(compileResult.end() - compileResult.begin()); + result->spirvBinary.resize(compileResult.end() - compileResult.begin()); std::ranges::copy(compileResult.begin(), compileResult.end(), result->spirvBinary.data()); + result->name = name; + result->shaderType = type; + return result; } @@ -105,7 +110,7 @@ namespace SHADE return SH_SHADER_TYPE::INAVLID_TYPE; } - std::optional SHShaderSourceCompiler::LoadAndCompileShader(AssetPath path) noexcept + std::optional SHShaderSourceCompiler::LoadAndCompileShader(AssetPath path) noexcept { auto type = GetShaderTypeFromFilename(path.filename().string()); @@ -115,6 +120,8 @@ namespace SHADE return {}; } + path.make_preferred(); + std::ifstream file{ path.string(), std::ios::in }; if (file.is_open()) @@ -140,7 +147,7 @@ namespace SHADE return {}; } - std::optional SHShaderSourceCompiler::CompileShaderFromString + std::optional SHShaderSourceCompiler::CompileShaderFromString (std::string const& string, AssetPath path, SH_SHADER_TYPE type) noexcept { auto const data = CompileShaderSourceToMemory(string, path.filename().string(), type); diff --git a/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.h b/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.h index 4872be59..4ba87050 100644 --- a/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.h +++ b/SHADE_Engine/src/Assets/Libraries/Compilers/SHShaderSourceCompiler.h @@ -24,8 +24,8 @@ namespace SHADE static SH_SHADER_TYPE GetShaderTypeFromFilename(std::string name) noexcept; public: - static std::optional LoadAndCompileShader(AssetPath path) noexcept; - static std::optional CompileShaderFromString + static std::optional LoadAndCompileShader(AssetPath path) noexcept; + static std::optional CompileShaderFromString (std::string const& string, AssetPath path, SH_SHADER_TYPE type) noexcept; }; } diff --git a/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.cpp b/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.cpp index 9c65f5b2..5093203a 100644 --- a/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.cpp +++ b/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.cpp @@ -107,63 +107,65 @@ namespace SHADE asset.pixelData = std::move(pixel); } - void SHTextureCompiler::LoadImageAsset(AssetPath path, SHTextureAsset& image) + std::string SHTextureCompiler::WriteToFile(SHTextureAsset const& asset, AssetPath path) noexcept { - LoadTinyDDS(path, image); + std::string newPath{ path.string() }; + newPath = newPath.substr(0, newPath.find_last_of('.')); + newPath += TEXTURE_EXTENSION; + + std::ofstream file{ newPath, std::ios::out | std::ios::binary }; + if (!file.is_open()) + { + SHLOG_ERROR("Unable to open file for writing texture file: {}", path.string()); + } + + constexpr auto intBytes{ sizeof(uint32_t) }; + + uint32_t const mipOffsetCount{ static_cast(asset.mipOffsets.size()) }; + + file.write( + reinterpret_cast(&asset.numBytes), + intBytes + ); + + file.write( + reinterpret_cast(&asset.width), + intBytes + ); + + file.write( + reinterpret_cast(&asset.height), + intBytes + ); + + file.write( + reinterpret_cast(&asset.format), + sizeof(SHTexture::TextureFormat) + ); + + file.write( + reinterpret_cast(&mipOffsetCount), + intBytes + ); + + file.write( + reinterpret_cast(asset.mipOffsets.data()), + intBytes * asset.mipOffsets.size() + ); + + file.write( + reinterpret_cast(asset.pixelData), + asset.numBytes + ); + + file.close(); + return newPath; } - std::string SHTextureCompiler::CompileTextureBinary(SHTextureAsset const& asset, AssetPath path) + + std::optional SHTextureCompiler::CompileTextureAsset(AssetPath path) { - std::string newPath{ path.string() }; - newPath = newPath.substr(0, newPath.find_last_of('.')); - newPath += TEXTURE_EXTENSION; - - std::ofstream file{ newPath, std::ios::out | std::ios::binary }; - if (!file.is_open()) - { - SHLOG_ERROR("Unable to open file for writing texture file: {}", path.string()); - } - - auto const intBytes{sizeof(uint32_t)}; - - uint32_t mipOffsetCount{ static_cast(asset.mipOffsets.size()) }; - - file.write( - reinterpret_cast(&asset.numBytes), - intBytes - ); - - file.write( - reinterpret_cast(&asset.width), - intBytes - ); - - file.write( - reinterpret_cast(&asset.height), - intBytes - ); - - file.write( - reinterpret_cast(&asset.format), - sizeof(SHTexture::TextureFormat) - ); - - file.write( - reinterpret_cast(&mipOffsetCount), - intBytes - ); - - file.write( - reinterpret_cast(asset.mipOffsets.data()), - intBytes * asset.mipOffsets.size() - ); - - file.write( - reinterpret_cast(asset.pixelData), - asset.numBytes - ); - - file.close(); - - return newPath; + auto data = new SHTextureAsset(); + LoadTinyDDS(path, *data); + return WriteToFile(*data, path); } } diff --git a/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.h b/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.h index 3a7e7db7..8c4902a2 100644 --- a/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.h +++ b/SHADE_Engine/src/Assets/Libraries/Compilers/SHTextureCompiler.h @@ -25,8 +25,9 @@ namespace SHADE static std::string TinyDDSResultToString(tinyddsloader::Result value); static vk::Format ddsLoaderToVkFormat(tinyddsloader::DDSFile::DXGIFormat format, bool isLinear); static void LoadTinyDDS(AssetPath path, SHTextureAsset& asset) noexcept; + + static std::string WriteToFile(SHTextureAsset const& asset, AssetPath path) noexcept; public: - static void LoadImageAsset(AssetPath paths, SHTextureAsset& image); - static std::string CompileTextureBinary(SHTextureAsset const& asset, AssetPath path); + static std::optional CompileTextureAsset(AssetPath path); }; } \ No newline at end of file diff --git a/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.cpp b/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.cpp index bfb6b34a..824995d6 100644 --- a/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.cpp +++ b/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.cpp @@ -19,7 +19,9 @@ namespace SHADE { SHAssetData* SHShaderSourceLoader::Load(AssetPath path) { - SHShaderAsset* result = new SHShaderAsset(); + auto result = new SHShaderAsset(); + + result->name = path.stem().stem().string(); std::ifstream file{ path.string(), std::ios::in | std::ios::binary }; if (!file.is_open()) @@ -32,6 +34,9 @@ namespace SHADE file.read(reinterpret_cast(&result->shaderType), sizeof(uint8_t)); file.read(reinterpret_cast(&byteCount), sizeof(size_t)); + + result->spirvBinary.resize(byteCount / sizeof(uint32_t)); + file.read(reinterpret_cast(result->spirvBinary.data()), byteCount); file.close(); diff --git a/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.h b/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.h index 905eb223..befdade5 100644 --- a/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.h +++ b/SHADE_Engine/src/Assets/Libraries/Loaders/SHShaderSourceLoader.h @@ -15,7 +15,7 @@ namespace SHADE { - struct SHShaderSourceLoader final : SHAssetLoader + struct SHShaderSourceLoader : SHAssetLoader { SHAssetData* Load(AssetPath path) override; }; diff --git a/SHADE_Engine/src/Assets/SHAssetManager.cpp b/SHADE_Engine/src/Assets/SHAssetManager.cpp index e7a7a1b7..ca9e9ce1 100644 --- a/SHADE_Engine/src/Assets/SHAssetManager.cpp +++ b/SHADE_Engine/src/Assets/SHAssetManager.cpp @@ -292,26 +292,48 @@ namespace SHADE for (auto const& path : paths) { + SHAsset newAsset + { + .name = path.stem().string(), + .location = 0 + }; + auto const ext{ path.extension().string() }; if (ext == GLSL_EXTENSION.data()) { - SHShaderSourceCompiler::LoadAndCompileShader(path); + newAsset.path = SHShaderSourceCompiler::LoadAndCompileShader(path).value(); + newAsset.id = GenerateAssetID(AssetType::SHADER); + newAsset.type = AssetType::SHADER; } else if (ext == DDS_EXTENSION.data()) { - auto image = new SHTextureAsset(); - SHTextureCompiler::LoadImageAsset(path, *image); + newAsset.path = SHTextureCompiler::CompileTextureAsset(path).value(); + newAsset.id = GenerateAssetID(AssetType::TEXTURE); + newAsset.type = AssetType::TEXTURE; } else if (ext == GLTF_EXTENSION.data() || ext == FBX_EXTENSION.data()) { std::vector meshes; std::vector anims; SHMeshCompiler::LoadFromFile(path, meshes, anims); + for (auto const& mesh : meshes) { - SHMeshCompiler::CompileMeshBinary(*mesh, path); + SHAsset meshAsset{ + .name = mesh->header.name, + .location = 0 + }; + meshAsset.path = SHMeshCompiler::CompileMeshBinary(*mesh, path).value(); + meshAsset.id = GenerateAssetID(AssetType::MESH); + meshAsset.type = AssetType::MESH; + assetCollection.push_back(meshAsset); + SHAssetMetaHandler::WriteMetaData(meshAsset); } + continue; } + + assetCollection.push_back(newAsset); + SHAssetMetaHandler::WriteMetaData(newAsset); } } @@ -328,6 +350,7 @@ namespace SHADE ****************************************************************************/ void SHAssetManager::Load() noexcept { + //CompileAll(); InitLoaders(); BuildAssetCollection(); //LoadAllData(); diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp index 6c8baa36..6fbf5a76 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp @@ -174,11 +174,11 @@ namespace SHADE gBufferSubpass->AddDepthOutput("Depth Buffer", SH_ATT_DESC_TYPE_FLAGS::DEPTH_STENCIL); //// kirsch - //auto kirschShader = shaderModuleLibrary.GetShaderModule("KirschCs.glsl"); + //auto kirschShader = shaderModuleLibrary.GetShaderModule("KirschCs"); //gBufferNode->AddNodeCompute(kirschShader, { "Scene Pre-Process", "Scene" }); // copy - auto pureCopyShader = shaderModuleLibrary.GetShaderModule("PureCopyCs.glsl"); + auto pureCopyShader = shaderModuleLibrary.GetBuiltInShaderModule("PureCopy_CS"); gBufferNode->AddNodeCompute(pureCopyShader, { "Scene Pre-Process", "Scene" }); @@ -196,8 +196,8 @@ namespace SHADE worldRenderer->SetCameraDirector(cameraSystem->CreateDirector()); - auto cubeVS = shaderModuleLibrary.GetBuiltInShaderModule("TestCubeVs.glsl"); - auto cubeFS = shaderModuleLibrary.GetBuiltInShaderModule("TestCubeFs.glsl"); + auto cubeVS = shaderModuleLibrary.GetBuiltInShaderModule("TestCube_VS"); + auto cubeFS = shaderModuleLibrary.GetBuiltInShaderModule("TestCube_FS"); defaultMaterial = AddMaterial(cubeVS, cubeFS, gBufferSubpass); diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Shaders/SHShaderModuleLibrary.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Shaders/SHShaderModuleLibrary.cpp index 15b0111d..d0b160df 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Shaders/SHShaderModuleLibrary.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Shaders/SHShaderModuleLibrary.cpp @@ -92,7 +92,7 @@ namespace SHADE Handle SHShaderModuleLibrary::GetBuiltInShaderModule(std::string shaderName) const noexcept { if (builtInShaderModules.contains(shaderName)) - return shaderModules.at(builtInShaderModules.at(shaderName)); + return builtInShaderModules.at(shaderName); else return {}; } @@ -130,5 +130,10 @@ namespace SHADE { module.second->Reflect(); } + + for (auto& module : builtInShaderModules) + { + module.second->Reflect(); + } } }