Shader: Fix module overwriting

This commit is contained in:
Jérôme Leclercq 2022-03-15 18:35:02 +01:00
parent 06406fc20e
commit 801b06abfe
4 changed files with 10 additions and 8 deletions

View File

@ -15,8 +15,8 @@ namespace Nz
{ {
namespace namespace
{ {
const UInt8 r_blitShader[] = { const UInt8 r_textureBlitShader[] = {
#include <Nazara/Graphics/Resources/Shaders/Blit.nzsl.h> #include <Nazara/Graphics/Resources/Shaders/TextureBlit.nzsl.h>
}; };
const UInt8 r_basicMaterialShader[] = { const UInt8 r_basicMaterialShader[] = {
@ -151,10 +151,12 @@ namespace Nz
if (!m_blitPipelineLayout) if (!m_blitPipelineLayout)
throw std::runtime_error("failed to instantiate fullscreen renderpipeline layout"); throw std::runtime_error("failed to instantiate fullscreen renderpipeline layout");
ShaderAst::ModulePtr blitShaderModule = m_shaderModuleResolver->Resolve("TextureBlit");
ShaderWriter::States states; ShaderWriter::States states;
states.shaderModuleResolver = m_shaderModuleResolver; 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) if (!blitShader)
throw std::runtime_error("failed to instantiate blit shader"); throw std::runtime_error("failed to instantiate blit shader");
@ -238,7 +240,7 @@ namespace Nz
RegisterEmbedShaderModule(r_basicMaterialShader); RegisterEmbedShaderModule(r_basicMaterialShader);
RegisterEmbedShaderModule(r_depthMaterialShader); RegisterEmbedShaderModule(r_depthMaterialShader);
RegisterEmbedShaderModule(r_phongMaterialShader); RegisterEmbedShaderModule(r_phongMaterialShader);
RegisterEmbedShaderModule(r_blitShader); RegisterEmbedShaderModule(r_textureBlitShader);
RegisterEmbedShaderModule(r_instanceDataModule); RegisterEmbedShaderModule(r_instanceDataModule);
RegisterEmbedShaderModule(r_lightDataModule); RegisterEmbedShaderModule(r_lightDataModule);
RegisterEmbedShaderModule(r_viewerDataModule); RegisterEmbedShaderModule(r_viewerDataModule);

View File

@ -1,5 +1,5 @@
[nzsl_version("1.0")] [nzsl_version("1.0")]
module Blit; module TextureBlit;
external external
{ {

View File

@ -29,7 +29,7 @@ namespace Nz
if (moduleName.empty()) if (moduleName.empty())
throw std::runtime_error("cannot register anonymous module"); 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) void FilesystemModuleResolver::RegisterModuleDirectory(const std::filesystem::path& realPath)