summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-09-12 18:17:32 +0200
committerSean Harmer <sean.harmer@kdab.com>2014-09-29 22:53:21 +0200
commit0d5b71f4df0d0acfc807076441a52b4ceefb410b (patch)
treecb714bb858a50b8692258ea1f84611bf41d48d90 /src/render
parentc2332dd5480943e5bbcc190c879a2b6647d69bf5 (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.cpp16
-rw-r--r--src/render/frontend/qparameter.cpp11
-rw-r--r--src/render/frontend/qparameter.h4
-rw-r--r--src/render/io/gltfparser.cpp2
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);