Improved ShaderBuilder
Former-commit-id: 345b6389f3da460a6c4d6959a7fe808542f5f609
This commit is contained in:
parent
677536c4b2
commit
73c1b9508b
|
|
@ -450,6 +450,7 @@ namespace
|
||||||
}
|
}
|
||||||
|
|
||||||
shader->SetFlags(flags);
|
shader->SetFlags(flags);
|
||||||
|
shader->SetPersistent(false, false);
|
||||||
|
|
||||||
return shader.release();
|
return shader.release();
|
||||||
}
|
}
|
||||||
|
|
@ -462,11 +463,15 @@ const NzShader* NzShaderBuilder::Get(nzUInt32 flags)
|
||||||
{
|
{
|
||||||
// Alors nous créons le shader
|
// Alors nous créons le shader
|
||||||
NzShader* shader = BuildShader(flags);
|
NzShader* shader = BuildShader(flags);
|
||||||
if (!shader) ///TODO: Ajouter une erreur en mode Once
|
if (!shader)
|
||||||
return s_shaders[0]; // Shader par défaut
|
{
|
||||||
|
NazaraWarning("Failed to build shader (flags: 0x" + NzString::Number(flags, 16) + ", using default one...");
|
||||||
|
|
||||||
|
shader = s_shaders[0]; // Shader par défaut
|
||||||
|
}
|
||||||
|
|
||||||
s_shaders[flags] = shader;
|
s_shaders[flags] = shader;
|
||||||
///TODO: emplace
|
shader->AddResourceReference();
|
||||||
|
|
||||||
return shader;
|
return shader;
|
||||||
}
|
}
|
||||||
|
|
@ -484,6 +489,7 @@ bool NzShaderBuilder::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
s_shaders[0] = shader;
|
s_shaders[0] = shader;
|
||||||
|
shader->AddResourceReference();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -491,7 +497,7 @@ bool NzShaderBuilder::Initialize()
|
||||||
void NzShaderBuilder::Uninitialize()
|
void NzShaderBuilder::Uninitialize()
|
||||||
{
|
{
|
||||||
for (auto it : s_shaders)
|
for (auto it : s_shaders)
|
||||||
delete it.second;
|
it.second->RemoveResourceReference();
|
||||||
|
|
||||||
s_shaders.clear();
|
s_shaders.clear();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue