summaryrefslogtreecommitdiffstats
path: root/src/render/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend')
-rw-r--r--src/render/backend/uniform.cpp4
-rw-r--r--src/render/backend/uniform_p.h4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/render/backend/uniform.cpp b/src/render/backend/uniform.cpp
index 12b496161..92fb077f7 100644
--- a/src/render/backend/uniform.cpp
+++ b/src/render/backend/uniform.cpp
@@ -239,7 +239,9 @@ UniformValue UniformValue::fromVariant(const QVariant &variant)
if (listEntryType == qNodeIdTypeId)
v.m_valueType = NodeId;
- const int stride = byteSizeForMetaType(listEntryType) / sizeof(float);
+ v.m_elementByteSize = byteSizeForMetaType(listEntryType);
+ const int stride = v.m_elementByteSize / sizeof(float);
+
// Resize v.m_data
v.m_data.resize(stride * variants.size());
diff --git a/src/render/backend/uniform_p.h b/src/render/backend/uniform_p.h
index ee83823aa..b1ddcf01c 100644
--- a/src/render/backend/uniform_p.h
+++ b/src/render/backend/uniform_p.h
@@ -195,6 +195,7 @@ public:
template<typename T>
void setData(const QList<T> &v)
{
+ m_elementByteSize = sizeof(T);
m_data.resize(v.size() * sizeof(T) / sizeof(float));
m_valueType = ScalarValue;
float *data = m_data.data();
@@ -204,6 +205,8 @@ public:
static UniformValue fromVariant(const QVariant &variant);
int byteSize() const { return int(m_data.size()) * sizeof(float); }
+ int elementCount() const { return byteSize() / elementByteSize(); }
+ int elementByteSize() const { return m_elementByteSize; }
template<typename T>
const T *constData() const
@@ -235,6 +238,7 @@ private:
// TODO: Replace this hack see QTBUG-57510
UniformType m_storedType = Unknown;
+ int m_elementByteSize = sizeof(float);
};
template<>