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 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 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::AssignOp& node) override;
|
||||||
void Write(const ShaderAst::Branch& node) override;
|
void Write(const ShaderAst::Branch& node) override;
|
||||||
void Write(const ShaderAst::BinaryOp& node) override;
|
void Write(const ShaderAst::BinaryOp& node) override;
|
||||||
|
|
@ -69,6 +71,7 @@ namespace Nz
|
||||||
std::unordered_map<String, Function> m_functions;
|
std::unordered_map<String, Function> m_functions;
|
||||||
Function* m_currentFunction;
|
Function* m_currentFunction;
|
||||||
State* m_currentState;
|
State* m_currentState;
|
||||||
|
unsigned int m_glslVersion;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@ namespace Nz
|
||||||
{
|
{
|
||||||
GlslWriter::GlslWriter() :
|
GlslWriter::GlslWriter() :
|
||||||
m_currentFunction(nullptr),
|
m_currentFunction(nullptr),
|
||||||
m_currentState(nullptr)
|
m_currentState(nullptr),
|
||||||
|
m_glslVersion(110)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -25,6 +26,11 @@ namespace Nz
|
||||||
|
|
||||||
node->Register(*this);
|
node->Register(*this);
|
||||||
|
|
||||||
|
// Header
|
||||||
|
Append("#version ");
|
||||||
|
AppendLine(String::Number(m_glslVersion));
|
||||||
|
AppendLine();
|
||||||
|
|
||||||
// Uniforms
|
// Uniforms
|
||||||
if (state.m_uniforms.empty())
|
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)
|
void GlslWriter::Write(const ShaderAst::NodePtr& node)
|
||||||
{
|
{
|
||||||
node->Visit(*this);
|
node->Visit(*this);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue