summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@qt.io>2017-11-13 13:56:39 +0100
committerAndy Nichols <andy.nichols@qt.io>2017-11-13 13:56:39 +0100
commitab2d05d06b37fe875d360f92fe67e103ae17d80b (patch)
tree770a5c8a08f80baafe96cc349686ce6deadcd8b7 /src/extras/defaults
parent18ce3e68e6db896e9c01cf4df0dd7e9fa714b37c (diff)
parent764b715b5f682ddb1bdb52f67b5a35d85af7ccf1 (diff)
Merge remote-tracking branch 'origin/5.10' into dev
Diffstat (limited to 'src/extras/defaults')
-rw-r--r--src/extras/defaults/defaults.pri1
-rw-r--r--src/extras/defaults/qabstractcameracontroller.cpp2
-rw-r--r--src/extras/defaults/qdiffusemapmaterial.cpp21
-rw-r--r--src/extras/defaults/qdiffusemapmaterial_p.h3
-rw-r--r--src/extras/defaults/qdiffusespecularmapmaterial.cpp21
-rw-r--r--src/extras/defaults/qdiffusespecularmapmaterial_p.h3
-rw-r--r--src/extras/defaults/qmetalroughmaterial.cpp2
-rw-r--r--src/extras/defaults/qnormaldiffusemapalphamaterial.cpp19
-rw-r--r--src/extras/defaults/qnormaldiffusemapmaterial.cpp21
-rw-r--r--src/extras/defaults/qnormaldiffusemapmaterial_p.h3
-rw-r--r--src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp21
-rw-r--r--src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h3
-rw-r--r--src/extras/defaults/qorbitcameracontroller.cpp2
-rw-r--r--src/extras/defaults/qphongalphamaterial.cpp21
-rw-r--r--src/extras/defaults/qphongalphamaterial_p.h3
-rw-r--r--src/extras/defaults/qphongmaterial.cpp21
-rw-r--r--src/extras/defaults/qphongmaterial_p.h3
-rw-r--r--src/extras/defaults/qt3dwindow.cpp28
18 files changed, 172 insertions, 26 deletions
diff --git a/src/extras/defaults/defaults.pri b/src/extras/defaults/defaults.pri
index 2575de1a3..4fe79e0d9 100644
--- a/src/extras/defaults/defaults.pri
+++ b/src/extras/defaults/defaults.pri
@@ -28,7 +28,6 @@ HEADERS += \
$$PWD/qabstractcameracontroller.h \
$$PWD/qabstractcameracontroller_p.h \
$$PWD/qfirstpersoncameracontroller.h \
- $$PWD/qfirstpersoncameracontroller_p.h \
$$PWD/qorbitcameracontroller.h \
$$PWD/qorbitcameracontroller_p.h \
$$PWD/qabstractspritesheet.h \
diff --git a/src/extras/defaults/qabstractcameracontroller.cpp b/src/extras/defaults/qabstractcameracontroller.cpp
index 8bf57f5fa..2ebf187aa 100644
--- a/src/extras/defaults/qabstractcameracontroller.cpp
+++ b/src/extras/defaults/qabstractcameracontroller.cpp
@@ -224,7 +224,7 @@ void QAbstractCameraControllerPrivate::applyInputAccelerations()
}
/*!
- \class QAbstractCameraController
+ \class Qt3DExtras::QAbstractCameraController
\brief The QAbstractCameraController class provides basic
functionality for camera controllers.
diff --git a/src/extras/defaults/qdiffusemapmaterial.cpp b/src/extras/defaults/qdiffusemapmaterial.cpp
index 930fbbd1f..29e8586e3 100644
--- a/src/extras/defaults/qdiffusemapmaterial.cpp
+++ b/src/extras/defaults/qdiffusemapmaterial.cpp
@@ -46,6 +46,7 @@
#include <Qt3DRender/qtexture.h>
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
@@ -75,7 +76,9 @@ QDiffuseMapMaterialPrivate::QDiffuseMapMaterialPrivate()
, m_diffuseMapGL2RenderPass(new QRenderPass())
, m_diffuseMapES2RenderPass(new QRenderPass())
, m_diffuseMapGL3Shader(new QShaderProgram())
+ , m_diffuseMapGL3ShaderBuilder(new QShaderProgramBuilder())
, m_diffuseMapGL2ES2Shader(new QShaderProgram())
+ , m_diffuseMapGL2ES2ShaderBuilder(new QShaderProgramBuilder())
, m_filterKey(new QFilterKey)
{
m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear);
@@ -87,6 +90,8 @@ QDiffuseMapMaterialPrivate::QDiffuseMapMaterialPrivate()
void QDiffuseMapMaterialPrivate::init()
{
+ Q_Q(QDiffuseMapMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QDiffuseMapMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -99,9 +104,20 @@ void QDiffuseMapMaterialPrivate::init()
this, &QDiffuseMapMaterialPrivate::handleTextureScaleChanged);
m_diffuseMapGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_diffuseMapGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/diffusemap.frag"))));
+ m_diffuseMapGL3ShaderBuilder->setParent(q);
+ m_diffuseMapGL3ShaderBuilder->setShaderProgram(m_diffuseMapGL3Shader);
+ m_diffuseMapGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_diffuseMapGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
+
m_diffuseMapGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_diffuseMapGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/diffusemap.frag"))));
+ m_diffuseMapGL2ES2ShaderBuilder->setParent(q);
+ m_diffuseMapGL2ES2ShaderBuilder->setShaderProgram(m_diffuseMapGL2ES2Shader);
+ m_diffuseMapGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_diffuseMapGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
m_diffuseMapGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_diffuseMapGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -118,7 +134,6 @@ void QDiffuseMapMaterialPrivate::init()
m_diffuseMapES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_diffuseMapES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
- Q_Q(QDiffuseMapMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qdiffusemapmaterial_p.h b/src/extras/defaults/qdiffusemapmaterial_p.h
index c0bcc01eb..cef75a3f0 100644
--- a/src/extras/defaults/qdiffusemapmaterial_p.h
+++ b/src/extras/defaults/qdiffusemapmaterial_p.h
@@ -63,6 +63,7 @@ class QAbstractTexture;
class QTechnique;
class QParameter;
class QShaderProgram;
+class QShaderProgramBuilder;
class QRenderPass;
} // namespace Qt3DRender
@@ -97,7 +98,9 @@ class QDiffuseMapMaterialPrivate : public Qt3DRender::QMaterialPrivate
Qt3DRender::QRenderPass *m_diffuseMapGL2RenderPass;
Qt3DRender::QRenderPass *m_diffuseMapES2RenderPass;
Qt3DRender::QShaderProgram *m_diffuseMapGL3Shader;
+ Qt3DRender::QShaderProgramBuilder *m_diffuseMapGL3ShaderBuilder;
Qt3DRender::QShaderProgram *m_diffuseMapGL2ES2Shader;
+ Qt3DRender::QShaderProgramBuilder *m_diffuseMapGL2ES2ShaderBuilder;
Qt3DRender::QFilterKey *m_filterKey;
Q_DECLARE_PUBLIC(QDiffuseMapMaterial)
diff --git a/src/extras/defaults/qdiffusespecularmapmaterial.cpp b/src/extras/defaults/qdiffusespecularmapmaterial.cpp
index 2e98bc8e7..cc5facd8c 100644
--- a/src/extras/defaults/qdiffusespecularmapmaterial.cpp
+++ b/src/extras/defaults/qdiffusespecularmapmaterial.cpp
@@ -46,6 +46,7 @@
#include <Qt3DRender/qtexture.h>
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
@@ -76,7 +77,9 @@ QDiffuseSpecularMapMaterialPrivate::QDiffuseSpecularMapMaterialPrivate()
, m_diffuseSpecularMapGL2RenderPass(new QRenderPass())
, m_diffuseSpecularMapES2RenderPass(new QRenderPass())
, m_diffuseSpecularMapGL3Shader(new QShaderProgram())
+ , m_diffuseSpecularMapGL3ShaderBuilder(new QShaderProgramBuilder())
, m_diffuseSpecularMapGL2ES2Shader(new QShaderProgram())
+ , m_diffuseSpecularMapGL2ES2ShaderBuilder(new QShaderProgramBuilder())
, m_filterKey(new QFilterKey)
{
m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear);
@@ -94,6 +97,8 @@ QDiffuseSpecularMapMaterialPrivate::QDiffuseSpecularMapMaterialPrivate()
void QDiffuseSpecularMapMaterialPrivate::init()
{
+ Q_Q(QDiffuseSpecularMapMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QDiffuseSpecularMapMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -106,9 +111,20 @@ void QDiffuseSpecularMapMaterialPrivate::init()
this, &QDiffuseSpecularMapMaterialPrivate::handleTextureScaleChanged);
m_diffuseSpecularMapGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_diffuseSpecularMapGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/diffusespecularmap.frag"))));
+ m_diffuseSpecularMapGL3ShaderBuilder->setParent(q);
+ m_diffuseSpecularMapGL3ShaderBuilder->setShaderProgram(m_diffuseSpecularMapGL3Shader);
+ m_diffuseSpecularMapGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_diffuseSpecularMapGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specularTexture"),
+ QStringLiteral("normal")});
+
m_diffuseSpecularMapGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_diffuseSpecularMapGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/diffusespecularmap.frag"))));
+ m_diffuseSpecularMapGL2ES2ShaderBuilder->setParent(q);
+ m_diffuseSpecularMapGL2ES2ShaderBuilder->setShaderProgram(m_diffuseSpecularMapGL2ES2Shader);
+ m_diffuseSpecularMapGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_diffuseSpecularMapGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specularTexture"),
+ QStringLiteral("normal")});
m_diffuseSpecularMapGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_diffuseSpecularMapGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -125,7 +141,6 @@ void QDiffuseSpecularMapMaterialPrivate::init()
m_diffuseSpecularMapES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_diffuseSpecularMapES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
- Q_Q(QDiffuseSpecularMapMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qdiffusespecularmapmaterial_p.h b/src/extras/defaults/qdiffusespecularmapmaterial_p.h
index b358e088a..f80922dff 100644
--- a/src/extras/defaults/qdiffusespecularmapmaterial_p.h
+++ b/src/extras/defaults/qdiffusespecularmapmaterial_p.h
@@ -63,6 +63,7 @@ class QAbstractTexture;
class QTechnique;
class QParameter;
class QShaderProgram;
+class QShaderProgramBuilder;
class QRenderPass;
} // namespace Qt3DRender
@@ -99,7 +100,9 @@ public:
Qt3DRender::QRenderPass *m_diffuseSpecularMapGL2RenderPass;
Qt3DRender::QRenderPass *m_diffuseSpecularMapES2RenderPass;
Qt3DRender::QShaderProgram *m_diffuseSpecularMapGL3Shader;
+ Qt3DRender::QShaderProgramBuilder *m_diffuseSpecularMapGL3ShaderBuilder;
Qt3DRender::QShaderProgram *m_diffuseSpecularMapGL2ES2Shader;
+ Qt3DRender::QShaderProgramBuilder *m_diffuseSpecularMapGL2ES2ShaderBuilder;
Qt3DRender::QFilterKey *m_filterKey;
Q_DECLARE_PUBLIC(QDiffuseSpecularMapMaterial)
diff --git a/src/extras/defaults/qmetalroughmaterial.cpp b/src/extras/defaults/qmetalroughmaterial.cpp
index ac6117101..4d537f20f 100644
--- a/src/extras/defaults/qmetalroughmaterial.cpp
+++ b/src/extras/defaults/qmetalroughmaterial.cpp
@@ -107,7 +107,7 @@ void QMetalRoughMaterialPrivate::init()
QObject::connect(m_ambientOcclusionMapParameter, &Qt3DRender::QParameter::valueChanged,
q, &QMetalRoughMaterial::roughnessChanged);
QObject::connect(m_normalMapParameter, &Qt3DRender::QParameter::valueChanged,
- q, &QMetalRoughMaterial::roughnessChanged);
+ q, &QMetalRoughMaterial::normalChanged);
connect(m_textureScaleParameter, &Qt3DRender::QParameter::valueChanged,
this, &QMetalRoughMaterialPrivate::handleTextureScaleChanged);
diff --git a/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp b/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp
index dd8288683..c276c9717 100644
--- a/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp
+++ b/src/extras/defaults/qnormaldiffusemapalphamaterial.cpp
@@ -45,6 +45,7 @@
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
#include <Qt3DRender/qalphacoverage.h>
@@ -69,6 +70,8 @@ QNormalDiffuseMapAlphaMaterialPrivate::QNormalDiffuseMapAlphaMaterialPrivate()
void QNormalDiffuseMapAlphaMaterialPrivate::init()
{
+ Q_Q(QNormalDiffuseMapMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QNormalDiffuseMapMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -83,9 +86,20 @@ void QNormalDiffuseMapAlphaMaterialPrivate::init()
this, &QNormalDiffuseMapMaterialPrivate::handleTextureScaleChanged);
m_normalDiffuseGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_normalDiffuseGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/normaldiffusemap.frag"))));
+ m_normalDiffuseGL3ShaderBuilder->setParent(q);
+ m_normalDiffuseGL3ShaderBuilder->setShaderProgram(m_normalDiffuseGL3Shader);
+ m_normalDiffuseGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_normalDiffuseGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specular"),
+ QStringLiteral("normalTexture")});
+
m_normalDiffuseGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_normalDiffuseGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/normaldiffusemap.frag"))));
+ m_normalDiffuseGL2ES2ShaderBuilder->setParent(q);
+ m_normalDiffuseGL2ES2ShaderBuilder->setShaderProgram(m_normalDiffuseGL2ES2Shader);
+ m_normalDiffuseGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_normalDiffuseGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specular"),
+ QStringLiteral("normalTexture")});
m_normalDiffuseGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_normalDiffuseGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -102,7 +116,6 @@ void QNormalDiffuseMapAlphaMaterialPrivate::init()
m_normalDiffuseES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_normalDiffuseES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
- Q_Q(QNormalDiffuseMapMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qnormaldiffusemapmaterial.cpp b/src/extras/defaults/qnormaldiffusemapmaterial.cpp
index ec3bd0a22..687e59751 100644
--- a/src/extras/defaults/qnormaldiffusemapmaterial.cpp
+++ b/src/extras/defaults/qnormaldiffusemapmaterial.cpp
@@ -46,6 +46,7 @@
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
#include <QtCore/QUrl>
@@ -76,7 +77,9 @@ QNormalDiffuseMapMaterialPrivate::QNormalDiffuseMapMaterialPrivate()
, m_normalDiffuseGL2RenderPass(new QRenderPass())
, m_normalDiffuseES2RenderPass(new QRenderPass())
, m_normalDiffuseGL3Shader(new QShaderProgram())
+ , m_normalDiffuseGL3ShaderBuilder(new QShaderProgramBuilder())
, m_normalDiffuseGL2ES2Shader(new QShaderProgram())
+ , m_normalDiffuseGL2ES2ShaderBuilder(new QShaderProgramBuilder())
, m_filterKey(new QFilterKey)
{
m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear);
@@ -94,6 +97,8 @@ QNormalDiffuseMapMaterialPrivate::QNormalDiffuseMapMaterialPrivate()
void QNormalDiffuseMapMaterialPrivate::init()
{
+ Q_Q(QNormalDiffuseMapMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QNormalDiffuseMapMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -108,9 +113,20 @@ void QNormalDiffuseMapMaterialPrivate::init()
this, &QNormalDiffuseMapMaterialPrivate::handleTextureScaleChanged);
m_normalDiffuseGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_normalDiffuseGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/normaldiffusemap.frag"))));
+ m_normalDiffuseGL3ShaderBuilder->setParent(q);
+ m_normalDiffuseGL3ShaderBuilder->setShaderProgram(m_normalDiffuseGL3Shader);
+ m_normalDiffuseGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_normalDiffuseGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specular"),
+ QStringLiteral("normalTexture")});
+
m_normalDiffuseGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_normalDiffuseGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/normaldiffusemap.frag"))));
+ m_normalDiffuseGL2ES2ShaderBuilder->setParent(q);
+ m_normalDiffuseGL2ES2ShaderBuilder->setShaderProgram(m_normalDiffuseGL2ES2Shader);
+ m_normalDiffuseGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_normalDiffuseGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specular"),
+ QStringLiteral("normalTexture")});
m_normalDiffuseGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_normalDiffuseGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -127,7 +143,6 @@ void QNormalDiffuseMapMaterialPrivate::init()
m_normalDiffuseES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_normalDiffuseES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
- Q_Q(QNormalDiffuseMapMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qnormaldiffusemapmaterial_p.h b/src/extras/defaults/qnormaldiffusemapmaterial_p.h
index d88b01f1f..1ac937b1e 100644
--- a/src/extras/defaults/qnormaldiffusemapmaterial_p.h
+++ b/src/extras/defaults/qnormaldiffusemapmaterial_p.h
@@ -63,6 +63,7 @@ class QAbstractTexture;
class QTechnique;
class QParameter;
class QShaderProgram;
+class QShaderProgramBuilder;
class QRenderPass;
} // namespace Qt3DRender
@@ -101,7 +102,9 @@ public:
Qt3DRender::QRenderPass *m_normalDiffuseGL2RenderPass;
Qt3DRender::QRenderPass *m_normalDiffuseES2RenderPass;
Qt3DRender::QShaderProgram *m_normalDiffuseGL3Shader;
+ Qt3DRender::QShaderProgramBuilder *m_normalDiffuseGL3ShaderBuilder;
Qt3DRender::QShaderProgram *m_normalDiffuseGL2ES2Shader;
+ Qt3DRender::QShaderProgramBuilder *m_normalDiffuseGL2ES2ShaderBuilder;
Qt3DRender::QFilterKey *m_filterKey;
Q_DECLARE_PUBLIC(QNormalDiffuseMapMaterial)
diff --git a/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp b/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp
index eaa1491a0..7665c07a7 100644
--- a/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp
+++ b/src/extras/defaults/qnormaldiffusespecularmapmaterial.cpp
@@ -46,6 +46,7 @@
#include <Qt3DRender/qtexture.h>
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
@@ -78,7 +79,9 @@ QNormalDiffuseSpecularMapMaterialPrivate::QNormalDiffuseSpecularMapMaterialPriva
, m_normalDiffuseSpecularGL2RenderPass(new QRenderPass())
, m_normalDiffuseSpecularES2RenderPass(new QRenderPass())
, m_normalDiffuseSpecularGL3Shader(new QShaderProgram())
+ , m_normalDiffuseSpecularGL3ShaderBuilder(new QShaderProgramBuilder())
, m_normalDiffuseSpecularGL2ES2Shader(new QShaderProgram())
+ , m_normalDiffuseSpecularGL2ES2ShaderBuilder(new QShaderProgramBuilder())
, m_filterKey(new QFilterKey)
{
m_diffuseTexture->setMagnificationFilter(QAbstractTexture::Linear);
@@ -102,6 +105,8 @@ QNormalDiffuseSpecularMapMaterialPrivate::QNormalDiffuseSpecularMapMaterialPriva
void QNormalDiffuseSpecularMapMaterialPrivate::init()
{
+ Q_Q(QNormalDiffuseSpecularMapMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QNormalDiffuseSpecularMapMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -116,9 +121,20 @@ void QNormalDiffuseSpecularMapMaterialPrivate::init()
this, &QNormalDiffuseSpecularMapMaterialPrivate::handleTextureScaleChanged);
m_normalDiffuseSpecularGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_normalDiffuseSpecularGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/normaldiffusespecularmap.frag"))));
+ m_normalDiffuseSpecularGL3ShaderBuilder->setParent(q);
+ m_normalDiffuseSpecularGL3ShaderBuilder->setShaderProgram(m_normalDiffuseSpecularGL3Shader);
+ m_normalDiffuseSpecularGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_normalDiffuseSpecularGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specularTexture"),
+ QStringLiteral("normalTexture")});
+
m_normalDiffuseSpecularGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_normalDiffuseSpecularGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/normaldiffusespecularmap.frag"))));
+ m_normalDiffuseSpecularGL2ES2ShaderBuilder->setParent(q);
+ m_normalDiffuseSpecularGL2ES2ShaderBuilder->setShaderProgram(m_normalDiffuseSpecularGL2ES2Shader);
+ m_normalDiffuseSpecularGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_normalDiffuseSpecularGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuseTexture"),
+ QStringLiteral("specularTexture"),
+ QStringLiteral("normalTexture")});
m_normalDiffuseSpecularGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_normalDiffuseSpecularGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -135,7 +151,6 @@ void QNormalDiffuseSpecularMapMaterialPrivate::init()
m_normalDiffuseSpecularES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_normalDiffuseSpecularES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
- Q_Q(QNormalDiffuseSpecularMapMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h b/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h
index 3316044ff..e02451cc0 100644
--- a/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h
+++ b/src/extras/defaults/qnormaldiffusespecularmapmaterial_p.h
@@ -63,6 +63,7 @@ class QAbstractTexture;
class QTechnique;
class QParameter;
class QShaderProgram;
+class QShaderProgramBuilder;
class QRenderPass;
} // namespace Qt3DRender
@@ -102,7 +103,9 @@ public:
Qt3DRender::QRenderPass *m_normalDiffuseSpecularGL2RenderPass;
Qt3DRender::QRenderPass *m_normalDiffuseSpecularES2RenderPass;
Qt3DRender::QShaderProgram *m_normalDiffuseSpecularGL3Shader;
+ Qt3DRender::QShaderProgramBuilder *m_normalDiffuseSpecularGL3ShaderBuilder;
Qt3DRender::QShaderProgram *m_normalDiffuseSpecularGL2ES2Shader;
+ Qt3DRender::QShaderProgramBuilder *m_normalDiffuseSpecularGL2ES2ShaderBuilder;
Qt3DRender::QFilterKey *m_filterKey;
Q_DECLARE_PUBLIC(QNormalDiffuseSpecularMapMaterial)
diff --git a/src/extras/defaults/qorbitcameracontroller.cpp b/src/extras/defaults/qorbitcameracontroller.cpp
index 03e9a290b..c4f976f89 100644
--- a/src/extras/defaults/qorbitcameracontroller.cpp
+++ b/src/extras/defaults/qorbitcameracontroller.cpp
@@ -182,7 +182,7 @@ void QOrbitCameraController::moveCamera(const QAbstractCameraController::InputSt
} else if (state.shiftKeyActive) {
if (zoomDistance(camera()->position(), theCamera->viewCenter()) > d->m_zoomInLimit * d->m_zoomInLimit) {
// Dolly
- theCamera->translate(QVector3D(0, 0, state.tyAxisValue), theCamera->DontTranslateViewCenter);
+ theCamera->translate(QVector3D(0, 0, state.tyAxisValue * linearSpeed() * dt), theCamera->DontTranslateViewCenter);
} else {
theCamera->translate(QVector3D(0, 0, -0.5), theCamera->DontTranslateViewCenter);
}
diff --git a/src/extras/defaults/qphongalphamaterial.cpp b/src/extras/defaults/qphongalphamaterial.cpp
index fd8c52525..fb0871ee4 100644
--- a/src/extras/defaults/qphongalphamaterial.cpp
+++ b/src/extras/defaults/qphongalphamaterial.cpp
@@ -45,6 +45,7 @@
#include <Qt3DRender/qeffect.h>
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
@@ -75,7 +76,9 @@ QPhongAlphaMaterialPrivate::QPhongAlphaMaterialPrivate()
, m_phongAlphaGL2RenderPass(new QRenderPass())
, m_phongAlphaES2RenderPass(new QRenderPass())
, m_phongAlphaGL3Shader(new QShaderProgram())
+ , m_phongAlphaGL3ShaderBuilder(new QShaderProgramBuilder())
, m_phongAlphaGL2ES2Shader(new QShaderProgram())
+ , m_phongAlphaGL2ES2ShaderBuilder(new QShaderProgramBuilder())
, m_noDepthMask(new QNoDepthMask())
, m_blendState(new QBlendEquationArguments())
, m_blendEquation(new QBlendEquation())
@@ -86,6 +89,8 @@ QPhongAlphaMaterialPrivate::QPhongAlphaMaterialPrivate()
// TODO: Define how lights are properties are set in the shaders. Ideally using a QShaderData
void QPhongAlphaMaterialPrivate::init()
{
+ Q_Q(QPhongAlphaMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QPhongAlphaMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -96,9 +101,20 @@ void QPhongAlphaMaterialPrivate::init()
this, &QPhongAlphaMaterialPrivate::handleShininessChanged);
m_phongAlphaGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_phongAlphaGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/phong.frag"))));
+ m_phongAlphaGL3ShaderBuilder->setParent(q);
+ m_phongAlphaGL3ShaderBuilder->setShaderProgram(m_phongAlphaGL3Shader);
+ m_phongAlphaGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_phongAlphaGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
+
m_phongAlphaGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_phongAlphaGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/phong.frag"))));
+ m_phongAlphaGL2ES2ShaderBuilder->setParent(q);
+ m_phongAlphaGL2ES2ShaderBuilder->setShaderProgram(m_phongAlphaGL2ES2Shader);
+ m_phongAlphaGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_phongAlphaGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
m_phongAlphaGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_phongAlphaGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -115,7 +131,6 @@ void QPhongAlphaMaterialPrivate::init()
m_phongAlphaES2Technique->graphicsApiFilter()->setMinorVersion(0);
m_phongAlphaES2Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::NoProfile);
- Q_Q(QPhongAlphaMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qphongalphamaterial_p.h b/src/extras/defaults/qphongalphamaterial_p.h
index 84e2eead3..97eaf7bc4 100644
--- a/src/extras/defaults/qphongalphamaterial_p.h
+++ b/src/extras/defaults/qphongalphamaterial_p.h
@@ -62,6 +62,7 @@ class QEffect;
class QTechnique;
class QParameter;
class QShaderProgram;
+class QShaderProgramBuilder;
class QRenderPass;
class QNoDepthMask;
class QBlendEquationArguments;
@@ -97,7 +98,9 @@ public:
Qt3DRender::QRenderPass *m_phongAlphaGL2RenderPass;
Qt3DRender::QRenderPass *m_phongAlphaES2RenderPass;
Qt3DRender::QShaderProgram *m_phongAlphaGL3Shader;
+ Qt3DRender::QShaderProgramBuilder *m_phongAlphaGL3ShaderBuilder;
Qt3DRender::QShaderProgram *m_phongAlphaGL2ES2Shader;
+ Qt3DRender::QShaderProgramBuilder *m_phongAlphaGL2ES2ShaderBuilder;
Qt3DRender::QNoDepthMask *m_noDepthMask;
Qt3DRender::QBlendEquationArguments *m_blendState;
Qt3DRender::QBlendEquation *m_blendEquation;
diff --git a/src/extras/defaults/qphongmaterial.cpp b/src/extras/defaults/qphongmaterial.cpp
index 25dbf3c85..c76e3a6ef 100644
--- a/src/extras/defaults/qphongmaterial.cpp
+++ b/src/extras/defaults/qphongmaterial.cpp
@@ -45,6 +45,7 @@
#include <Qt3DRender/qeffect.h>
#include <Qt3DRender/qtechnique.h>
#include <Qt3DRender/qshaderprogram.h>
+#include <Qt3DRender/qshaderprogrambuilder.h>
#include <Qt3DRender/qparameter.h>
#include <Qt3DRender/qrenderpass.h>
#include <Qt3DRender/qgraphicsapifilter.h>
@@ -73,13 +74,17 @@ QPhongMaterialPrivate::QPhongMaterialPrivate()
, m_phongGL2RenderPass(new QRenderPass())
, m_phongES2RenderPass(new QRenderPass())
, m_phongGL3Shader(new QShaderProgram())
+ , m_phongGL3ShaderBuilder(new QShaderProgramBuilder())
, m_phongGL2ES2Shader(new QShaderProgram())
+ , m_phongGL2ES2ShaderBuilder(new QShaderProgramBuilder())
, m_filterKey(new QFilterKey)
{
}
void QPhongMaterialPrivate::init()
{
+ Q_Q(QPhongMaterial);
+
connect(m_ambientParameter, &Qt3DRender::QParameter::valueChanged,
this, &QPhongMaterialPrivate::handleAmbientChanged);
connect(m_diffuseParameter, &Qt3DRender::QParameter::valueChanged,
@@ -90,9 +95,20 @@ void QPhongMaterialPrivate::init()
this, &QPhongMaterialPrivate::handleShininessChanged);
m_phongGL3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/default.vert"))));
- m_phongGL3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/phong.frag"))));
+ m_phongGL3ShaderBuilder->setParent(q);
+ m_phongGL3ShaderBuilder->setShaderProgram(m_phongGL3Shader);
+ m_phongGL3ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_phongGL3ShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
+
m_phongGL2ES2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/default.vert"))));
- m_phongGL2ES2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/phong.frag"))));
+ m_phongGL2ES2ShaderBuilder->setParent(q);
+ m_phongGL2ES2ShaderBuilder->setShaderProgram(m_phongGL2ES2Shader);
+ m_phongGL2ES2ShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/phong.frag.json")));
+ m_phongGL2ES2ShaderBuilder->setEnabledLayers({QStringLiteral("diffuse"),
+ QStringLiteral("specular"),
+ QStringLiteral("normal")});
m_phongGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
m_phongGL3Technique->graphicsApiFilter()->setMajorVersion(3);
@@ -117,7 +133,6 @@ void QPhongMaterialPrivate::init()
m_phongGL2Technique->addRenderPass(m_phongGL2RenderPass);
m_phongES2Technique->addRenderPass(m_phongES2RenderPass);
- Q_Q(QPhongMaterial);
m_filterKey->setParent(q);
m_filterKey->setName(QStringLiteral("renderingStyle"));
m_filterKey->setValue(QStringLiteral("forward"));
diff --git a/src/extras/defaults/qphongmaterial_p.h b/src/extras/defaults/qphongmaterial_p.h
index bc6d0ce44..f1e55242b 100644
--- a/src/extras/defaults/qphongmaterial_p.h
+++ b/src/extras/defaults/qphongmaterial_p.h
@@ -62,6 +62,7 @@ class QEffect;
class QTechnique;
class QParameter;
class QShaderProgram;
+class QShaderProgramBuilder;
class QRenderPass;
} // namespace Qt3DRender
@@ -94,7 +95,9 @@ public:
Qt3DRender::QRenderPass *m_phongGL2RenderPass;
Qt3DRender::QRenderPass *m_phongES2RenderPass;
Qt3DRender::QShaderProgram *m_phongGL3Shader;
+ Qt3DRender::QShaderProgramBuilder *m_phongGL3ShaderBuilder;
Qt3DRender::QShaderProgram *m_phongGL2ES2Shader;
+ Qt3DRender::QShaderProgramBuilder *m_phongGL2ES2ShaderBuilder;
Qt3DRender::QFilterKey *m_filterKey;
Q_DECLARE_PUBLIC(QPhongMaterial)
diff --git a/src/extras/defaults/qt3dwindow.cpp b/src/extras/defaults/qt3dwindow.cpp
index 635d81956..baa2aeddb 100644
--- a/src/extras/defaults/qt3dwindow.cpp
+++ b/src/extras/defaults/qt3dwindow.cpp
@@ -125,6 +125,9 @@ Qt3DWindow::~Qt3DWindow()
delete d->m_aspectEngine;
}
+/*!
+ Registers the specified \a aspect.
+*/
void Qt3DWindow::registerAspect(Qt3DCore::QAbstractAspect *aspect)
{
Q_ASSERT(!isVisible());
@@ -132,6 +135,9 @@ void Qt3DWindow::registerAspect(Qt3DCore::QAbstractAspect *aspect)
d->m_aspectEngine->registerAspect(aspect);
}
+/*!
+ Registers the specified aspect \a name.
+*/
void Qt3DWindow::registerAspect(const QString &name)
{
Q_ASSERT(!isVisible());
@@ -139,6 +145,9 @@ void Qt3DWindow::registerAspect(const QString &name)
d->m_aspectEngine->registerAspect(name);
}
+/*!
+ Sets the specified \a root entity of the scene.
+*/
void Qt3DWindow::setRootEntity(Qt3DCore::QEntity *root)
{
Q_D(Qt3DWindow);
@@ -151,18 +160,27 @@ void Qt3DWindow::setRootEntity(Qt3DCore::QEntity *root)
}
}
+/*!
+ Activates the specified \a activeFrameGraph.
+*/
void Qt3DWindow::setActiveFrameGraph(Qt3DRender::QFrameGraphNode *activeFrameGraph)
{
Q_D(Qt3DWindow);
d->m_renderSettings->setActiveFrameGraph(activeFrameGraph);
}
+/*!
+ Returns the node of the active frame graph.
+*/
Qt3DRender::QFrameGraphNode *Qt3DWindow::activeFrameGraph() const
{
Q_D(const Qt3DWindow);
return d->m_renderSettings->activeFrameGraph();
}
+/*!
+ Returns the node of the default framegraph
+*/
Qt3DExtras::QForwardRenderer *Qt3DWindow::defaultFrameGraph() const
{
Q_D(const Qt3DWindow);
@@ -175,12 +193,18 @@ Qt3DRender::QCamera *Qt3DWindow::camera() const
return d->m_defaultCamera;
}
+/*!
+ Returns the render settings of the 3D Window.
+*/
Qt3DRender::QRenderSettings *Qt3DWindow::renderSettings() const
{
Q_D(const Qt3DWindow);
return d->m_renderSettings;
}
+/*!
+ Manages the display events specified in \a e.
+*/
void Qt3DWindow::showEvent(QShowEvent *e)
{
Q_D(Qt3DWindow);
@@ -194,7 +218,9 @@ void Qt3DWindow::showEvent(QShowEvent *e)
QWindow::showEvent(e);
}
-
+/*!
+ Resets the aspect ratio of the 3D window.
+*/
void Qt3DWindow::resizeEvent(QResizeEvent *)
{
Q_D(Qt3DWindow);