ShaderNode fixes
This commit is contained in:
@@ -31,7 +31,7 @@ Nz::ShaderAst::NodePtr CastVec<ToComponentCount>::BuildNode(Nz::ShaderAst::Expre
|
||||
std::size_t overflowComponentCount = ToComponentCount - fromComponentCount;
|
||||
|
||||
std::vector<Nz::ShaderAst::ExpressionPtr> params;
|
||||
params.emplace_back(std::move(params[0]));
|
||||
params.emplace_back(std::move(expressions[0]));
|
||||
for (std::size_t i = 0; i < overflowComponentCount; ++i)
|
||||
params.emplace_back(Nz::ShaderBuilder::Constant(m_overflowComponents[i]));
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Nz::ShaderAst::NodePtr PositionOutputValue::BuildNode(Nz::ShaderAst::ExpressionP
|
||||
assert(count == 1);
|
||||
assert(outputIndex == 0);
|
||||
|
||||
auto output = Nz::ShaderBuilder::AccessMember(Nz::ShaderBuilder::Identifier("OutputData"), { "position" });
|
||||
auto output = Nz::ShaderBuilder::AccessMember(Nz::ShaderBuilder::Identifier("output"), { "position" });
|
||||
return ShaderBuilder::Assign(ShaderAst::AssignType::Simple, std::move(output), std::move(expressions[0]));
|
||||
}
|
||||
|
||||
|
||||
@@ -488,7 +488,7 @@ Nz::ShaderAst::StatementPtr ShaderGraph::ToAst() const
|
||||
auto& extVar = external->externalVars.emplace_back();
|
||||
extVar.bindingIndex = buffer.bindingIndex;
|
||||
extVar.name = buffer.name;
|
||||
extVar.type = Nz::ShaderAst::IdentifierType{ structInfo.name };
|
||||
extVar.type = Nz::ShaderAst::UniformType{ Nz::ShaderAst::IdentifierType{ structInfo.name } };
|
||||
}
|
||||
|
||||
for (const auto& texture : m_textures)
|
||||
@@ -536,6 +536,7 @@ Nz::ShaderAst::StatementPtr ShaderGraph::ToAst() const
|
||||
if (m_type == ShaderType::Vertex)
|
||||
{
|
||||
auto& position = structDesc.members.emplace_back();
|
||||
position.builtin = Nz::ShaderAst::BuiltinEntry::VertexPosition;
|
||||
position.name = "position";
|
||||
position.type = Nz::ShaderAst::VectorType{ 4, Nz::ShaderAst::PrimitiveType::Float32 };
|
||||
}
|
||||
@@ -802,7 +803,7 @@ std::unique_ptr<Nz::ShaderAst::DeclareFunctionStatement> ShaderGraph::ToFunction
|
||||
parameters.push_back({
|
||||
"input",
|
||||
Nz::ShaderAst::IdentifierType{ "InputData" }
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Nz::ShaderAst::ExpressionType returnType;
|
||||
@@ -944,5 +945,8 @@ std::unique_ptr<Nz::ShaderAst::DeclareFunctionStatement> ShaderGraph::ToFunction
|
||||
statements.emplace_back(static_unique_pointer_cast<Nz::ShaderAst::Statement>(std::move(astNode)));
|
||||
}
|
||||
|
||||
if (!m_outputs.empty())
|
||||
statements.push_back(Nz::ShaderBuilder::Return(Nz::ShaderBuilder::Identifier("output")));
|
||||
|
||||
return Nz::ShaderBuilder::DeclareFunction(ToShaderStageType(m_type), "main", std::move(parameters), std::move(statements), std::move(returnType));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user