summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/backend/rendertechnique.cpp4
-rw-r--r--src/render/frontend/qopenglfilter.cpp14
-rw-r--r--src/render/frontend/qopenglfilter.h2
-rw-r--r--src/render/frontend/qtechnique.cpp36
-rw-r--r--src/render/frontend/qtechnique.h3
-rw-r--r--src/render/frontend/qtechnique_p.h4
-rw-r--r--src/render/io/gltfparser.cpp42
7 files changed, 46 insertions, 59 deletions
diff --git a/src/render/backend/rendertechnique.cpp b/src/render/backend/rendertechnique.cpp
index b32de6a1f..70061b54a 100644
--- a/src/render/backend/rendertechnique.cpp
+++ b/src/render/backend/rendertechnique.cpp
@@ -93,7 +93,7 @@ void RenderTechnique::updateFromPeer(QNode *peer)
// Copy OpenGLFilter info from frontend OpenGLFilter
QOpenGLFilter *peerFilter = technique->openGLFilter();
- m_openglFilter->copy(peerFilter);
+ m_openglFilter->copy(*peerFilter);
}
}
@@ -106,7 +106,7 @@ void RenderTechnique::sceneChangeEvent(const QSceneChangePtr &e)
if (propertyChange->propertyName() == QByteArrayLiteral("openGLFilter")) {
QOpenGLFilter *filter = propertyChange->value().value<QOpenGLFilter *>();
if (filter != Q_NULLPTR) {
- m_openglFilter->copy(filter);
+ m_openglFilter->copy(*filter);
delete filter;
}
}
diff --git a/src/render/frontend/qopenglfilter.cpp b/src/render/frontend/qopenglfilter.cpp
index a11dd568a..7cfff568e 100644
--- a/src/render/frontend/qopenglfilter.cpp
+++ b/src/render/frontend/qopenglfilter.cpp
@@ -74,15 +74,15 @@ QOpenGLFilter::QOpenGLFilter(QObject *parent)
{
}
-void QOpenGLFilter::copy(const QOpenGLFilter *ref)
+void QOpenGLFilter::copy(const QOpenGLFilter &ref)
{
Q_D(QOpenGLFilter);
- d->m_api = ref->api();
- d->m_profile = ref->profile();
- d->m_major = ref->majorVersion();
- d->m_minor = ref->minorVersion();
- d->m_extensions = ref->extensions();
- d->m_vendor = ref->vendor();
+ d->m_api = ref.api();
+ d->m_profile = ref.profile();
+ d->m_major = ref.majorVersion();
+ d->m_minor = ref.minorVersion();
+ d->m_extensions = ref.extensions();
+ d->m_vendor = ref.vendor();
}
QOpenGLFilter::Api QOpenGLFilter::api() const
diff --git a/src/render/frontend/qopenglfilter.h b/src/render/frontend/qopenglfilter.h
index 2c842df3f..c0a826f4e 100644
--- a/src/render/frontend/qopenglfilter.h
+++ b/src/render/frontend/qopenglfilter.h
@@ -82,7 +82,7 @@ public:
explicit QOpenGLFilter(QObject *parent = 0);
- void copy(const QOpenGLFilter *ref);
+ void copy(const QOpenGLFilter &ref);
Api api() const;
Profile profile() const;
diff --git a/src/render/frontend/qtechnique.cpp b/src/render/frontend/qtechnique.cpp
index ee81415af..b73c798a1 100644
--- a/src/render/frontend/qtechnique.cpp
+++ b/src/render/frontend/qtechnique.cpp
@@ -52,27 +52,32 @@ namespace Qt3D {
QTechniquePrivate::QTechniquePrivate(QTechnique *qq)
: QNodePrivate(qq)
- , m_openGLFilter(new QOpenGLFilter())
{
}
QTechniquePrivate::~QTechniquePrivate()
{
- delete m_openGLFilter;
}
QTechnique::QTechnique(QNode *parent)
: QNode(*new QTechniquePrivate(this), parent)
{
Q_D(QTechnique);
- QObject::connect(d->m_openGLFilter, SIGNAL(openGLFilterChanged()), this, SLOT(openGLFilterChanged()));
+ QObject::connect(&d->m_openGLFilter, SIGNAL(openGLFilterChanged()), this, SLOT(openGLFilterChanged()));
+}
+
+QTechnique::QTechnique(QTechniquePrivate &dd, QNode *parent)
+ : QNode(dd, parent)
+{
+ Q_D(QTechnique);
+ QObject::connect(&d->m_openGLFilter, SIGNAL(openGLFilterChanged()), this, SLOT(openGLFilterChanged()));
}
void QTechnique::copy(const QNode *ref)
{
QNode::copy(ref);
const QTechnique *tech = static_cast<const QTechnique*>(ref);
- d_func()->m_openGLFilter->copy(tech->d_func()->m_openGLFilter);
+ d_func()->m_openGLFilter.copy(tech->d_func()->m_openGLFilter);
Q_FOREACH (QAnnotation *annotation, tech->d_func()->m_annotationList)
addAnnotation(qobject_cast<QAnnotation *>(QNodePrivate::get(annotation)->clone()));
@@ -82,13 +87,6 @@ void QTechnique::copy(const QNode *ref)
addParameter(qobject_cast<QParameter *>(QNodePrivate::get(p)->clone()));
}
-QTechnique::QTechnique(QTechniquePrivate &dd, QNode *parent)
- : QNode(dd, parent)
-{
- Q_D(QTechnique);
- QObject::connect(d->m_openGLFilter, SIGNAL(openGLFilterChanged()), this, SLOT(openGLFilterChanged()));
-}
-
void QTechnique::openGLFilterChanged()
{
Q_D(QTechnique);
@@ -236,20 +234,10 @@ QList<QParameter *> QTechnique::parameters() const
return d->m_parameters;
}
-QParameter *QTechnique::parameterByName(QString name) const
+QOpenGLFilter *QTechnique::openGLFilter()
{
- Q_D(const QTechnique);
- foreach (QParameter* p, d->m_parameters) {
- if (p->name() == name)
- return p;
- }
- return NULL;
-}
-
-QOpenGLFilter *QTechnique::openGLFilter() const
-{
- Q_D(const QTechnique);
- return d->m_openGLFilter;
+ Q_D(QTechnique);
+ return &d->m_openGLFilter;
}
} // of namespace Qt3D
diff --git a/src/render/frontend/qtechnique.h b/src/render/frontend/qtechnique.h
index 26eab14e7..858cc206c 100644
--- a/src/render/frontend/qtechnique.h
+++ b/src/render/frontend/qtechnique.h
@@ -77,8 +77,7 @@ public:
void removePass(QRenderPass *pass);
QList<QRenderPass *> renderPasses() const;
- QParameter* parameterByName(QString name) const;
- QOpenGLFilter *openGLFilter() const;
+ QOpenGLFilter *openGLFilter();
protected:
QTechnique(QTechniquePrivate &dd, QNode *parent = 0);
diff --git a/src/render/frontend/qtechnique_p.h b/src/render/frontend/qtechnique_p.h
index d3aa04b8c..cffacb008 100644
--- a/src/render/frontend/qtechnique_p.h
+++ b/src/render/frontend/qtechnique_p.h
@@ -43,6 +43,7 @@
#define QT3D_QTECHNIQUE_P_H
#include <private/qnode_p.h>
+#include <Qt3DRenderer/qopenglfilter.h>
#include <Qt3DRenderer/qt3drenderer_global.h>
QT_BEGIN_NAMESPACE
@@ -53,7 +54,6 @@ class QTechnique;
class QAnnotation;
class QParameter;
class QRenderPass;
-class QOpenGLFilter;
class QT3DRENDERERSHARED_EXPORT QTechniquePrivate : public QNodePrivate
{
@@ -65,7 +65,7 @@ public:
QList<QAnnotation *> m_annotationList;
QList<QParameter *> m_parameters;
QList<QRenderPass*> m_renderPasses;
- QOpenGLFilter *m_openGLFilter;
+ QOpenGLFilter m_openGLFilter;
};
} // Qt3D
diff --git a/src/render/io/gltfparser.cpp b/src/render/io/gltfparser.cpp
index a035f29f0..38522b0e6 100644
--- a/src/render/io/gltfparser.cpp
+++ b/src/render/io/gltfparser.cpp
@@ -534,28 +534,28 @@ QMaterial* GLTFParser::material(QString id)
processName(jsonObj, mat);
- QJsonObject values = tech.value(KEY_VALUES).toObject();
- foreach (QString vName, values.keys()) {
- QParameter* param = technique->parameterByName(vName);
- if (!param) {
- qWarning() << "unknown parameter:" << vName << "in technique" << tname
- << "processing material" << id;
- continue;
- }
+// QJsonObject values = tech.value(KEY_VALUES).toObject();
+// foreach (QString vName, values.keys()) {
+// QParameter* param = technique->parameterForName(vName);
+// if (!param) {
+// qWarning() << "unknown parameter:" << vName << "in technique" << tname
+// << "processing material" << id;
+// continue;
+// }
- if (param->isTextureType()) {
- QString textureId = values.value(vName).toString();
- if (!m_textures.contains(textureId)) {
- qWarning() << "unknown texture" << textureId << "for parameter" << vName
- << "of material" << id;
- } else {
- mat->setTextureParameter(vName, m_textures.value(textureId));
- }
- } else {
- // QVariant var = parameterValueFromJSON(param, values.value(vName));
- mat->addParameter(param);
- }
- } // of material technique-instance values iteration
+// if (param->isTextureType()) {
+// QString textureId = values.value(vName).toString();
+// if (!m_textures.contains(textureId)) {
+// qWarning() << "unknown texture" << textureId << "for parameter" << vName
+// << "of material" << id;
+// } else {
+// mat->setTextureParameter(vName, m_textures.value(textureId));
+// }
+// } else {
+// // QVariant var = parameterValueFromJSON(param, values.value(vName));
+// mat->addParameter(param);
+// }
+// } // of material technique-instance values iteration
m_materialCache[id] = mat;
return mat;