summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-01-16 19:14:04 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-01-17 17:19:19 +0000
commit47decd5d71a98d11cc5ff71f5a5e4648998d1d6b (patch)
tree7469a649f9ce1713c8a3cf9820d7e85dd881fa78 /src/render
parentb0404a42ced2ea5a583e1c6ddc22940ffdc1e48e (diff)
Add annotation to QPhongMaterial
Allows technique selector in QForwardRenderer to select from the available techniques rather than excluding them all. Change-Id: Ia044f3ccdf15e012b52d519fad5f0415592046fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r--src/render/defaults/qphongmaterial.cpp14
-rw-r--r--src/render/defaults/qphongmaterial_p.h2
2 files changed, 15 insertions, 1 deletions
diff --git a/src/render/defaults/qphongmaterial.cpp b/src/render/defaults/qphongmaterial.cpp
index 97612078a..dd9ebd20e 100644
--- a/src/render/defaults/qphongmaterial.cpp
+++ b/src/render/defaults/qphongmaterial.cpp
@@ -36,6 +36,7 @@
#include "qphongmaterial.h"
#include "qphongmaterial_p.h"
+#include <Qt3DRender/qannotation.h>
#include <Qt3DRender/qmaterial.h>
#include <Qt3DRender/qeffect.h>
#include <Qt3DRender/qtechnique.h>
@@ -70,6 +71,7 @@ QPhongMaterialPrivate::QPhongMaterialPrivate()
, m_phongES2RenderPass(new QRenderPass())
, m_phongGL3Shader(new QShaderProgram())
, m_phongGL2ES2Shader(new QShaderProgram())
+ , m_annotation(new QAnnotation)
{
}
@@ -85,6 +87,7 @@ void QPhongMaterialPrivate::init()
connect(m_shininessParameter, &Qt3DRender::QParameter::valueChanged,
this, &QPhongMaterialPrivate::handleShininessChanged);
+
m_phongGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/phong.vert"))));
m_phongGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/phong.frag"))));
m_phongGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/phong.vert"))));
@@ -113,6 +116,15 @@ void QPhongMaterialPrivate::init()
m_phongGL2Technique->addPass(m_phongGL2RenderPass);
m_phongES2Technique->addPass(m_phongES2RenderPass);
+ Q_Q(QPhongMaterial);
+ m_annotation->setParent(q);
+ m_annotation->setName(QStringLiteral("renderingStyle"));
+ m_annotation->setValue("forward");
+
+ m_phongGL3Technique->addAnnotation(m_annotation);
+ m_phongGL2Technique->addAnnotation(m_annotation);
+ m_phongES2Technique->addAnnotation(m_annotation);
+
m_phongEffect->addTechnique(m_phongGL3Technique);
m_phongEffect->addTechnique(m_phongGL2Technique);
m_phongEffect->addTechnique(m_phongES2Technique);
@@ -122,7 +134,7 @@ void QPhongMaterialPrivate::init()
m_phongEffect->addParameter(m_specularParameter);
m_phongEffect->addParameter(m_shininessParameter);
- q_func()->setEffect(m_phongEffect);
+ q->setEffect(m_phongEffect);
}
void QPhongMaterialPrivate::handleAmbientChanged(const QVariant &var)
diff --git a/src/render/defaults/qphongmaterial_p.h b/src/render/defaults/qphongmaterial_p.h
index 91892af64..c3698fbcd 100644
--- a/src/render/defaults/qphongmaterial_p.h
+++ b/src/render/defaults/qphongmaterial_p.h
@@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE
namespace Qt3DRender {
+class QAnnotation;
class QEffect;
class QTechnique;
class QParameter;
@@ -88,6 +89,7 @@ public:
QRenderPass *m_phongES2RenderPass;
QShaderProgram *m_phongGL3Shader;
QShaderProgram *m_phongGL2ES2Shader;
+ QAnnotation *m_annotation;
Q_DECLARE_PUBLIC(QPhongMaterial)
};