Graphics: Fix PredefinedViewerData size
This commit is contained in:
parent
711199fe51
commit
e6ada6846d
|
|
@ -27,6 +27,7 @@ namespace Nz
|
|||
std::size_t AddStruct(const FieldOffsets& fieldStruct);
|
||||
std::size_t AddStructArray(const FieldOffsets& fieldStruct, std::size_t arraySize);
|
||||
|
||||
inline std::size_t GetAlignedSize() const;
|
||||
inline std::size_t GetLargestFieldAlignement() const;
|
||||
inline std::size_t GetSize() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,14 @@ namespace Nz
|
|||
return m_largestFieldAlignment;
|
||||
}
|
||||
|
||||
inline std::size_t FieldOffsets::GetAlignedSize() const
|
||||
{
|
||||
if (m_layout == StructLayout_Std140)
|
||||
return Align(m_size, m_largestFieldAlignment);
|
||||
else
|
||||
return m_size;
|
||||
}
|
||||
|
||||
inline std::size_t FieldOffsets::GetSize() const
|
||||
{
|
||||
return m_size;
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@ namespace Nz
|
|||
lightData.innerOffsets.parameter3 = lightStruct.AddField(StructFieldType_Float2);
|
||||
lightData.innerOffsets.shadowMappingFlag = lightStruct.AddField(StructFieldType_Bool1);
|
||||
|
||||
lightData.innerOffsets.totalSize = lightStruct.GetSize();
|
||||
lightData.innerOffsets.totalSize = lightStruct.GetAlignedSize();
|
||||
|
||||
FieldOffsets lightDataStruct(StructLayout_Std140);
|
||||
for (std::size_t& lightOffset : lightData.lightArray)
|
||||
lightOffset = lightDataStruct.AddStruct(lightStruct);
|
||||
|
||||
lightData.lightArraySize = lightDataStruct.GetSize();
|
||||
lightData.lightArraySize = lightDataStruct.GetAlignedSize();
|
||||
|
||||
return lightData;
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ namespace Nz
|
|||
instanceData.worldMatrixOffset = viewerStruct.AddMatrix(StructFieldType_Float1, 4, 4, true);
|
||||
instanceData.invWorldMatrixOffset = viewerStruct.AddMatrix(StructFieldType_Float1, 4, 4, true);
|
||||
|
||||
instanceData.totalSize = viewerStruct.GetSize();
|
||||
instanceData.totalSize = viewerStruct.GetAlignedSize();
|
||||
|
||||
return instanceData;
|
||||
}
|
||||
|
|
@ -107,7 +107,7 @@ namespace Nz
|
|||
viewerData.invTargetSizeOffset = viewerStruct.AddField(StructFieldType_Float2);
|
||||
viewerData.eyePositionOffset = viewerStruct.AddField(StructFieldType_Float3);
|
||||
|
||||
viewerData.totalSize = viewerStruct.GetSize();
|
||||
viewerData.totalSize = viewerStruct.GetAlignedSize();
|
||||
|
||||
return viewerData;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue