Renderer/GlslWriter: Add #version directive
This commit is contained in:
parent
d538a7ddf5
commit
f487761940
|
|
@ -30,6 +30,8 @@ namespace Nz
|
|||
void RegisterFunction(const String& name, ShaderAst::StatementPtr statement, std::initializer_list<ShaderAst::VariablePtr> parameters, ShaderAst::ExpressionType ret) override;
|
||||
void RegisterVariable(ShaderAst::VariableType kind, const String& name, ShaderAst::ExpressionType type) override;
|
||||
|
||||
void SetGlslVersion(unsigned int version);
|
||||
|
||||
void Write(const ShaderAst::AssignOp& node) override;
|
||||
void Write(const ShaderAst::Branch& node) override;
|
||||
void Write(const ShaderAst::BinaryOp& node) override;
|
||||
|
|
@ -69,6 +71,7 @@ namespace Nz
|
|||
std::unordered_map<String, Function> m_functions;
|
||||
Function* m_currentFunction;
|
||||
State* m_currentState;
|
||||
unsigned int m_glslVersion;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ namespace Nz
|
|||
{
|
||||
GlslWriter::GlslWriter() :
|
||||
m_currentFunction(nullptr),
|
||||
m_currentState(nullptr)
|
||||
m_currentState(nullptr),
|
||||
m_glslVersion(110)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -25,6 +26,11 @@ namespace Nz
|
|||
|
||||
node->Register(*this);
|
||||
|
||||
// Header
|
||||
Append("#version ");
|
||||
AppendLine(String::Number(m_glslVersion));
|
||||
AppendLine();
|
||||
|
||||
// Uniforms
|
||||
if (state.m_uniforms.empty())
|
||||
{
|
||||
|
|
@ -109,6 +115,11 @@ namespace Nz
|
|||
}
|
||||
}
|
||||
|
||||
void GlslWriter::SetGlslVersion(unsigned int version)
|
||||
{
|
||||
m_glslVersion = version;
|
||||
}
|
||||
|
||||
void GlslWriter::Write(const ShaderAst::NodePtr& node)
|
||||
{
|
||||
node->Visit(*this);
|
||||
|
|
|
|||
Loading…
Reference in New Issue