Renderer: Add support for struct and UBO

This commit is contained in:
Jérôme Leclercq
2020-07-14 21:59:49 +02:00
parent 4c0dc7813d
commit fbba281d14
12 changed files with 346 additions and 49 deletions

View File

@@ -36,6 +36,24 @@ namespace Nz
enumVal = static_cast<T>(value);
}
template<typename T>
void ShaderSerializerBase::OptEnum(std::optional<T>& optVal)
{
bool isWriting = IsWriting();
bool hasValue;
if (isWriting)
hasValue = optVal.has_value();
Value(hasValue);
if (!isWriting && hasValue)
optVal.emplace();
if (optVal.has_value())
Enum(optVal.value());
}
template<typename T>
void ShaderSerializerBase::OptVal(std::optional<T>& optVal)
{