diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2014-09-12 18:17:32 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-09-29 22:53:21 +0200 |
commit | 0d5b71f4df0d0acfc807076441a52b4ceefb410b (patch) | |
tree | cb714bb858a50b8692258ea1f84611bf41d48d90 /src/render | |
parent | c2332dd5480943e5bbcc190c879a2b6647d69bf5 (diff) |
QParameter new overloaded ctors
Change-Id: Ia6e3c3285884265b303485176109a4d2c80ccabe
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/backend/renderer.cpp | 16 | ||||
-rw-r--r-- | src/render/frontend/qparameter.cpp | 11 | ||||
-rw-r--r-- | src/render/frontend/qparameter.h | 4 | ||||
-rw-r--r-- | src/render/io/gltfparser.cpp | 2 |
4 files changed, 22 insertions, 11 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp index 6cf5c30f2..9453a2c1e 100644 --- a/src/render/backend/renderer.cpp +++ b/src/render/backend/renderer.cpp @@ -198,18 +198,18 @@ void Renderer::buildDefaultTechnique() m_defaultTechnique->addPass(basicPass); // diffuse lighting uniforms - QParameter* lightPos = new QParameter(m_defaultTechnique, QStringLiteral("lightPos"), QVector4D(10.0f, 10.0f, 0.0f, 1.0f)); + QParameter* lightPos = new QParameter(QStringLiteral("lightPos"), QVector4D(10.0f, 10.0f, 0.0f, 1.0f)); m_defaultTechnique->addParameter(lightPos); basicPass->addBinding(new QParameterMapper(QStringLiteral("lightPos"), QStringLiteral("lightPosition"), QParameterMapper::Uniform)); - QParameter* lightIntensity = new QParameter(m_defaultTechnique, QStringLiteral("lightIntensity"), QVector3D(0.5f, 0.5f, 0.5f)); + QParameter* lightIntensity = new QParameter(QStringLiteral("lightIntensity"), QVector3D(0.5f, 0.5f, 0.5f)); m_defaultTechnique->addParameter(lightIntensity); - QParameter* kd = new QParameter(m_defaultTechnique, QStringLiteral("diffuse"), QVector3D(1.0f, 0.5f, 0.0f)); + QParameter* kd = new QParameter(QStringLiteral("diffuse"), QVector3D(1.0f, 0.5f, 0.0f)); m_defaultTechnique->addParameter(kd); basicPass->addBinding(new QParameterMapper(QStringLiteral("diffuse"), QStringLiteral("kd"), QParameterMapper::Uniform)); - QParameter* ka = new QParameter(m_defaultTechnique, QStringLiteral("ambient"), QVector3D(0.2f, 0.2f, 0.2f)); + QParameter* ka = new QParameter(QStringLiteral("ambient"), QVector3D(0.2f, 0.2f, 0.2f)); m_defaultTechnique->addParameter(ka); basicPass->addBinding(new QParameterMapper(QStringLiteral("ambient"), QStringLiteral("ka"), QParameterMapper::Uniform)); @@ -219,10 +219,10 @@ void Renderer::buildDefaultMaterial() { m_defaultMaterial = new QMaterial(); m_defaultMaterial->setObjectName(QStringLiteral("DefaultMaterial")); - m_defaultMaterial->addParameter(new QParameter(m_defaultMaterial, QStringLiteral("lightPos"), QVector4D(10.0f, 10.0f, 0.0f, 1.0f))); - m_defaultMaterial->addParameter(new QParameter(m_defaultMaterial, QStringLiteral("lightIntensity"), QVector3D(0.5f, 0.5f, 0.5f))); - m_defaultMaterial->addParameter(new QParameter(m_defaultMaterial, QStringLiteral("ambient"), QVector3D(0.2f, 0.2f, 0.2f))); - m_defaultMaterial->addParameter(new QParameter(m_defaultMaterial, QStringLiteral("diffuse"), QVector3D(1.0f, 0.5f, 0.0f))); + m_defaultMaterial->addParameter(new QParameter(QStringLiteral("lightPos"), QVector4D(10.0f, 10.0f, 0.0f, 1.0f))); + m_defaultMaterial->addParameter(new QParameter(QStringLiteral("lightIntensity"), QVector3D(0.5f, 0.5f, 0.5f))); + m_defaultMaterial->addParameter(new QParameter(QStringLiteral("ambient"), QVector3D(0.2f, 0.2f, 0.2f))); + m_defaultMaterial->addParameter(new QParameter(QStringLiteral("diffuse"), QVector3D(1.0f, 0.5f, 0.0f))); QEffect* defEff = new QEffect; defEff->addTechnique(m_defaultTechnique); diff --git a/src/render/frontend/qparameter.cpp b/src/render/frontend/qparameter.cpp index ba964abef..c771202a4 100644 --- a/src/render/frontend/qparameter.cpp +++ b/src/render/frontend/qparameter.cpp @@ -72,7 +72,7 @@ QParameter::QParameter(QNode *parent) { } -QParameter::QParameter(QNode *parent, const QString &name, const QVariant &value, QParameter::OpenGLTypes ty) +QParameter::QParameter(const QString &name, const QVariant &value, QNode *parent, QParameter::OpenGLTypes ty) : QNode(*new QParameterPrivate(this), parent) { Q_D(QParameter); @@ -81,6 +81,15 @@ QParameter::QParameter(QNode *parent, const QString &name, const QVariant &value d->m_type = ty; } +QParameter::QParameter(const QString &name, QTexture *texture, QNode *parent) + : QNode(*new QParameterPrivate(this), parent) +{ + Q_D(QParameter); + d->m_name = name; + d->m_value = QVariant::fromValue(texture); + d->m_type = Undefined; +} + void QParameter::copy(const QNode *ref) { Q_D(QParameter); diff --git a/src/render/frontend/qparameter.h b/src/render/frontend/qparameter.h index 5eec02517..b60f53488 100644 --- a/src/render/frontend/qparameter.h +++ b/src/render/frontend/qparameter.h @@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE namespace Qt3D { class QParameterPrivate; +class QTexture; class QT3DRENDERERSHARED_EXPORT QParameter : public QNode { @@ -90,7 +91,8 @@ public: }; explicit QParameter(QNode *parent = 0); - QParameter(QNode* parent, const QString& name, const QVariant& value, OpenGLTypes ty = Undefined); + QParameter(const QString& name, const QVariant& value, QNode* parent = 0, OpenGLTypes ty = Undefined); + QParameter(const QString &name, QTexture *texture, QNode *parent = 0); void copy(const QNode *ref) Q_DECL_OVERRIDE; diff --git a/src/render/io/gltfparser.cpp b/src/render/io/gltfparser.cpp index 527f10272..012d8c438 100644 --- a/src/render/io/gltfparser.cpp +++ b/src/render/io/gltfparser.cpp @@ -824,7 +824,7 @@ void GLTFParser::processJSONTechnique( QString id, QJsonObject jsonObj ) QString semantic = po.value(KEY_SEMANTIC).toString(); // The Standard has changed, it doesn't return the raw int value for a type // But a string - QParameter* p = new QParameter(t, pname, parseType(po.value(KEY_TYPE).toString().toUtf8())); + QParameter* p = new QParameter(pname, parseType(po.value(KEY_TYPE).toString().toUtf8()), t); // Parameter::StandardUniform su = parseSemanticName(semantic.toUtf8()); // if (su != Parameter::None) { // p->setStandardUniform(su); |