ShaderNode: Add Mat4x4 type and nodes

This commit is contained in:
Jérôme Leclercq
2020-07-22 14:46:44 +02:00
parent b441bab218
commit 5a350ee76b
17 changed files with 668 additions and 104 deletions

View File

@@ -173,22 +173,7 @@ auto BufferField::dataType(QtNodes::PortType portType, QtNodes::PortIndex portIn
const auto& member = RetrieveNestedMember();
assert(std::holds_alternative<PrimitiveType>(member.type));
switch (std::get<PrimitiveType>(member.type))
{
case PrimitiveType::Bool:
return BoolData::Type();
case PrimitiveType::Float1:
return FloatData::Type();
case PrimitiveType::Float2:
case PrimitiveType::Float3:
case PrimitiveType::Float4:
return VecData::Type();
}
assert(false);
throw std::runtime_error("Unhandled primitive type");
return ShaderGraph::ToNodeDataType(std::get<PrimitiveType>(member.type));
}
QString BufferField::portCaption(QtNodes::PortType portType, QtNodes::PortIndex portIndex) const
@@ -260,6 +245,7 @@ std::shared_ptr<QtNodes::NodeData> BufferField::outData(QtNodes::PortIndex port)
case PrimitiveType::Float2: return std::make_shared<VecData>(2);
case PrimitiveType::Float3: return std::make_shared<VecData>(3);
case PrimitiveType::Float4: return std::make_shared<VecData>(4);
case PrimitiveType::Mat4x4: return std::make_shared<Matrix4Data>();
}
assert(false);