Renderer/ShaderAst: Fix compilation errors on Linux

This commit is contained in:
Lynix 2017-01-06 16:34:04 +01:00
parent bd8a3ba47d
commit f0a7430d34
4 changed files with 19 additions and 3 deletions

View File

@ -51,7 +51,7 @@ namespace Nz
Float4, // vec4 Float4, // vec4
Mat4x4, // mat4 Mat4x4, // mat4
None // void Void // void
}; };
enum class VariableType enum class VariableType

View File

@ -58,8 +58,8 @@ namespace Nz
} }
inline Variable::Variable(VariableType varKind, ExpressionType varType) : inline Variable::Variable(VariableType varKind, ExpressionType varType) :
kind(varKind), type(varType),
type(varType) kind(varKind)
{ {
} }

View File

@ -16,29 +16,39 @@ namespace Nz { namespace ShaderBuilder
template<ShaderAst::AssignType op> template<ShaderAst::AssignType op>
struct AssignOpBuilder struct AssignOpBuilder
{ {
constexpr AssignOpBuilder() = default;
std::shared_ptr<ShaderAst::AssignOp> operator()(const ShaderAst::VariablePtr& left, const ShaderAst::ExpressionPtr& right) const; std::shared_ptr<ShaderAst::AssignOp> operator()(const ShaderAst::VariablePtr& left, const ShaderAst::ExpressionPtr& right) const;
}; };
template<ShaderAst::BinaryType op> template<ShaderAst::BinaryType op>
struct BinOpBuilder struct BinOpBuilder
{ {
constexpr BinOpBuilder() = default;
std::shared_ptr<ShaderAst::BinaryOp> operator()(const ShaderAst::ExpressionPtr& left, const ShaderAst::ExpressionPtr& right) const; std::shared_ptr<ShaderAst::BinaryOp> operator()(const ShaderAst::ExpressionPtr& left, const ShaderAst::ExpressionPtr& right) const;
}; };
struct BuiltinBuilder struct BuiltinBuilder
{ {
constexpr BuiltinBuilder() = default;
std::shared_ptr<ShaderAst::Variable> operator()(ShaderAst::BuiltinEntry builtin) const; std::shared_ptr<ShaderAst::Variable> operator()(ShaderAst::BuiltinEntry builtin) const;
}; };
template<typename T> template<typename T>
struct GenBuilder struct GenBuilder
{ {
constexpr GenBuilder() = default;
template<typename... Args> std::shared_ptr<T> operator()(Args&&... args) const; template<typename... Args> std::shared_ptr<T> operator()(Args&&... args) const;
}; };
template<ShaderAst::VariableType type> template<ShaderAst::VariableType type>
struct VarBuilder struct VarBuilder
{ {
constexpr VarBuilder() = default;
template<typename... Args> std::shared_ptr<ShaderAst::Variable> operator()(Args&&... args) const; template<typename... Args> std::shared_ptr<ShaderAst::Variable> operator()(Args&&... args) const;
}; };

View File

@ -64,6 +64,9 @@ namespace Nz
switch (kind) switch (kind)
{ {
case ShaderAst::VariableType::Builtin: //< Only there to make compiler happy
break;
case ShaderAst::VariableType::Input: case ShaderAst::VariableType::Input:
m_currentState->inputs.insert(std::make_pair(type, name)); m_currentState->inputs.insert(std::make_pair(type, name));
break; break;
@ -288,6 +291,9 @@ namespace Nz
{ {
switch (type) switch (type)
{ {
case ShaderAst::ExpressionType::Boolean:
Append("bool");
break;
case ShaderAst::ExpressionType::Float1: case ShaderAst::ExpressionType::Float1:
Append("float"); Append("float");
break; break;