Shader: Handle type as expressions
This commit is contained in:
@@ -38,7 +38,7 @@ external
|
||||
auto secondAccess = Nz::ShaderBuilder::AccessMember(std::move(firstAccess), { "field" });
|
||||
|
||||
auto swizzle = Nz::ShaderBuilder::Swizzle(std::move(secondAccess), { 2u });
|
||||
auto varDecl = Nz::ShaderBuilder::DeclareVariable("result", Nz::ShaderAst::PrimitiveType::Float32, std::move(swizzle));
|
||||
auto varDecl = Nz::ShaderBuilder::DeclareVariable("result", Nz::ShaderAst::ExpressionType{ Nz::ShaderAst::PrimitiveType::Float32 }, std::move(swizzle));
|
||||
|
||||
multiStatement.statements.push_back(Nz::ShaderBuilder::DeclareFunction(Nz::ShaderStageType::Vertex, "main", std::move(varDecl)));
|
||||
|
||||
@@ -75,7 +75,7 @@ OpFunctionEnd)");
|
||||
auto access = Nz::ShaderBuilder::AccessMember(std::move(ubo), { "s", "field" });
|
||||
|
||||
auto swizzle = Nz::ShaderBuilder::Swizzle(std::move(access), { 2u });
|
||||
auto varDecl = Nz::ShaderBuilder::DeclareVariable("result", Nz::ShaderAst::PrimitiveType::Float32, std::move(swizzle));
|
||||
auto varDecl = Nz::ShaderBuilder::DeclareVariable("result", Nz::ShaderAst::ExpressionType{ Nz::ShaderAst::PrimitiveType::Float32 }, std::move(swizzle));
|
||||
|
||||
multiStatement.statements.push_back(Nz::ShaderBuilder::DeclareFunction(Nz::ShaderStageType::Vertex, "main", std::move(varDecl)));
|
||||
|
||||
|
||||
@@ -315,7 +315,6 @@ OpULessThan
|
||||
OpLoopMerge
|
||||
OpBranchConditional
|
||||
OpLabel
|
||||
OpAccessChain
|
||||
OpLoad
|
||||
OpAccessChain
|
||||
OpLoad
|
||||
|
||||
@@ -33,6 +33,7 @@ fn main()
|
||||
fn main()
|
||||
{
|
||||
let output: f32 = 42.000000;
|
||||
}
|
||||
)");
|
||||
}
|
||||
|
||||
|
||||
@@ -150,8 +150,8 @@ OpFunctionEnd)");
|
||||
[entry(frag)]
|
||||
fn main()
|
||||
{
|
||||
let vec = max(2.0, 1.0).xxx;
|
||||
let vec2 = min(2.0, 1.0).xxx;
|
||||
let v = max(2.0, 1.0).xxx;
|
||||
let v2 = min(2.0, 1.0).xxx;
|
||||
}
|
||||
)";
|
||||
|
||||
@@ -161,9 +161,9 @@ fn main()
|
||||
void main()
|
||||
{
|
||||
float cachedResult = max(2.000000, 1.000000);
|
||||
vec3 vec = vec3(cachedResult, cachedResult, cachedResult);
|
||||
vec3 v = vec3(cachedResult, cachedResult, cachedResult);
|
||||
float cachedResult_2 = min(2.000000, 1.000000);
|
||||
vec3 vec2_ = vec3(cachedResult_2, cachedResult_2, cachedResult_2);
|
||||
vec3 v2 = vec3(cachedResult_2, cachedResult_2, cachedResult_2);
|
||||
}
|
||||
)");
|
||||
|
||||
@@ -171,8 +171,8 @@ void main()
|
||||
[entry(frag)]
|
||||
fn main()
|
||||
{
|
||||
let vec: vec3[f32] = (max(2.000000, 1.000000)).xxx;
|
||||
let vec2: vec3[f32] = (min(2.000000, 1.000000)).xxx;
|
||||
let v: vec3[f32] = (max(2.000000, 1.000000)).xxx;
|
||||
let v2: vec3[f32] = (min(2.000000, 1.000000)).xxx;
|
||||
}
|
||||
)");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user