Renderer/ShaderAst: Add Sample2D

This commit is contained in:
Lynix
2020-05-19 20:06:11 +02:00
parent c26f3b9b71
commit e23eb74802
7 changed files with 67 additions and 8 deletions

View File

@@ -128,6 +128,15 @@ namespace Nz
node->Visit(*this);
}
void GlslWriter::Write(const ShaderAst::Sample2D& node)
{
Append("texture(");
Write(node.sampler);
Append(", ");
Write(node.coordinates);
Append(")");
}
void GlslWriter::Write(const ShaderAst::AssignOp& node)
{
Write(node.variable);
@@ -338,6 +347,9 @@ namespace Nz
case ShaderAst::ExpressionType::Mat4x4:
Append("mat4");
break;
case ShaderAst::ExpressionType::Sampler2D:
Append("sampler2D");
break;
case ShaderAst::ExpressionType::Void:
Append("void");
break;

View File

@@ -6,7 +6,7 @@
#include <Nazara/Renderer/ShaderWriter.hpp>
#include <Nazara/Renderer/Debug.hpp>
namespace Nz { namespace ShaderAst
namespace Nz::ShaderAst
{
void ExpressionStatement::Register(ShaderWriter& visitor)
{
@@ -192,5 +192,21 @@ namespace Nz { namespace ShaderAst
{
visitor.Write(*this);
}
}
ExpressionType Sample2D::GetExpressionType() const
{
return ExpressionType::Float4;
}
void Sample2D::Register(ShaderWriter& visitor)
{
sampler->Register(visitor);
coordinates->Register(visitor);
}
void Sample2D::Visit(ShaderWriter& visitor)
{
visitor.Write(*this);
}
}