summaryrefslogtreecommitdiffstats
path: root/src/render/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend')
-rw-r--r--src/render/backend/commandexecuter.cpp2
-rw-r--r--src/render/backend/managers.cpp6
-rw-r--r--src/render/backend/managers_p.h1
-rw-r--r--src/render/backend/uniform.cpp6
4 files changed, 14 insertions, 1 deletions
diff --git a/src/render/backend/commandexecuter.cpp b/src/render/backend/commandexecuter.cpp
index 54c3548ba..8bccb1437 100644
--- a/src/render/backend/commandexecuter.cpp
+++ b/src/render/backend/commandexecuter.cpp
@@ -265,7 +265,7 @@ QJsonObject parameterPackToJson(const Render::ShaderParameterPack &pack)
for (const auto & texture : textures) {
QJsonObject textureObj;
textureObj.insert(QLatin1String("name"), Render::StringToInt::lookupString(texture.glslNameId));
- textureObj.insert(QLatin1String("id"), qint64(texture.texId.id()));
+ textureObj.insert(QLatin1String("id"), qint64(texture.nodeId.id()));
texturesArray.push_back(textureObj);
}
obj.insert(QLatin1String("textures"), texturesArray);
diff --git a/src/render/backend/managers.cpp b/src/render/backend/managers.cpp
index 26fd68600..aa7dbb741 100644
--- a/src/render/backend/managers.cpp
+++ b/src/render/backend/managers.cpp
@@ -110,6 +110,12 @@ void JointManager::addDirtyJoint(Qt3DCore::QNodeId jointId)
m_dirtyJoints.push_back(jointHandle);
}
+void JointManager::removeDirtyJoint(Qt3DCore::QNodeId jointId)
+{
+ const HJoint jointHandle = lookupHandle(jointId);
+ m_dirtyJoints.removeAll(jointHandle);
+}
+
QVector<HJoint> JointManager::dirtyJoints()
{
return std::move(m_dirtyJoints);
diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h
index 89b02b86f..759c16f64 100644
--- a/src/render/backend/managers_p.h
+++ b/src/render/backend/managers_p.h
@@ -443,6 +443,7 @@ class JointManager : public Qt3DCore::QResourceManager<
{
public:
void addDirtyJoint(Qt3DCore::QNodeId jointId);
+ void removeDirtyJoint(Qt3DCore::QNodeId jointId);
QVector<HJoint> dirtyJoints();
private:
diff --git a/src/render/backend/uniform.cpp b/src/render/backend/uniform.cpp
index 41ee24967..17c26e6c7 100644
--- a/src/render/backend/uniform.cpp
+++ b/src/render/backend/uniform.cpp
@@ -38,6 +38,7 @@
****************************************************************************/
#include "uniform_p.h"
+#include "qabstracttexture.h"
QT_BEGIN_NAMESPACE
@@ -261,6 +262,11 @@ UniformValue UniformValue::fromVariant(const QVariant &variant)
memcpy(v.data<float>(), mat33.constData(), 9 * sizeof(float));
break;
}
+ if (variant.userType() == qMetaTypeId<Qt3DRender::QAbstractTexture *>()) {
+ // silently ignore null texture pointers as they are common while textures are loading
+ if (variant.value<Qt3DRender::QAbstractTexture *>() == nullptr)
+ break;
+ }
qWarning() << "Unknown uniform type or value:" << variant << "Please check your QParameters";
}
}