summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-06-27 16:32:49 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-06-27 16:32:49 +0200
commitd75030a620274bc450f7d11edc02efab2bbf7f4e (patch)
treea06b7b199b8fa99105610c1844584c4bbc006fcf
parent08bcfc398d51e0e23783a4f02623e5b27e675092 (diff)
parentd48e15d235645cbd6b08cd5fc5eb7ae84678c1fe (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: .qmake.conf Change-Id: Iae5fa92dfdf8012315c043e20950368e42451e20
-rw-r--r--dist/changes-5.12.420
-rw-r--r--src/doc/src/qt3drender-framegraph.qdoc128
-rw-r--r--src/extras/defaults/qforwardrenderer.cpp9
-rw-r--r--src/render/geometry/qbuffer.cpp24
-rw-r--r--src/render/lights/qabstractlight.cpp25
5 files changed, 157 insertions, 49 deletions
diff --git a/dist/changes-5.12.4 b/dist/changes-5.12.4
new file mode 100644
index 000000000..a285cd8e2
--- /dev/null
+++ b/dist/changes-5.12.4
@@ -0,0 +1,20 @@
+Qt 5.12.4 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.12.0 through 5.12.3.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qt-5/index.html
+
+The Qt version 5.12 series is binary compatible with the 5.11.x series.
+Applications compiled for 5.11 will continue to run with 5.12.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+ - This release contains only minor code improvements.
diff --git a/src/doc/src/qt3drender-framegraph.qdoc b/src/doc/src/qt3drender-framegraph.qdoc
index a1fe7df94..2224a1c8d 100644
--- a/src/doc/src/qt3drender-framegraph.qdoc
+++ b/src/doc/src/qt3drender-framegraph.qdoc
@@ -182,7 +182,7 @@
\badcode
Viewport {
- rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+ normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0)
property alias camera: cameraSelector.camera
ClearBuffers {
@@ -221,7 +221,7 @@
\badcode
Viewport {
- rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+ normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0)
property alias camera: cameraSelector.camera
CameraSelector {
@@ -237,7 +237,7 @@
\badcode
CameraSelector {
Viewport {
- rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+ normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0)
ClearBuffers {
buffers: ClearBuffers.ColorDepthBuffer
@@ -259,7 +259,7 @@
\badcode
Viewport {
id: mainViewport
- rect: Qt.rect(0, 0, 1, 1)
+ normalizedRect: Qt.rect(0, 0, 1, 1)
property alias Camera: cameraSelectorTopLeftViewport.camera
property alias Camera: cameraSelectorTopRightViewport.camera
property alias Camera: cameraSelectorBottomLeftViewport.camera
@@ -271,25 +271,25 @@
Viewport {
id: topLeftViewport
- rect: Qt.rect(0, 0, 0.5, 0.5)
+ normalizedRect: Qt.rect(0, 0, 0.5, 0.5)
CameraSelector { id: cameraSelectorTopLeftViewport }
}
Viewport {
id: topRightViewport
- rect: Qt.rect(0.5, 0, 0.5, 0.5)
+ normalizedRect: Qt.rect(0.5, 0, 0.5, 0.5)
CameraSelector { id: cameraSelectorTopRightViewport }
}
Viewport {
id: bottomLeftViewport
- rect: Qt.rect(0, 0.5, 0.5, 0.5)
+ normalizedRect: Qt.rect(0, 0.5, 0.5, 0.5)
CameraSelector { id: cameraSelectorBottomLeftViewport }
}
Viewport {
id: bottomRightViewport
- rect: Qt.rect(0.5, 0.5, 0.5, 0.5)
+ normalizedRect: Qt.rect(0.5, 0.5, 0.5, 0.5)
CameraSelector { id: cameraSelectorBottomRightViewport }
}
}
@@ -404,48 +404,84 @@
many games due to the ability to use large numbers of dynamic lights at
the expense of additional GPU memory usage.
- \badcode
- Viewport {
- rect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+\qml
+Viewport {
+ id: root
+ normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0)
+
+ property GBuffer gBuffer
+ property alias camera: sceneCameraSelector.camera
+ property alias sceneLayer: sceneLayerFilter.layers
+ property alias screenQuadLayer: screenQuadLayerFilter.layers
- property alias gBuffer: gBufferTargetSelector.target
- property alias camera: sceneCameraSelector.camera
+ RenderSurfaceSelector {
- LayerFilter {
- layers: "scene"
+ CameraSelector {
+ id: sceneCameraSelector
- RenderTargetSelector {
+ // Fill G-Buffer
+ LayerFilter {
+ id: sceneLayerFilter
+ RenderTargetSelector {
id: gBufferTargetSelector
+ target: gBuffer
ClearBuffers {
- buffers: ClearBuffers.ColorDepthBuffer
-
- RenderPassFilter {
- id: geometryPass
- includes: Annotation { name: "pass"; value: "geometry" }
-
- CameraSelector {
- id: sceneCameraSelector
- }
- }
+ buffers: ClearBuffers.ColorDepthBuffer
+
+ RenderPassFilter {
+ id: geometryPass
+ matchAny: FilterKey {
+ name: "pass"
+ value: "geometry"
+ }
+ }
}
- }
- }
-
- LayerFilter {
- layers: "screenQuad"
-
- ClearBuffers {
- buffers: ClearBuffers.ColorDepthBuffer
-
- RenderPassFilter {
- id: finalPass
- includes: Annotation { name: "pass"; value: "final" }
- }
- }
- }
+ }
+ }
+
+ TechniqueFilter {
+ parameters: [
+ Parameter { name: "color"; value: gBuffer.color },
+ Parameter { name: "position"; value: gBuffer.position },
+ Parameter { name: "normal"; value: gBuffer.normal },
+ Parameter { name: "depth"; value: gBuffer.depth }
+ ]
+
+ RenderStateSet {
+ // Render FullScreen Quad
+ renderStates: [
+ BlendEquation { blendFunction: BlendEquation.Add },
+ BlendEquationArguments {
+ sourceRgb: BlendEquationArguments.SourceAlpha
+ destinationRgb: BlendEquationArguments.DestinationColor
+ }
+ ]
+
+ LayerFilter {
+ id: screenQuadLayerFilter
+ ClearBuffers {
+ buffers: ClearBuffers.ColorDepthBuffer
+ RenderPassFilter {
+ matchAny: FilterKey {
+ name: "pass"
+ value: "final"
+ }
+ parameters: Parameter {
+ name: "winSize"
+ value: Qt.size(1024, 768)
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
- \endcode
+}
+\endqml
+
+ (Above code is adapted from \e {qt3d/tests/manual/deferred-renderer-qml}.)
Graphically, the resulting framegraph looks like:
@@ -456,22 +492,20 @@
\list
\li RenderView (1)
\list
+ \li Specify which camera should be used
\li Define a viewport that fills the whole screen
- \li Select all Entities that have a Layer component matching
- \c "scene"
+ \li Select all Entities for layer component sceneLayer
\li Set the \c gBuffer as the active render target
\li Clear the color and depth on the currently bound render target
(the \c gBuffer)
\li Select only Entities in the scene that have a Material and
Technique matching the annotations in the RenderPassFilter
- \li Specify which camera should be used
\endlist
\li RenderView (2)
\list
\li Define a viewport that fills the whole screen
- \li Select all Entities that have a Layer component matching
- \c "screenQuad"
+ \li Select all Entities for layer component screenQuadLayer
\li Clear the color and depth buffers on the currently bound
framebuffer (the screen)
\li Select only Entities in the scene that have a Material and
diff --git a/src/extras/defaults/qforwardrenderer.cpp b/src/extras/defaults/qforwardrenderer.cpp
index 7548c45c6..5bf206ede 100644
--- a/src/extras/defaults/qforwardrenderer.cpp
+++ b/src/extras/defaults/qforwardrenderer.cpp
@@ -280,11 +280,18 @@ QObject *QForwardRenderer::surface() const
}
/*!
+ \qmlproperty QSize ForwardRenderer::externalRenderTargetSize
+
+ Contains the size of the external render target. External render
+ targets are relevant when rendering does not target a window
+ surface (as set in \l {surface}).
+*/
+/*!
\property QForwardRenderer::externalRenderTargetSize
Contains the size of the external render target. External render
targets are relevant when rendering does not target a window
- surface (as set in \l {QForwardRenderer::surface()}{surface()}).
+ surface (as set in \l {surface}).
*/
QSize QForwardRenderer::externalRenderTargetSize() const
{
diff --git a/src/render/geometry/qbuffer.cpp b/src/render/geometry/qbuffer.cpp
index fe065929d..e0574a4c5 100644
--- a/src/render/geometry/qbuffer.cpp
+++ b/src/render/geometry/qbuffer.cpp
@@ -117,6 +117,12 @@ QBufferPrivate::QBufferPrivate()
*/
/*!
+ * \fn void Qt3DRender::QBuffer::dataAvailable()
+ *
+ * This signal is emitted when data becomes available.
+ */
+
+/*!
\class Qt3DRender::QBufferDataGenerator
\inmodule Qt3DRender
@@ -252,6 +258,17 @@ QBufferPrivate::QBufferPrivate()
*/
/*!
+ * \enum QBuffer::AccessType
+ *
+ * \value Write
+ * Write access
+ * \value Read
+ * Read access
+ * \value ReadWrite
+ * Write|Read
+ */
+
+/*!
* \typedef Qt3DRender::QBufferDataGeneratorPtr
* \relates Qt3DRender::QBuffer
*/
@@ -443,6 +460,13 @@ bool QBuffer::isSyncData() const
return d->m_syncData;
}
+/*!
+ * \property Qt3DRender::QBuffer::accessType
+ *
+ * Returns the \l {QBuffer::}{AccessType} of the buffer.
+ *
+ * \sa QBuffer::AccessType
+ */
QBuffer::AccessType QBuffer::accessType() const
{
Q_D(const QBuffer);
diff --git a/src/render/lights/qabstractlight.cpp b/src/render/lights/qabstractlight.cpp
index e5376f712..5ad16d3b4 100644
--- a/src/render/lights/qabstractlight.cpp
+++ b/src/render/lights/qabstractlight.cpp
@@ -67,9 +67,22 @@ QAbstractLightPrivate::~QAbstractLightPrivate()
}
/*!
+ \qmlproperty enumeration Qt3D.Render::Light::type
+ \readonly
+
+ Holds the particular type of light.
+
+ \value Light.PointLight
+ A point light
+ \value Light.DirectionalLight
+ A directional light
+ \value Light.SpotLight
+ a spot light
+*/
+/*!
\property Qt3DRender::QAbstractLight::type
- Contains the type of light.
+ The type of light.
*/
/*!
\enum Qt3DRender::QAbstractLight::Type
@@ -118,6 +131,11 @@ QAbstractLight::Type QAbstractLight::type() const
}
/*!
+ * \qmlproperty QColor Qt3D.Render.Light::color
+ *
+ * Holds the current Light color.
+ */
+/*!
* \property Qt3DRender::QAbstractLight::color
*
* Holds the current QAbstractLight color.
@@ -138,6 +156,11 @@ void QAbstractLight::setColor(const QColor &c)
}
/*!
+ \qmlproperty float Qt3D.Render.Light::intensity
+
+ Holds the current Light intensity.
+*/
+/*!
\property Qt3DRender::QAbstractLight::intensity
Holds the current QAbstractLight intensity.