diff --git a/src/Nazara/Graphics/Graphics.cpp b/src/Nazara/Graphics/Graphics.cpp index 95cdb03d9..d5063d101 100644 --- a/src/Nazara/Graphics/Graphics.cpp +++ b/src/Nazara/Graphics/Graphics.cpp @@ -15,8 +15,8 @@ namespace Nz { namespace { - const UInt8 r_blitShader[] = { - #include + const UInt8 r_textureBlitShader[] = { + #include }; const UInt8 r_basicMaterialShader[] = { @@ -151,10 +151,12 @@ namespace Nz if (!m_blitPipelineLayout) throw std::runtime_error("failed to instantiate fullscreen renderpipeline layout"); + ShaderAst::ModulePtr blitShaderModule = m_shaderModuleResolver->Resolve("TextureBlit"); + ShaderWriter::States states; states.shaderModuleResolver = m_shaderModuleResolver; - auto blitShader = m_renderDevice->InstantiateShaderModule(ShaderStageType::Fragment | ShaderStageType::Vertex, ShaderLanguage::NazaraShader, r_blitShader, sizeof(r_blitShader), states); + auto blitShader = m_renderDevice->InstantiateShaderModule(ShaderStageType::Fragment | ShaderStageType::Vertex, *blitShaderModule, states); if (!blitShader) throw std::runtime_error("failed to instantiate blit shader"); @@ -238,7 +240,7 @@ namespace Nz RegisterEmbedShaderModule(r_basicMaterialShader); RegisterEmbedShaderModule(r_depthMaterialShader); RegisterEmbedShaderModule(r_phongMaterialShader); - RegisterEmbedShaderModule(r_blitShader); + RegisterEmbedShaderModule(r_textureBlitShader); RegisterEmbedShaderModule(r_instanceDataModule); RegisterEmbedShaderModule(r_lightDataModule); RegisterEmbedShaderModule(r_viewerDataModule); diff --git a/src/Nazara/Graphics/Resources/Shaders/PhongMaterial.nzsl b/src/Nazara/Graphics/Resources/Shaders/PhongMaterial.nzsl index 4d8f9e0c7..94919142c 100644 --- a/src/Nazara/Graphics/Resources/Shaders/PhongMaterial.nzsl +++ b/src/Nazara/Graphics/Resources/Shaders/PhongMaterial.nzsl @@ -210,13 +210,13 @@ fn main(input: VertToFrag) -> FragOut let output: FragOut; output.RenderTarget0 = vec4[f32](lightColor, 1.0) * diffuseColor; - return output; + return output; } else { let output: FragOut; output.RenderTarget0 = diffuseColor; - return output; + return output; } } diff --git a/src/Nazara/Graphics/Resources/Shaders/blit.nzsl b/src/Nazara/Graphics/Resources/Shaders/TextureBlit.nzsl similarity index 97% rename from src/Nazara/Graphics/Resources/Shaders/blit.nzsl rename to src/Nazara/Graphics/Resources/Shaders/TextureBlit.nzsl index 02db0c35c..e7d4077ce 100644 --- a/src/Nazara/Graphics/Resources/Shaders/blit.nzsl +++ b/src/Nazara/Graphics/Resources/Shaders/TextureBlit.nzsl @@ -1,5 +1,5 @@ [nzsl_version("1.0")] -module Blit; +module TextureBlit; external { diff --git a/src/Nazara/Shader/FilesystemModuleResolver.cpp b/src/Nazara/Shader/FilesystemModuleResolver.cpp index 5904e9702..9f253b97d 100644 --- a/src/Nazara/Shader/FilesystemModuleResolver.cpp +++ b/src/Nazara/Shader/FilesystemModuleResolver.cpp @@ -29,7 +29,7 @@ namespace Nz if (moduleName.empty()) throw std::runtime_error("cannot register anonymous module"); - m_modules.emplace(std::move(moduleName), std::move(module)); + m_modules.insert_or_assign(std::move(moduleName), std::move(module)); } void FilesystemModuleResolver::RegisterModuleDirectory(const std::filesystem::path& realPath)