summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-12-08 13:54:31 +0100
committerLiang Qi <liang.qi@qt.io>2017-12-08 13:54:31 +0100
commit8470becd886d299c1be892d8113dfff216035611 (patch)
tree7801c818f81371c5d75e83cab97b12a0a27adfb0
parent94e6ed7c49fae6d7273f4bb51a70e43430038ee9 (diff)
parent7bd57d2218794fdd7bcaa4f2c8107ef60740ff75 (diff)
Merge remote-tracking branch 'origin/5.10.0' into 5.10
-rw-r--r--dist/changes-5.10.087
-rw-r--r--dist/changes-5.9.328
-rw-r--r--src/extras/defaults/qforwardrenderer.cpp9
-rw-r--r--src/extras/defaults/qt3dwindow.cpp9
-rw-r--r--src/render/framegraph/qrendercapture.cpp28
-rw-r--r--src/render/framegraph/qrendercapture.h7
-rw-r--r--src/render/materialsystem/shaderbuilder.cpp8
7 files changed, 169 insertions, 7 deletions
diff --git a/dist/changes-5.10.0 b/dist/changes-5.10.0
new file mode 100644
index 000000000..91b8e0d2a
--- /dev/null
+++ b/dist/changes-5.10.0
@@ -0,0 +1,87 @@
+Qt 5.10 introduces many new features and improvements as well as bugfixes
+over the 5.9.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.10 series is binary compatible with the 5.9.x series.
+Applications compiled for 5.9 will continue to run with 5.10.
+
+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.
+
+****************************************************************************
+* Qt 5.10.0 Changes *
+****************************************************************************
+
+Qt3DAnimation
+-------------
+
+ - Added a tech preview of the skeletal animation system. Use the
+ QSkeletonMapping type to map animation clip channels onto joints of
+ a skeleton.
+
+ - Bugfix:
+ * The backend node (`Qt3DAnimation::Animation::Clock`) had an incorrect
+ return type specified (`int` instead of `float`) which was narrowing
+ the actual value during the evaluation of associated animation clips.
+
+ - General:
+ * Introduce the QClock frontend and backend nodes to control animator
+ playbackspeed.
+
+Qt3DCore
+--------
+
+ - General:
+ * Added support for SIMD instructions to accelerate matrix and vector
+ operations within Qt 3D. At present, SSE2 and AVX2 are supported. By
+ default, SSE2 instructions are enabled. To additionally enable the use
+ of AVX2 instructions, configure with the -qt3d-simd avx2 option.
+ Passing -no-sse2 disables SSE2 use in QtCore, QtGui and Qt3D.
+ Configuring with -no-qt3d-simd disables SIMD in Qt 3D only.
+
+ * Added support for loading skeletons from glTF 2 files.
+
+
+Qt3DRender
+----------
+
+ - New additions:
+ * Added a framebuffer blit frame graph node
+
+ * Added a promity filter frame graph node
+
+ * Added support for sprite sheets
+
+ * Added QCamera::viewAll()
+
+ * Introduced shader graphs: dynamically generate fragment shaders
+ from graph based description.
+
+ * Added Scene2D: embed Qt Quick content into Qt 3D and interact with
+ it.
+
+ * Added support for rendering skinned meshes via the new QArmature
+ component. Can be animated with the animation aspect and the
+ QSkeletonMapping type.
+
+ * Added support for loading mesh data from glTF 2 files.
+
+ - General:
+ * Improved QLayerFilter
+
+Qt3DInput
+---------
+ - Added support for point and line picking
+
+Qt3DExtras
+----------
+
+ - Added Qt3DExtras::QAbstractCameraController abstract base class to make
+ implementing new camera controllers easier.
diff --git a/dist/changes-5.9.3 b/dist/changes-5.9.3
new file mode 100644
index 000000000..778ee4e14
--- /dev/null
+++ b/dist/changes-5.9.3
@@ -0,0 +1,28 @@
+Qt 5.9.3 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.9.0.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.9 series is binary compatible with the 5.8.x series.
+Applications compiled for 5.8 will continue to run with 5.9.
+
+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.
+
+****************************************************************************
+* Qt 5.9.3 Changes *
+****************************************************************************
+
+ - Render next frame if texture data is not available [QTBUG-63561][QTBUG-59752]
+ - Resource handling rework to reduce memory consumption
+ - Fix SortPolicy sorting key generation
+ - Minor code and documentation improvements.
+ - Avoid sending certain notifications to the backend that aren't required
diff --git a/src/extras/defaults/qforwardrenderer.cpp b/src/extras/defaults/qforwardrenderer.cpp
index f3137ea2d..b02077298 100644
--- a/src/extras/defaults/qforwardrenderer.cpp
+++ b/src/extras/defaults/qforwardrenderer.cpp
@@ -48,6 +48,13 @@
#include <Qt3DRender/qfrustumculling.h>
#include <Qt3DRender/qrendersurfaceselector.h>
+static void initResources()
+{
+#ifdef QT_STATIC
+ Q_INIT_RESOURCE(extras);
+#endif
+}
+
QT_BEGIN_NAMESPACE
using namespace Qt3DRender;
@@ -68,6 +75,8 @@ void QForwardRendererPrivate::init()
{
Q_Q(QForwardRenderer);
+ initResources();
+
m_frustumCulling->setParent(m_clearBuffer);
m_clearBuffer->setParent(m_cameraSelector);
m_cameraSelector->setParent(m_viewport);
diff --git a/src/extras/defaults/qt3dwindow.cpp b/src/extras/defaults/qt3dwindow.cpp
index baa2aeddb..12e210f0d 100644
--- a/src/extras/defaults/qt3dwindow.cpp
+++ b/src/extras/defaults/qt3dwindow.cpp
@@ -62,6 +62,13 @@
#include <Qt3DRender/qcamera.h>
#include <QtGui/qopenglcontext.h>
+static void initResources()
+{
+#ifdef QT_STATIC
+ Q_INIT_RESOURCE(extras);
+#endif
+}
+
QT_BEGIN_NAMESPACE
namespace Qt3DExtras {
@@ -86,6 +93,8 @@ Qt3DWindow::Qt3DWindow(QScreen *screen)
{
Q_D(Qt3DWindow);
+ initResources();
+
if (!d->parentWindow)
d->connectToScreen(screen ? screen : d->topLevelScreen.data());
diff --git a/src/render/framegraph/qrendercapture.cpp b/src/render/framegraph/qrendercapture.cpp
index 66c518506..28bc41b91 100644
--- a/src/render/framegraph/qrendercapture.cpp
+++ b/src/render/framegraph/qrendercapture.cpp
@@ -149,6 +149,15 @@ namespace Qt3DRender {
*/
/*!
+ * \qmlmethod RenderCaptureReply Qt3D.Render::RenderCapture::requestCapture(Rect rect)
+ *
+ * Used to request render capture from a specified \a rect. Only one render capture
+ * result is produced per requestCapture call even if the frame graph has multiple leaf nodes.
+ * The function returns a QRenderCaptureReply object, which receives the captured image
+ * when it is done. The user is responsible for deallocating the returned object.
+ */
+
+/*!
* \internal
*/
QRenderCaptureReplyPrivate::QRenderCaptureReplyPrivate()
@@ -311,7 +320,7 @@ QRenderCapture::QRenderCapture(Qt3DCore::QNode *parent)
* The function returns a QRenderCaptureReply object, which receives the captured image
* when it is done. The user is responsible for deallocating the returned object.
*/
-QRenderCaptureReply *QRenderCapture::requestCapture(int captureId, const QRect &rect)
+QRenderCaptureReply *QRenderCapture::requestCapture(int captureId)
{
Q_D(QRenderCapture);
QRenderCaptureReply *reply = d->createReply(captureId);
@@ -322,7 +331,7 @@ QRenderCaptureReply *QRenderCapture::requestCapture(int captureId, const QRect &
Qt3DCore::QPropertyUpdatedChangePtr change(new Qt3DCore::QPropertyUpdatedChange(id()));
change->setPropertyName(QByteArrayLiteral("renderCaptureRequest"));
- const QRenderCaptureRequest request = { captureId, rect };
+ const QRenderCaptureRequest request = { captureId, QRect() };
change->setValue(QVariant::fromValue(request));
d->notifyObservers(change);
@@ -330,8 +339,8 @@ QRenderCaptureReply *QRenderCapture::requestCapture(int captureId, const QRect &
}
/*!
- * Used to request render capture. Only one render capture result is produced per
- * requestCapture call even if the frame graph has multiple leaf nodes.
+ * Used to request render capture from a specified \a rect. Only one render capture result
+ * is produced per requestCapture call even if the frame graph has multiple leaf nodes.
* The function returns a QRenderCaptureReply object, which receives the captured image
* when it is done. The user is responsible for deallocating the returned object.
*/
@@ -357,6 +366,17 @@ QRenderCaptureReply *QRenderCapture::requestCapture(const QRect &rect)
}
/*!
+ * Used to request render capture. Only one render capture result is produced per
+ * requestCapture call even if the frame graph has multiple leaf nodes.
+ * The function returns a QRenderCaptureReply object, which receives the captured image
+ * when it is done. The user is responsible for deallocating the returned object.
+ */
+Qt3DRender::QRenderCaptureReply *QRenderCapture::requestCapture()
+{
+ return requestCapture(QRect());
+}
+
+/*!
* \internal
*/
void QRenderCapture::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)
diff --git a/src/render/framegraph/qrendercapture.h b/src/render/framegraph/qrendercapture.h
index c18b16170..b3545a8ec 100644
--- a/src/render/framegraph/qrendercapture.h
+++ b/src/render/framegraph/qrendercapture.h
@@ -84,9 +84,10 @@ class QT3DRENDERSHARED_EXPORT QRenderCapture : public QFrameGraphNode
public:
explicit QRenderCapture(Qt3DCore::QNode *parent = nullptr);
- Q_INVOKABLE Q_DECL_DEPRECATED_X("Use the overload with no parameter")
- Qt3DRender::QRenderCaptureReply *requestCapture(int captureId, const QRect &rect = QRect());
- Q_REVISION(9) Q_INVOKABLE Qt3DRender::QRenderCaptureReply *requestCapture(const QRect &rect = QRect());
+ Q_INVOKABLE Q_DECL_DEPRECATED_X("Use the overload with no id parameter")
+ Qt3DRender::QRenderCaptureReply *requestCapture(int captureId);
+ Q_REVISION(9) Q_INVOKABLE Qt3DRender::QRenderCaptureReply *requestCapture();
+ Q_REVISION(10) Q_INVOKABLE Qt3DRender::QRenderCaptureReply *requestCapture(const QRect &rect);
protected:
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) Q_DECL_OVERRIDE;
diff --git a/src/render/materialsystem/shaderbuilder.cpp b/src/render/materialsystem/shaderbuilder.cpp
index c2b32ce86..da1e6a713 100644
--- a/src/render/materialsystem/shaderbuilder.cpp
+++ b/src/render/materialsystem/shaderbuilder.cpp
@@ -51,6 +51,13 @@
#include <QFileInfo>
#include <QUrl>
+static void initResources()
+{
+#ifdef QT_STATIC
+ Q_INIT_RESOURCE(materialsystem);
+#endif
+}
+
QT_BEGIN_NAMESPACE
class GlobalShaderPrototypes
@@ -58,6 +65,7 @@ class GlobalShaderPrototypes
public:
GlobalShaderPrototypes()
{
+ initResources();
setPrototypesFile(QStringLiteral(":/prototypes/default.json"));
}