Renderer/ShaderAst: Add Constant overloads
This commit is contained in:
@@ -229,7 +229,11 @@ namespace Nz
|
||||
class NAZARA_RENDERER_API Constant : public Expression
|
||||
{
|
||||
public:
|
||||
inline explicit Constant(bool value);
|
||||
inline explicit Constant(float value);
|
||||
inline explicit Constant(const Vector2f& value);
|
||||
inline explicit Constant(const Vector3f& value);
|
||||
inline explicit Constant(const Vector4f& value);
|
||||
|
||||
ExpressionType GetExpressionType() const override;
|
||||
void Register(ShaderWriter& visitor) override;
|
||||
@@ -239,10 +243,11 @@ namespace Nz
|
||||
|
||||
union
|
||||
{
|
||||
bool bool1;
|
||||
float vec1;
|
||||
Nz::Vector2f vec2;
|
||||
Nz::Vector3f vec3;
|
||||
Nz::Vector4f vec4;
|
||||
Vector2f vec2;
|
||||
Vector3f vec3;
|
||||
Vector4f vec4;
|
||||
} values;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -157,11 +157,35 @@ namespace Nz
|
||||
throw std::runtime_error("Component count doesn't match required component count");
|
||||
}
|
||||
|
||||
inline Constant::Constant(bool value) :
|
||||
exprType(ExpressionType::Boolean)
|
||||
{
|
||||
values.bool1 = value;
|
||||
}
|
||||
|
||||
inline Constant::Constant(float value) :
|
||||
exprType(ExpressionType::Float1)
|
||||
{
|
||||
values.vec1 = value;
|
||||
}
|
||||
|
||||
inline Constant::Constant(const Vector2f& value) :
|
||||
exprType(ExpressionType::Float2)
|
||||
{
|
||||
values.vec2 = value;
|
||||
}
|
||||
|
||||
inline Constant::Constant(const Vector3f& value) :
|
||||
exprType(ExpressionType::Float3)
|
||||
{
|
||||
values.vec3 = value;
|
||||
}
|
||||
|
||||
inline Constant::Constant(const Vector4f& value) :
|
||||
exprType(ExpressionType::Float4)
|
||||
{
|
||||
values.vec4 = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user