Added methods to retrieve shader binary

Added support for GL_ARB_get_program_binary


Former-commit-id: 3c23cfd237680f7832d15279af9e4248f9fa4678
This commit is contained in:
Lynix
2013-08-01 23:22:48 +02:00
parent c276a4a623
commit d751718a16
7 changed files with 103 additions and 0 deletions

View File

@@ -106,6 +106,31 @@ void NzShader::Destroy()
}
}
NzByteArray NzShader::GetBinary() const
{
#if NAZARA_RENDERER_SAFE
if (!m_impl)
{
NazaraError("Shader not created");
return NzByteArray();
}
if (!m_compiled)
{
NazaraError("Shader is not compiled");
return NzByteArray();
}
if (!m_impl->IsBinaryRetrievable())
{
NazaraError("Shader binary is not retrievable");
return NzByteArray();
}
#endif
return m_impl->GetBinary();
}
nzUInt32 NzShader::GetFlags() const
{
return m_flags;
@@ -211,6 +236,19 @@ bool NzShader::HasUniform(const NzString& name) const
return m_impl->GetUniformLocation(name) != -1;
}
bool NzShader::IsBinaryRetrievable() const
{
#if NAZARA_RENDERER_SAFE
if (!m_impl)
{
NazaraError("Shader not created");
return false;
}
#endif
return m_impl->IsBinaryRetrievable();
}
bool NzShader::IsCompiled() const
{
#if NAZARA_RENDERER_SAFE