diff options
author | Liang Qi <liang.qi@qt.io> | 2017-12-08 13:54:31 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-12-08 13:54:31 +0100 |
commit | 8470becd886d299c1be892d8113dfff216035611 (patch) | |
tree | 7801c818f81371c5d75e83cab97b12a0a27adfb0 | |
parent | 94e6ed7c49fae6d7273f4bb51a70e43430038ee9 (diff) | |
parent | 7bd57d2218794fdd7bcaa4f2c8107ef60740ff75 (diff) |
Merge remote-tracking branch 'origin/5.10.0' into 5.10
Change-Id: I58cb37d5de618ad5e9b9a6f0598a0d790d3694f9
-rw-r--r-- | dist/changes-5.10.0 | 87 | ||||
-rw-r--r-- | dist/changes-5.9.3 | 28 | ||||
-rw-r--r-- | src/extras/defaults/qforwardrenderer.cpp | 9 | ||||
-rw-r--r-- | src/extras/defaults/qt3dwindow.cpp | 9 | ||||
-rw-r--r-- | src/render/framegraph/qrendercapture.cpp | 28 | ||||
-rw-r--r-- | src/render/framegraph/qrendercapture.h | 7 | ||||
-rw-r--r-- | src/render/materialsystem/shaderbuilder.cpp | 8 |
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")); } |