summaryrefslogtreecommitdiffstats
path: root/src/render/defaults/qdiffusemapmaterial.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@theqtcompany.com>2015-12-08 11:50:37 +0200
committerTomi Korpipää <tomi.korpipaa@theqtcompany.com>2015-12-09 05:18:19 +0000
commit0e15154c9f0d982096a551efc53fd363d2b2f68d (patch)
tree4917ca73c44a92297db7cc3dbd72d2716481ccc7 /src/render/defaults/qdiffusemapmaterial.cpp
parent036ea9fcfdd343c805e1a900528e7a2367d6c373 (diff)
Added parameters to signals and made setters Q_SLOTS
Change-Id: Icec2f9f207221e35ffdeeb594bb9b4dc6ef890f1 Task-number: QTBUG-49797 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/defaults/qdiffusemapmaterial.cpp')
-rw-r--r--src/render/defaults/qdiffusemapmaterial.cpp48
1 files changed, 42 insertions, 6 deletions
diff --git a/src/render/defaults/qdiffusemapmaterial.cpp b/src/render/defaults/qdiffusemapmaterial.cpp
index e46fb4e53..36bf2ea59 100644
--- a/src/render/defaults/qdiffusemapmaterial.cpp
+++ b/src/render/defaults/qdiffusemapmaterial.cpp
@@ -73,7 +73,7 @@ QDiffuseMapMaterialPrivate::QDiffuseMapMaterialPrivate()
, m_diffuseMapES2RenderPass(new QRenderPass())
, m_diffuseMapGL3Shader(new QShaderProgram())
, m_diffuseMapGL2ES2Shader(new QShaderProgram())
- {
+{
m_diffuseTexture->setMagnificationFilter(QAbstractTextureProvider::Linear);
m_diffuseTexture->setMinificationFilter(QAbstractTextureProvider::LinearMipMapLinear);
m_diffuseTexture->setWrapMode(QTextureWrapMode(QTextureWrapMode::Repeat));
@@ -83,6 +83,17 @@ QDiffuseMapMaterialPrivate::QDiffuseMapMaterialPrivate()
void QDiffuseMapMaterialPrivate::init()
{
+ connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
+ this, &QDiffuseMapMaterialPrivate::handleAmbientChanged);
+ connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
+ this, &QDiffuseMapMaterialPrivate::handleDiffuseChanged);
+ connect(m_specularParameter, &Qt3DRender::QParameter::valueChanged,
+ this, &QDiffuseMapMaterialPrivate::handleSpecularChanged);
+ connect(m_shininessParameter, &Qt3DRender::QParameter::valueChanged,
+ this, &QDiffuseMapMaterialPrivate::handleShininessChanged);
+ connect(m_textureScaleParameter, &Qt3DRender::QParameter::valueChanged,
+ this, &QDiffuseMapMaterialPrivate::handleTextureScaleChanged);
+
m_diffuseMapGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/diffusemap.vert"))));
m_diffuseMapGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/diffusemap.frag"))));
m_diffuseMapGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/diffusemap.vert"))));
@@ -124,6 +135,36 @@ void QDiffuseMapMaterialPrivate::init()
q_func()->setEffect(m_diffuseMapEffect);
}
+void QDiffuseMapMaterialPrivate::handleAmbientChanged(const QVariant &var)
+{
+ Q_Q(QDiffuseMapMaterial);
+ emit q->ambientChanged(var.value<QColor>());
+}
+
+void QDiffuseMapMaterialPrivate::handleDiffuseChanged(const QVariant &var)
+{
+ Q_Q(QDiffuseMapMaterial);
+ emit q->diffuseChanged(var.value<QAbstractTextureProvider *>());
+}
+
+void QDiffuseMapMaterialPrivate::handleSpecularChanged(const QVariant &var)
+{
+ Q_Q(QDiffuseMapMaterial);
+ emit q->specularChanged(var.value<QColor>());
+}
+
+void QDiffuseMapMaterialPrivate::handleShininessChanged(const QVariant &var)
+{
+ Q_Q(QDiffuseMapMaterial);
+ emit q->shininessChanged(var.toFloat());
+}
+
+void QDiffuseMapMaterialPrivate::handleTextureScaleChanged(const QVariant &var)
+{
+ Q_Q(QDiffuseMapMaterial);
+ emit q->textureScaleChanged(var.toFloat());
+}
+
/*!
\class Qt3DRender::QDiffuseMapMaterial
\brief The QDiffuseMapMaterial provides a default implementation of the phong lighting effect where the diffuse light component
@@ -152,11 +193,6 @@ QDiffuseMapMaterial::QDiffuseMapMaterial(QNode *parent)
: QMaterial(*new QDiffuseMapMaterialPrivate, parent)
{
Q_D(QDiffuseMapMaterial);
- QObject::connect(d->m_ambientParameter, SIGNAL(valueChanged()), this, SIGNAL(ambientChanged()));
- QObject::connect(d->m_diffuseParameter, SIGNAL(valueChanged()), this, SIGNAL(diffuseChanged()));
- QObject::connect(d->m_specularParameter, SIGNAL(valueChanged()), this, SIGNAL(specularChanged()));
- QObject::connect(d->m_shininessParameter, SIGNAL(valueChanged()), this, SIGNAL(shininessChanged()));
- QObject::connect(d->m_textureScaleParameter, SIGNAL(valueChanged()), this, SIGNAL(textureScaleChanged()));
d->init();
}