summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--qt3d.pro2
-rw-r--r--src/animation/frontend/qcallbackmapping.cpp2
-rw-r--r--src/core/changes/qnodecreatedchange_p.h4
-rw-r--r--src/core/doc/src/qt3dcore-module.qdoc8
-rw-r--r--src/core/nodes/qentity.cpp16
-rw-r--r--src/core/nodes/qentity_p.h1
-rw-r--r--src/doc/src/qt3d-overview.qdoc22
-rw-r--r--src/doc/src/qt3danimation-module.qdoc8
-rw-r--r--src/doc/src/qt3dextras-module.qdoc8
-rw-r--r--src/doc/src/qt3dinput-module.qdoc8
-rw-r--r--src/doc/src/qt3dlogic-module.qdoc8
-rw-r--r--src/doc/src/qt3drender-module.qdoc8
-rw-r--r--src/doc/src/qt3dscene2d-module.qdoc8
-rw-r--r--src/doc/src/qt3dscene3d-module.qdoc8
-rw-r--r--src/quick3d/imports/animation/dependencies.json7
-rw-r--r--src/quick3d/imports/animation/importsanimation.pro2
-rw-r--r--src/quick3d/imports/animation/plugins.qmltypes242
-rw-r--r--src/quick3d/imports/animation/qt3dquick3danimationplugin.cpp3
-rw-r--r--src/quick3d/imports/animation/qt3dquick3danimationplugin.h9
-rw-r--r--src/quick3d/imports/core/importscore.pro2
-rw-r--r--src/quick3d/imports/core/plugins.qmltypes320
-rw-r--r--src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp6
-rw-r--r--src/quick3d/imports/core/qt3dquick3dcoreplugin.h9
-rw-r--r--src/quick3d/imports/extras/dependencies.json12
-rw-r--r--src/quick3d/imports/extras/importsextras.pro2
-rw-r--r--src/quick3d/imports/extras/plugins.qmltypes544
-rw-r--r--src/quick3d/imports/extras/qt3dquick3dextrasplugin.cpp3
-rw-r--r--src/quick3d/imports/extras/qt3dquick3dextrasplugin.h3
-rw-r--r--src/quick3d/imports/input/dependencies.json7
-rw-r--r--src/quick3d/imports/input/importsinput.pro2
-rw-r--r--src/quick3d/imports/input/plugins.qmltypes208
-rw-r--r--src/quick3d/imports/input/qt3dquick3dinputplugin.cpp3
-rw-r--r--src/quick3d/imports/input/qt3dquick3dinputplugin.h9
-rw-r--r--src/quick3d/imports/logic/dependencies.json7
-rw-r--r--src/quick3d/imports/logic/importslogic.pro2
-rw-r--r--src/quick3d/imports/logic/plugins.qmltypes65
-rw-r--r--src/quick3d/imports/logic/qt3dquick3dlogicplugin.cpp3
-rw-r--r--src/quick3d/imports/logic/qt3dquick3dlogicplugin.h9
-rw-r--r--src/quick3d/imports/render/dependencies.json7
-rw-r--r--src/quick3d/imports/render/importsrender.pro2
-rw-r--r--src/quick3d/imports/render/plugins.qmltypes989
-rw-r--r--src/quick3d/imports/render/qt3dquick3drenderplugin.cpp3
-rw-r--r--src/quick3d/imports/render/qt3dquick3drenderplugin.h9
-rw-r--r--src/quick3d/imports/scene2d/dependencies.json12
-rw-r--r--src/quick3d/imports/scene2d/importsscene2d.pro2
-rw-r--r--src/quick3d/imports/scene2d/plugins.qmltypes85
-rw-r--r--src/quick3d/imports/scene2d/qtquickscene2dplugin.cpp3
-rw-r--r--src/quick3d/imports/scene2d/qtquickscene2dplugin.h9
-rw-r--r--src/quick3d/imports/scene3d/dependencies.json12
-rw-r--r--src/quick3d/imports/scene3d/importsscene3d.pro2
-rw-r--r--src/quick3d/imports/scene3d/plugins.qmltypes9
-rw-r--r--src/quick3d/imports/scene3d/qtquickscene3dplugin.cpp3
-rw-r--r--src/quick3d/imports/scene3d/qtquickscene3dplugin.h9
-rw-r--r--src/quick3d/quick3d/items/quick3dentityloader.cpp47
-rw-r--r--src/quick3d/quick3d/items/quick3dentityloader_p.h7
-rw-r--r--src/quick3d/quick3d/items/quick3dentityloader_p_p.h2
-rw-r--r--src/quick3d/quick3d/qt3dquick_global.cpp2
-rw-r--r--src/render/backend/managers.cpp2
-rw-r--r--src/render/backend/managers_p.h2
-rw-r--r--src/render/framegraph/qframegraphnode.cpp37
-rw-r--r--src/render/framegraph/qframegraphnode_p.h5
-rw-r--r--src/render/framegraph/qframegraphnodecreatedchange.cpp3
-rw-r--r--src/render/framegraph/qframegraphnodecreatedchange_p.h11
-rw-r--r--src/render/frontend/qrenderaspect.cpp2
-rw-r--r--src/render/io/qsceneloader.cpp2
-rw-r--r--src/render/materialsystem/qgraphicsapifilter_p.h2
-rw-r--r--src/render/materialsystem/shaderbuilder_p.h2
-rw-r--r--src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp2
-rw-r--r--src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp7
-rw-r--r--src/render/renderers/opengl/renderer/renderer.cpp6
-rw-r--r--src/render/renderers/opengl/textures/gltexture.cpp5
-rw-r--r--tests/auto/auto.pro3
-rw-r--r--tests/auto/core/qentity/tst_qentity.cpp46
-rw-r--r--tests/auto/global/aspects_startup_shutdown/aspects_startup_shutdown.pro7
-rw-r--r--tests/auto/global/aspects_startup_shutdown/tst_aspects_startup_shutdown.cpp210
-rw-r--r--tests/auto/global/global.pro8
-rw-r--r--tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp2
-rw-r--r--tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp47
-rw-r--r--tests/auto/render/sendrendercapturejob/tst_sendrendercapturejob.cpp1
-rw-r--r--tests/auto/render/textures/tst_textures.cpp16
-rw-r--r--tests/manual/dynamic-model-loader-qml/main.qml75
82 files changed, 2236 insertions, 1073 deletions
diff --git a/.qmake.conf b/.qmake.conf
index a9c5f436b..0bd995808 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -3,4 +3,4 @@ QT3D_BUILD_ROOT = $$shadowed($$PWD)
load(qt_build_config)
-MODULE_VERSION = 5.11.2
+MODULE_VERSION = 5.12.0
diff --git a/qt3d.pro b/qt3d.pro
index 2cc347a1c..3fc7d1452 100644
--- a/qt3d.pro
+++ b/qt3d.pro
@@ -1,4 +1,4 @@
-requires(qtConfig(opengl))
+requires(qtConfig(opengl):!wasm)
CONFIG += examples_need_tools
load(qt_parts)
diff --git a/src/animation/frontend/qcallbackmapping.cpp b/src/animation/frontend/qcallbackmapping.cpp
index 3fcc7cf5e..c0163da80 100644
--- a/src/animation/frontend/qcallbackmapping.cpp
+++ b/src/animation/frontend/qcallbackmapping.cpp
@@ -107,7 +107,7 @@ void QCallbackMapping::setChannelName(const QString &channelName)
Such mappings do not have to have a target object and property name. When
the \a callback object is set, every change in the animated value will lead
to invoking the callback's
- \l{QAnimationCallback::onValueChanged()}{onValueChanged()} function either
+ \l {Qt3DAnimation::QAnimationCallback::valueChanged}{valueChanged} function either
on the gui/main thread, or directly on one of the thread pool's worker
thread. This is controlled by \a flags.
diff --git a/src/core/changes/qnodecreatedchange_p.h b/src/core/changes/qnodecreatedchange_p.h
index cb1470970..5e4c5b91d 100644
--- a/src/core/changes/qnodecreatedchange_p.h
+++ b/src/core/changes/qnodecreatedchange_p.h
@@ -53,10 +53,10 @@
#include <Qt3DCore/private/qscenechange_p.h>
#include <Qt3DCore/private/qt3dcore_global_p.h>
-struct QMetaObject;
-
QT_BEGIN_NAMESPACE
+struct QMetaObject;
+
namespace Qt3DCore {
class QNode;
diff --git a/src/core/doc/src/qt3dcore-module.qdoc b/src/core/doc/src/qt3dcore-module.qdoc
index 208df1c86..8f67bae41 100644
--- a/src/core/doc/src/qt3dcore-module.qdoc
+++ b/src/core/doc/src/qt3dcore-module.qdoc
@@ -51,7 +51,7 @@
*/
/*!
- \qmlmodule Qt3D.Core 2.0
+ \qmlmodule Qt3D.Core 2.\QtMinorVersion
\title Qt 3D Core QML Types
\ingroup qmlmodules
\ingroup qt3d-qmlmodules
@@ -61,9 +61,9 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import Qt3D.Core 2.0
- \endcode
+ \qml \QtMinorVersion
+ import Qt3D.Core 2.\1
+ \endqml
See \l {Qt 3D QML Types} for a list of all QML types in Qt 3D.
diff --git a/src/core/nodes/qentity.cpp b/src/core/nodes/qentity.cpp
index d0ed58efd..64ea65087 100644
--- a/src/core/nodes/qentity.cpp
+++ b/src/core/nodes/qentity.cpp
@@ -52,6 +52,8 @@
#include <Qt3DCore/private/qcomponent_p.h>
#include <Qt3DCore/private/qscene_p.h>
+#include <QQueue>
+
QT_BEGIN_NAMESPACE
namespace Qt3DCore {
@@ -233,6 +235,20 @@ QNodeCreatedChangeBasePtr QEntity::createNodeCreationChange() const
Q_D(const QEntity);
data.parentEntityId = parentEntity() ? parentEntity()->id() : Qt3DCore::QNodeId();
+
+ // Find all child entities
+ QQueue<QNode *> queue;
+ queue.append(childNodes().toList());
+ data.childEntityIds.reserve(queue.size());
+ while (!queue.isEmpty()) {
+ auto *child = queue.dequeue();
+ auto *childEntity = qobject_cast<QEntity *>(child);
+ if (childEntity != nullptr)
+ data.childEntityIds.push_back(childEntity->id());
+ else
+ queue.append(child->childNodes().toList());
+ }
+
data.componentIdsAndTypes.reserve(d->m_components.size());
const QComponentVector &components = d->m_components;
for (QComponent *c : components) {
diff --git a/src/core/nodes/qentity_p.h b/src/core/nodes/qentity_p.h
index ef35d83a1..8fe03cd6b 100644
--- a/src/core/nodes/qentity_p.h
+++ b/src/core/nodes/qentity_p.h
@@ -91,6 +91,7 @@ struct QEntityData
{
Qt3DCore::QNodeId parentEntityId;
QVector<QNodeIdTypePair> componentIdsAndTypes;
+ Qt3DCore::QNodeIdVector childEntityIds;
};
}
diff --git a/src/doc/src/qt3d-overview.qdoc b/src/doc/src/qt3d-overview.qdoc
index 5900f16ab..ec78791d6 100644
--- a/src/doc/src/qt3d-overview.qdoc
+++ b/src/doc/src/qt3d-overview.qdoc
@@ -49,14 +49,14 @@
features:
\list
- \li 2D and 3D rendering for C++ and Qt Quick applications
- \li Meshes and \l {Qt 3D Render Geometry}{Geometry}
+ \li 2D and 3D \l {Qt3DRender}{rendering} for C++ and Qt Quick applications
+ \li \l{Qt3DRender::QMesh}{Meshes} and \l {Qt 3D Render Geometry}{Geometry}
\li \l {Materials}
\li \l {Shaders}
\li \l {Shadow Mapping}{Shadow mapping}
- \li Ambient occlusion
+ \li \l {Qt3DExtras::QMetalRoughMaterial::ambientOcclusion}{Ambient occlusion}
\li High dynamic range
- \li Deferred rendering
+ \li \l {Deferred Renderer}{Deferred rendering}
\li Multitexturing
\li \l {Instanced Rendering}{Instanced rendering}
\li \l {Uniform Buffer Objects}
@@ -89,7 +89,7 @@
vertex, tessellation control, tessellation evaluation, geometry, and
fragment shaders. Compute shaders are planned for a future release.
- For examples of using shaders, see the Simple Shaders QML Example,
+ For examples of using shaders, see the \l {Simple Shader Example},
\l {Qt 3D: Shadow Map QML Example}, \l{Qt 3D: Wireframe QML Example}, and
\l {Qt 3D: Wave QML Example}.
@@ -173,10 +173,10 @@
large amounts of data readily available. Typical use cases for UBOs are for
sets of material or lighting parameters.
- \section2 Pro Tips
+ \section2 Useful Tips
- Because Murphy's law proves to often be true when it comes to 3D rendering,
- \l {Qt 3D Render Pro Tips}{here} are a few points that might help you.
+ Some very useful programming tips for 3D rendering can be found on this
+ page: \l {Qt 3D Render Pro Tips}.
\section1 Configurable Renderer
@@ -197,7 +197,7 @@
\section1 3D Extensions
Beyond the essentials of displaying 3D content on the screen, Qt 3D is
- extensible and flexible enough to act as a host for following types of
+ extensible and flexible enough to act as a host for the following types of
extensions related to the 3D objects:
\list
@@ -277,7 +277,7 @@
\section2 Using an ECS
- In an ECS, an entity represents a simulated object but by itself is devoid
+ In an ECS, an entity represents a simulated object, but by itself it is devoid
of any specific behavior or characteristics. Additional behavior can be
grafted onto an entity by having the entity aggregate one or more
components. Each component is a vertical slice of behavior of an object
@@ -373,7 +373,7 @@
\section1 Qt 3D's Aspects
- By default Qt 3D provides the Qt3DRender and Qt3DInput aspects. The
+ By default, Qt 3D provides the Qt3DRender and Qt3DInput aspects. The
components and other supporting classes provided by these aspects are
discussed in the documentation for those modules.
diff --git a/src/doc/src/qt3danimation-module.qdoc b/src/doc/src/qt3danimation-module.qdoc
index 631e449e2..9cf32b4c8 100644
--- a/src/doc/src/qt3danimation-module.qdoc
+++ b/src/doc/src/qt3danimation-module.qdoc
@@ -215,7 +215,7 @@
*/
/*!
- \qmlmodule Qt3D.Animation 2.9
+ \qmlmodule Qt3D.Animation 2.\QtMinorVersion
\title Qt 3D Qt3DAnimation QML Types
\preliminary
@@ -226,7 +226,7 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import Qt3D.Animation 2.9
- \endcode
+ \qml \QtMinorVersion
+ import Qt3D.Animation 2.\1
+ \endqml
*/
diff --git a/src/doc/src/qt3dextras-module.qdoc b/src/doc/src/qt3dextras-module.qdoc
index 390a2a564..8f08b60e5 100644
--- a/src/doc/src/qt3dextras-module.qdoc
+++ b/src/doc/src/qt3dextras-module.qdoc
@@ -103,7 +103,7 @@
*/
/*!
- \qmlmodule Qt3D.Extras 2.0
+ \qmlmodule Qt3D.Extras 2.\QtMinorVersion
\title Qt 3D Extras QML Types
\preliminary
@@ -114,7 +114,7 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import Qt3D.Extras 2.0
- \endcode
+ \qml \QtMinorVersion
+ import Qt3D.Extras 2.\1
+ \endqml
*/
diff --git a/src/doc/src/qt3dinput-module.qdoc b/src/doc/src/qt3dinput-module.qdoc
index 0fbe0aef1..9ae8accac 100644
--- a/src/doc/src/qt3dinput-module.qdoc
+++ b/src/doc/src/qt3dinput-module.qdoc
@@ -58,7 +58,7 @@
*/
/*!
- \qmlmodule Qt3D.Input 2.0
+ \qmlmodule Qt3D.Input 2.\QtMinorVersion
\title Qt 3D Input QML Types
\since 5.7
@@ -69,9 +69,9 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import Qt3D.Input 2.0
- \endcode
+ \qml \QtMinorVersion
+ import Qt3D.Input 2.\1
+ \endqml
\section1 QML Types
*/
diff --git a/src/doc/src/qt3dlogic-module.qdoc b/src/doc/src/qt3dlogic-module.qdoc
index 8994b8bcd..5823c5cc7 100644
--- a/src/doc/src/qt3dlogic-module.qdoc
+++ b/src/doc/src/qt3dlogic-module.qdoc
@@ -60,7 +60,7 @@
*/
/*!
- \qmlmodule Qt3D.Logic 2.0
+ \qmlmodule Qt3D.Logic 2.\QtMinorVersion
\title Qt 3D Logic QML Types
\since 5.7
@@ -71,9 +71,9 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import Qt3D.Logic 2.0
- \endcode
+ \qml \QtMinorVersion
+ import Qt3D.Logic 2.\1
+ \endqml
\section1 QML Types
*/
diff --git a/src/doc/src/qt3drender-module.qdoc b/src/doc/src/qt3drender-module.qdoc
index c42e2b7c7..834ea45fd 100644
--- a/src/doc/src/qt3drender-module.qdoc
+++ b/src/doc/src/qt3drender-module.qdoc
@@ -74,7 +74,7 @@
*/
/*!
- \qmlmodule Qt3D.Render 2.0
+ \qmlmodule Qt3D.Render 2.\QtMinorVersion
\title Qt 3D Render QML Types
\since 5.7
@@ -85,7 +85,7 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import Qt3D.Render 2.0
- \endcode
+ \qml \QtMinorVersion
+ import Qt3D.Render 2.\1
+ \endqml
*/
diff --git a/src/doc/src/qt3dscene2d-module.qdoc b/src/doc/src/qt3dscene2d-module.qdoc
index c9022245a..39ca8a44f 100644
--- a/src/doc/src/qt3dscene2d-module.qdoc
+++ b/src/doc/src/qt3dscene2d-module.qdoc
@@ -69,7 +69,7 @@
*/
/*!
- \qmlmodule QtQuick.Scene2D 2.11
+ \qmlmodule QtQuick.Scene2D 2.\QtMinorVersion
\preliminary
\title Qt 3D Scene2D QML Types
\ingroup qmlmodules
@@ -79,7 +79,7 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import QtQuick.Scene2D 2.11
- \endcode
+ \qml \QtMinorVersion
+ import QtQuick.Scene2D 2.\1
+ \endqml
*/
diff --git a/src/doc/src/qt3dscene3d-module.qdoc b/src/doc/src/qt3dscene3d-module.qdoc
index aa6939ef9..27bdd81aa 100644
--- a/src/doc/src/qt3dscene3d-module.qdoc
+++ b/src/doc/src/qt3dscene3d-module.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
- \qmlmodule QtQuick.Scene3D 2.0
+ \qmlmodule QtQuick.Scene3D 2.\QtMinorVersion
\preliminary
\title Qt 3D Scene3D QML Types
\ingroup qmlmodules
@@ -36,7 +36,7 @@
To import and use the module's QML types, use the following statement:
- \badcode
- import QtQuick.Scene3D 2.0
- \endcode
+ \qml \QtMinorVersion
+ import QtQuick.Scene3D 2.\1
+ \endqml
*/
diff --git a/src/quick3d/imports/animation/dependencies.json b/src/quick3d/imports/animation/dependencies.json
new file mode 100644
index 000000000..71a3f7381
--- /dev/null
+++ b/src/quick3d/imports/animation/dependencies.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "Qt3D.Core",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/animation/importsanimation.pro b/src/quick3d/imports/animation/importsanimation.pro
index 5492a4f39..7b637dd3c 100644
--- a/src/quick3d/imports/animation/importsanimation.pro
+++ b/src/quick3d/imports/animation/importsanimation.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = quick3danimationplugin
TARGETPATH = Qt3D/Animation
-IMPORT_VERSION = 2.2
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += core-private qml qml-private 3dcore 3drender 3danimation 3dquick 3dquickrender 3dquickanimation 3dquick-private 3dquickanimation-private
diff --git a/src/quick3d/imports/animation/plugins.qmltypes b/src/quick3d/imports/animation/plugins.qmltypes
index 08879ee52..ad2bc8812 100644
--- a/src/quick3d/imports/animation/plugins.qmltypes
+++ b/src/quick3d/imports/animation/plugins.qmltypes
@@ -4,23 +4,10 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable Qt3D.Animation 2.9'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json Qt3D.Animation 2.12'
Module {
- dependencies: ["QtQuick 2.8"]
- Component {
- name: "Qt3DAnimation::Animation::Quick::Quick3DChannelMapper"
- defaultProperty: "mappings"
- prototype: "Qt3DAnimation::QChannelMapper"
- exports: ["Qt3D.Animation/ChannelMapper 2.9"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "mappings"
- type: "Qt3DAnimation::QChannelMapping"
- isList: true
- isReadonly: true
- }
- }
+ dependencies: ["Qt3D.Core 2.0"]
Component {
name: "Qt3DAnimation::QAbstractAnimation"
prototype: "QObject"
@@ -36,7 +23,7 @@ Module {
}
}
Property { name: "animationName"; type: "string" }
- Property { name: "animationType"; type: "QAbstractAnimation::AnimationType"; isReadonly: true }
+ Property { name: "animationType"; type: "AnimationType"; isReadonly: true }
Property { name: "position"; type: "float" }
Property { name: "duration"; type: "float"; isReadonly: true }
Signal {
@@ -73,6 +60,13 @@ Module {
}
}
Component {
+ name: "Qt3DAnimation::QAbstractChannelMapping"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Animation/AbstractChannelMapping 2.10"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ }
+ Component {
name: "Qt3DAnimation::QAbstractClipAnimator"
prototype: "Qt3DCore::QComponent"
exports: ["Qt3D.Animation/AbstractClipAnimator 2.9"]
@@ -87,6 +81,8 @@ Module {
Property { name: "running"; type: "bool" }
Property { name: "loops"; type: "int" }
Property { name: "channelMapper"; type: "Qt3DAnimation::QChannelMapper"; isPointer: true }
+ Property { name: "clock"; type: "Qt3DAnimation::QClock"; isPointer: true }
+ Property { name: "normalizedTime"; type: "float" }
Signal {
name: "runningChanged"
Parameter { name: "running"; type: "bool" }
@@ -99,6 +95,14 @@ Module {
name: "loopCountChanged"
Parameter { name: "loops"; type: "int" }
}
+ Signal {
+ name: "clockChanged"
+ Parameter { name: "clock"; type: "Qt3DAnimation::QClock"; isPointer: true }
+ }
+ Signal {
+ name: "normalizedTimeChanged"
+ Parameter { name: "index"; type: "float" }
+ }
Method {
name: "setRunning"
Parameter { name: "running"; type: "bool" }
@@ -111,6 +115,16 @@ Module {
name: "setLoopCount"
Parameter { name: "loops"; type: "int" }
}
+ Method {
+ name: "setClock"
+ Parameter { name: "clock"; type: "Qt3DAnimation::QClock"; isPointer: true }
+ }
+ Method {
+ name: "setNormalizedTime"
+ Parameter { name: "timeFraction"; type: "float" }
+ }
+ Method { name: "start" }
+ Method { name: "stop" }
}
Component {
name: "Qt3DAnimation::QAbstractClipBlendNode"
@@ -210,6 +224,8 @@ Module {
Component {
name: "Qt3DAnimation::QAnimationController"
prototype: "QObject"
+ exports: ["Qt3D.Animation/AnimationController 2.9"]
+ exportMetaObjectRevisions: [209]
Property { name: "activeAnimationGroup"; type: "int" }
Property { name: "position"; type: "float" }
Property { name: "positionScale"; type: "float" }
@@ -274,10 +290,19 @@ Module {
type: "Qt3DAnimation::QAnimationGroup*"
Parameter { name: "index"; type: "int" }
}
+ Property {
+ name: "animationGroups"
+ revision: 209
+ type: "Qt3DAnimation::QAnimationGroup"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DAnimation::QAnimationGroup"
prototype: "QObject"
+ exports: ["Qt3D.Animation/AnimationGroup 2.9"]
+ exportMetaObjectRevisions: [209]
Property { name: "name"; type: "string" }
Property { name: "position"; type: "float" }
Property { name: "duration"; type: "float"; isReadonly: true }
@@ -301,6 +326,13 @@ Module {
name: "setPosition"
Parameter { name: "position"; type: "float" }
}
+ Property {
+ name: "animations"
+ revision: 209
+ type: "Qt3DAnimation::QAbstractAnimation"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DAnimation::QBlendedClipAnimator"
@@ -317,10 +349,23 @@ Module {
Parameter { name: "blendTree"; type: "QAbstractClipBlendNode"; isPointer: true }
}
}
- Component { name: "Qt3DAnimation::QChannelMapper"; prototype: "Qt3DCore::QNode" }
Component {
- name: "Qt3DAnimation::QChannelMapping"
+ name: "Qt3DAnimation::QChannelMapper"
+ defaultProperty: "mappings"
prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Animation/ChannelMapper 2.9"]
+ exportMetaObjectRevisions: [209]
+ Property {
+ name: "mappings"
+ revision: 209
+ type: "Qt3DAnimation::QAbstractChannelMapping"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DAnimation::QChannelMapping"
+ prototype: "Qt3DAnimation::QAbstractChannelMapping"
exports: ["Qt3D.Animation/ChannelMapping 2.9"]
exportMetaObjectRevisions: [0]
Property { name: "channelName"; type: "string" }
@@ -382,8 +427,21 @@ Module {
}
}
Component {
+ name: "Qt3DAnimation::QClock"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Animation/Clock 2.9"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "playbackRate"; type: "double" }
+ Signal {
+ name: "playbackRateChanged"
+ Parameter { name: "playbackRate"; type: "double" }
+ }
+ }
+ Component {
name: "Qt3DAnimation::QKeyframeAnimation"
prototype: "Qt3DAnimation::QAbstractAnimation"
+ exports: ["Qt3D.Animation/KeyframeAnimation 2.9"]
+ exportMetaObjectRevisions: [209]
Enum {
name: "RepeatMode"
values: {
@@ -396,8 +454,8 @@ Module {
Property { name: "target"; type: "Qt3DCore::QTransform"; isPointer: true }
Property { name: "easing"; type: "QEasingCurve" }
Property { name: "targetName"; type: "string" }
- Property { name: "startMode"; type: "QKeyframeAnimation::RepeatMode" }
- Property { name: "endMode"; type: "QKeyframeAnimation::RepeatMode" }
+ Property { name: "startMode"; type: "RepeatMode" }
+ Property { name: "endMode"; type: "RepeatMode" }
Signal {
name: "framePositionsChanged"
Parameter { name: "positions"; type: "QVector<float>" }
@@ -446,6 +504,13 @@ Module {
name: "setEndMode"
Parameter { name: "mode"; type: "RepeatMode" }
}
+ Property {
+ name: "keyframes"
+ revision: 209
+ type: "Qt3DCore::QTransform"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DAnimation::QLerpClipBlend"
@@ -483,6 +548,8 @@ Module {
Component {
name: "Qt3DAnimation::QMorphTarget"
prototype: "QObject"
+ exports: ["Qt3D.Animation/MorphTarget 2.9"]
+ exportMetaObjectRevisions: [209]
Property { name: "attributeNames"; type: "QStringList"; isReadonly: true }
Signal {
name: "attributeNamesChanged"
@@ -494,10 +561,19 @@ Module {
Parameter { name: "geometry"; type: "Qt3DRender::QGeometry"; isPointer: true }
Parameter { name: "attributes"; type: "QStringList" }
}
+ Property {
+ name: "attributes"
+ revision: 209
+ type: "Qt3DRender::QAttribute"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DAnimation::QMorphingAnimation"
prototype: "Qt3DAnimation::QAbstractAnimation"
+ exports: ["Qt3D.Animation/MorphingAnimation 2.9"]
+ exportMetaObjectRevisions: [209]
Enum {
name: "Method"
values: {
@@ -509,7 +585,7 @@ Module {
Property { name: "interpolator"; type: "float"; isReadonly: true }
Property { name: "target"; type: "Qt3DRender::QGeometryRenderer"; isPointer: true }
Property { name: "targetName"; type: "string" }
- Property { name: "method"; type: "QMorphingAnimation::Method" }
+ Property { name: "method"; type: "Method" }
Property { name: "easing"; type: "QEasingCurve" }
Signal {
name: "targetPositionsChanged"
@@ -555,116 +631,72 @@ Module {
name: "setEasing"
Parameter { name: "easing"; type: "QEasingCurve" }
}
- }
- Component {
- name: "Qt3DAnimation::Quick::QQuick3DAnimationController"
- prototype: "Qt3DAnimation::QAnimationController"
- exports: ["Qt3D.Animation/AnimationController 2.9"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "animationGroups"
- type: "Qt3DAnimation::QAnimationGroup"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DAnimation::Quick::QQuick3DAnimationGroup"
- prototype: "Qt3DAnimation::QAnimationGroup"
- exports: ["Qt3D.Animation/AnimationGroup 2.9"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "animations"
- type: "Qt3DAnimation::QAbstractAnimation"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DAnimation::Quick::QQuick3DKeyframeAnimation"
- prototype: "Qt3DAnimation::QKeyframeAnimation"
- exports: ["Qt3D.Animation/KeyframeAnimation 2.9"]
- exportMetaObjectRevisions: [0]
- Property { name: "keyframes"; type: "Qt3DCore::QTransform"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DAnimation::Quick::QQuick3DMorphTarget"
- prototype: "Qt3DAnimation::QMorphTarget"
- exports: ["Qt3D.Animation/MorphTarget 2.9"]
- exportMetaObjectRevisions: [0]
- Property { name: "attributes"; type: "Qt3DRender::QAttribute"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DAnimation::Quick::QQuick3DMorphingAnimation"
- prototype: "Qt3DAnimation::QMorphingAnimation"
- exports: ["Qt3D.Animation/MorphingAnimation 2.9"]
- exportMetaObjectRevisions: [0]
Property {
name: "morphTargets"
+ revision: 209
type: "Qt3DAnimation::QMorphTarget"
isList: true
isReadonly: true
}
}
Component {
- name: "Qt3DCore::QComponent"
- prototype: "Qt3DCore::QNode"
- Property { name: "isShareable"; type: "bool" }
- Signal {
- name: "shareableChanged"
- Parameter { name: "isShareable"; type: "bool" }
- }
- Signal {
- name: "addedToEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
+ name: "Qt3DAnimation::QSkeletonMapping"
+ prototype: "Qt3DAnimation::QAbstractChannelMapping"
+ exports: ["Qt3D.Animation/SkeletonMapping 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "skeleton"; type: "Qt3DCore::QAbstractSkeleton"; isPointer: true }
Signal {
- name: "removedFromEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
+ name: "skeletonChanged"
+ Parameter { name: "skeleton"; type: "Qt3DCore::QAbstractSkeleton"; isPointer: true }
}
Method {
- name: "setShareable"
- Parameter { name: "isShareable"; type: "bool" }
+ name: "setSkeleton"
+ Parameter { name: "skeleton"; type: "Qt3DCore::QAbstractSkeleton"; isPointer: true }
}
}
Component {
- name: "Qt3DCore::QNode"
- prototype: "QObject"
- Enum {
- name: "PropertyTrackingMode"
- values: {
- "TrackFinalValues": 0,
- "DontTrackValues": 1,
- "TrackAllValues": 2
- }
+ name: "Qt3DAnimation::QVertexBlendAnimation"
+ prototype: "Qt3DAnimation::QAbstractAnimation"
+ exports: ["Qt3D.Animation/VertexBlendAnimation 2.9"]
+ exportMetaObjectRevisions: [209]
+ Property { name: "targetPositions"; type: "QVector<float>" }
+ Property { name: "interpolator"; type: "float"; isReadonly: true }
+ Property { name: "target"; type: "Qt3DRender::QGeometryRenderer"; isPointer: true }
+ Property { name: "targetName"; type: "string" }
+ Signal {
+ name: "targetPositionsChanged"
+ Parameter { name: "targetPositions"; type: "QVector<float>" }
}
- Property { name: "parent"; type: "Qt3DCore::QNode"; isPointer: true }
- Property { name: "enabled"; type: "bool" }
- Property { name: "defaultPropertyTrackingMode"; revision: 9; type: "PropertyTrackingMode" }
Signal {
- name: "parentChanged"
- Parameter { name: "parent"; type: "QObject"; isPointer: true }
+ name: "interpolatorChanged"
+ Parameter { name: "interpolator"; type: "float" }
}
Signal {
- name: "enabledChanged"
- Parameter { name: "enabled"; type: "bool" }
+ name: "targetChanged"
+ Parameter { name: "target"; type: "Qt3DRender::QGeometryRenderer"; isPointer: true }
}
Signal {
- name: "defaultPropertyTrackingModeChanged"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
+ name: "targetNameChanged"
+ Parameter { name: "name"; type: "string" }
}
- Signal { name: "nodeDestroyed" }
Method {
- name: "setParent"
- Parameter { name: "parent"; type: "QNode"; isPointer: true }
+ name: "setTargetPositions"
+ Parameter { name: "targetPositions"; type: "QVector<float>" }
}
Method {
- name: "setEnabled"
- Parameter { name: "isEnabled"; type: "bool" }
+ name: "setTarget"
+ Parameter { name: "target"; type: "Qt3DRender::QGeometryRenderer"; isPointer: true }
}
Method {
- name: "setDefaultPropertyTrackingMode"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
+ name: "setTargetName"
+ Parameter { name: "name"; type: "string" }
+ }
+ Property {
+ name: "morphTargets"
+ revision: 209
+ type: "Qt3DAnimation::QMorphTarget"
+ isList: true
+ isReadonly: true
}
}
}
diff --git a/src/quick3d/imports/animation/qt3dquick3danimationplugin.cpp b/src/quick3d/imports/animation/qt3dquick3danimationplugin.cpp
index e24ae6348..f101d17d3 100644
--- a/src/quick3d/imports/animation/qt3dquick3danimationplugin.cpp
+++ b/src/quick3d/imports/animation/qt3dquick3danimationplugin.cpp
@@ -99,6 +99,9 @@ void Qt3DQuick3DAnimationPlugin::registerTypes(const char *uri)
qmlRegisterUncreatableType<Qt3DAnimation::QAbstractChannelMapping>(uri, 2, 10, "AbstractChannelMapping", QStringLiteral("QAbstractChannelMapping is abstract"));
qmlRegisterType<Qt3DAnimation::QSkeletonMapping>(uri, 2, 10, "SkeletonMapping");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
QT_END_NAMESPACE
diff --git a/src/quick3d/imports/animation/qt3dquick3danimationplugin.h b/src/quick3d/imports/animation/qt3dquick3danimationplugin.h
index 3800194ce..42e0efbef 100644
--- a/src/quick3d/imports/animation/qt3dquick3danimationplugin.h
+++ b/src/quick3d/imports/animation/qt3dquick3danimationplugin.h
@@ -42,13 +42,6 @@
#include <QtQml/qqmlextensionplugin.h>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_Qt3D_Animation);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class Qt3DQuick3DAnimationPlugin : public QQmlExtensionPlugin
@@ -56,7 +49,7 @@ class Qt3DQuick3DAnimationPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
public:
- Qt3DQuick3DAnimationPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ Qt3DQuick3DAnimationPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/imports/core/importscore.pro b/src/quick3d/imports/core/importscore.pro
index 6f43d8c99..4ff71488a 100644
--- a/src/quick3d/imports/core/importscore.pro
+++ b/src/quick3d/imports/core/importscore.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = quick3dcoreplugin
TARGETPATH = Qt3D/Core
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += core-private qml qml-private quick quick-private 3dcore 3dcore-private 3dquick 3dquick-private
diff --git a/src/quick3d/imports/core/plugins.qmltypes b/src/quick3d/imports/core/plugins.qmltypes
index 87cdac04c..4c0719a97 100644
--- a/src/quick3d/imports/core/plugins.qmltypes
+++ b/src/quick3d/imports/core/plugins.qmltypes
@@ -4,30 +4,169 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable Qt3D.Core 2.9'
+// 'qmlplugindump -nonrelocatable Qt3D.Core 2.12'
Module {
- dependencies: ["QtQuick 2.8"]
+ dependencies: ["QtQuick 2.12"]
+ Component {
+ name: "Qt3DCore::QAbstractSkeleton"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Core/AbstractSkeleton 2.10"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "jointCount"; type: "int"; isReadonly: true }
+ Signal {
+ name: "jointCountChanged"
+ Parameter { name: "jointCount"; type: "int" }
+ }
+ }
+ Component {
+ name: "Qt3DCore::QArmature"
+ prototype: "Qt3DCore::QComponent"
+ exports: ["Qt3D.Core/Armature 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "skeleton"; type: "Qt3DCore::QAbstractSkeleton"; isPointer: true }
+ Signal {
+ name: "skeletonChanged"
+ Parameter { name: "skeleton"; type: "Qt3DCore::QAbstractSkeleton"; isPointer: true }
+ }
+ Method {
+ name: "setSkeleton"
+ Parameter { name: "skeleton"; type: "Qt3DCore::QAbstractSkeleton"; isPointer: true }
+ }
+ }
Component {
name: "Qt3DCore::QComponent"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Core/Component3D 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "isShareable"; type: "bool" }
+ Signal {
+ name: "shareableChanged"
+ Parameter { name: "isShareable"; type: "bool" }
+ }
+ Signal {
+ name: "addedToEntity"
+ Parameter { name: "entity"; type: "QEntity"; isPointer: true }
+ }
+ Signal {
+ name: "removedFromEntity"
+ Parameter { name: "entity"; type: "QEntity"; isPointer: true }
+ }
+ Method {
+ name: "setShareable"
+ Parameter { name: "isShareable"; type: "bool" }
+ }
+ }
+ Component {
+ name: "Qt3DCore::QEntity"
defaultProperty: "data"
- prototype: "Qt3DCore::QComponent"
- Property { name: "propertyTrackingOverrides"; type: "QJSValue" }
- Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
- Property { name: "childNodes"; type: "Qt3DCore::QNode"; isList: true; isReadonly: true }
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Core/Entity 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "components"
+ revision: 200
+ type: "Qt3DCore::QComponent"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DCore::QJoint"
+ defaultProperty: "data"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Core/Joint 2.10"]
+ exportMetaObjectRevisions: [210]
+ Property { name: "scale"; type: "QVector3D" }
+ Property { name: "rotation"; type: "QQuaternion" }
+ Property { name: "translation"; type: "QVector3D" }
+ Property { name: "inverseBindMatrix"; type: "QMatrix4x4" }
+ Property { name: "rotationX"; type: "float" }
+ Property { name: "rotationY"; type: "float" }
+ Property { name: "rotationZ"; type: "float" }
+ Property { name: "name"; type: "string" }
+ Signal {
+ name: "scaleChanged"
+ Parameter { name: "scale"; type: "QVector3D" }
+ }
+ Signal {
+ name: "rotationChanged"
+ Parameter { name: "rotation"; type: "QQuaternion" }
+ }
+ Signal {
+ name: "translationChanged"
+ Parameter { name: "translation"; type: "QVector3D" }
+ }
+ Signal {
+ name: "inverseBindMatrixChanged"
+ Parameter { name: "inverseBindMatrix"; type: "QMatrix4x4" }
+ }
+ Signal {
+ name: "rotationXChanged"
+ Parameter { name: "rotationX"; type: "float" }
+ }
+ Signal {
+ name: "rotationYChanged"
+ Parameter { name: "rotationY"; type: "float" }
+ }
Signal {
- name: "propertyTrackingOverridesChanged"
- Parameter { name: "value"; type: "QJSValue" }
+ name: "rotationZChanged"
+ Parameter { name: "rotationZ"; type: "float" }
}
Signal {
- name: "propertyTrackingOverridesChanged"
- Parameter { name: "value"; type: "QJSValue" }
+ name: "nameChanged"
+ Parameter { name: "name"; type: "string" }
+ }
+ Method {
+ name: "setScale"
+ Parameter { name: "scale"; type: "QVector3D" }
+ }
+ Method {
+ name: "setRotation"
+ Parameter { name: "rotation"; type: "QQuaternion" }
+ }
+ Method {
+ name: "setTranslation"
+ Parameter { name: "translation"; type: "QVector3D" }
+ }
+ Method {
+ name: "setInverseBindMatrix"
+ Parameter { name: "inverseBindMatrix"; type: "QMatrix4x4" }
+ }
+ Method {
+ name: "setRotationX"
+ Parameter { name: "rotationX"; type: "float" }
+ }
+ Method {
+ name: "setRotationY"
+ Parameter { name: "rotationY"; type: "float" }
+ }
+ Method {
+ name: "setRotationZ"
+ Parameter { name: "rotationZ"; type: "float" }
+ }
+ Method {
+ name: "setName"
+ Parameter { name: "name"; type: "string" }
+ }
+ Method { name: "setToIdentity" }
+ Property {
+ name: "childJoints"
+ revision: 210
+ type: "Qt3DCore::QJoint"
+ isList: true
+ isReadonly: true
}
}
- Component { name: "Qt3DCore::QEntity"; prototype: "Qt3DCore::QNode" }
Component {
name: "Qt3DCore::QNode"
+ defaultProperty: "data"
prototype: "QObject"
+ exports: ["Qt3D.Core/Node 2.0", "Qt3D.Core/Node 2.9"]
+ isCreatable: false
+ exportMetaObjectRevisions: [200, 209]
Enum {
name: "PropertyTrackingMode"
values: {
@@ -64,10 +203,71 @@ Module {
name: "setDefaultPropertyTrackingMode"
Parameter { name: "mode"; type: "PropertyTrackingMode" }
}
+ Property { name: "data"; revision: 200; type: "QObject"; isList: true; isReadonly: true }
+ Property {
+ name: "childNodes"
+ revision: 200
+ type: "Qt3DCore::QNode"
+ isList: true
+ isReadonly: true
+ }
+ Property { name: "propertyTrackingOverrides"; revision: 209; type: "QJSValue" }
+ Property { name: "data"; revision: 209; type: "QObject"; isList: true; isReadonly: true }
+ Property {
+ name: "childNodes"
+ revision: 209
+ type: "Qt3DCore::QNode"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DCore::QSkeletonLoader"
+ prototype: "Qt3DCore::QAbstractSkeleton"
+ exports: ["Qt3D.Core/SkeletonLoader 2.10"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: {
+ "NotReady": 0,
+ "Ready": 1,
+ "Error": 2
+ }
+ }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "createJointsEnabled"; type: "bool" }
+ Property { name: "rootJoint"; type: "Qt3DCore::QJoint"; isReadonly: true; isPointer: true }
+ Signal {
+ name: "sourceChanged"
+ Parameter { name: "source"; type: "QUrl" }
+ }
+ Signal {
+ name: "statusChanged"
+ Parameter { name: "status"; type: "Status" }
+ }
+ Signal {
+ name: "createJointsEnabledChanged"
+ Parameter { name: "createJointsEnabled"; type: "bool" }
+ }
+ Signal {
+ name: "rootJointChanged"
+ Parameter { name: "rootJoint"; type: "Qt3DCore::QJoint"; isPointer: true }
+ }
+ Method {
+ name: "setSource"
+ Parameter { name: "source"; type: "QUrl" }
+ }
+ Method {
+ name: "setCreateJointsEnabled"
+ Parameter { name: "enabled"; type: "bool" }
+ }
}
Component {
name: "Qt3DCore::QTransform"
prototype: "Qt3DCore::QComponent"
+ exports: ["Qt3D.Core/Transform 2.0"]
+ exportMetaObjectRevisions: [0]
Property { name: "matrix"; type: "QMatrix4x4" }
Property { name: "scale"; type: "float" }
Property { name: "scale3D"; type: "QVector3D" }
@@ -169,6 +369,13 @@ Module {
Parameter { name: "angle3"; type: "float" }
}
Method {
+ name: "fromAxes"
+ type: "QQuaternion"
+ Parameter { name: "xAxis"; type: "QVector3D" }
+ Parameter { name: "yAxis"; type: "QVector3D" }
+ Parameter { name: "zAxis"; type: "QVector3D" }
+ }
+ Method {
name: "fromEulerAngles"
type: "QQuaternion"
Parameter { name: "eulerAngles"; type: "QVector3D" }
@@ -187,6 +394,13 @@ Module {
Parameter { name: "angle"; type: "float" }
Parameter { name: "axis"; type: "QVector3D" }
}
+ Method {
+ name: "rotateFromAxes"
+ type: "QMatrix4x4"
+ Parameter { name: "xAxis"; type: "QVector3D" }
+ Parameter { name: "yAxis"; type: "QVector3D" }
+ Parameter { name: "zAxis"; type: "QVector3D" }
+ }
}
Component {
name: "Qt3DCore::Quick::QQuaternionAnimation"
@@ -239,62 +453,54 @@ Module {
}
}
Component {
- name: "Qt3DCore::Quick::Quick3DEntity"
- defaultProperty: "data"
- prototype: "Qt3DCore::QEntity"
- exports: ["Qt3D.Core/Entity 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "components"; type: "Qt3DCore::QComponent"; isList: true; isReadonly: true }
- }
- Component {
name: "Qt3DCore::Quick::Quick3DEntityLoader"
- defaultProperty: "data"
- prototype: "Qt3DCore::Quick::Quick3DEntityLoader"
- Property { name: "components"; type: "Qt3DCore::QComponent"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DCore::Quick::Quick3DNode"
- defaultProperty: "data"
- prototype: "Qt3DCore::QNode"
- exports: ["Qt3D.Core/Node 2.0"]
- isCreatable: false
- exportMetaObjectRevisions: [0]
- Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
- Property { name: "childNodes"; type: "Qt3DCore::QNode"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DCore::Quick::Quick3DNodeInstantiator"
- defaultProperty: "delegate"
- prototype: "Qt3DCore::Quick::Quick3DNodeInstantiator"
- Property { name: "propertyTrackingOverrides"; type: "QJSValue" }
- Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
- Property { name: "childNodes"; type: "Qt3DCore::QNode"; isList: true; isReadonly: true }
- Signal {
- name: "propertyTrackingOverridesChanged"
- Parameter { name: "value"; type: "QJSValue" }
+ prototype: "Qt3DCore::QEntity"
+ exports: ["Qt3D.Core/EntityLoader 2.0", "Qt3D.Core/EntityLoader 2.12"]
+ exportMetaObjectRevisions: [0, 12]
+ Enum {
+ name: "Status"
+ values: {
+ "Null": 0,
+ "Loading": 1,
+ "Ready": 2,
+ "Error": 3
+ }
}
+ Property { name: "entity"; type: "QObject"; isReadonly: true; isPointer: true }
+ Property { name: "source"; type: "QUrl" }
+ Property { name: "status"; type: "Status"; isReadonly: true }
+ Property { name: "sourceComponent"; revision: 12; type: "QQmlComponent"; isPointer: true }
Signal {
- name: "propertyTrackingOverridesChanged"
- Parameter { name: "value"; type: "QJSValue" }
+ name: "statusChanged"
+ Parameter { name: "status"; type: "Status" }
}
}
Component {
- name: "Qt3DCore::Quick::Quick3DNodeV9"
- defaultProperty: "data"
+ name: "Qt3DCore::Quick::Quick3DNodeInstantiator"
+ defaultProperty: "delegate"
prototype: "Qt3DCore::QNode"
- exports: ["Qt3D.Core/Node 2.9"]
- isCreatable: false
- exportMetaObjectRevisions: [9]
- Property { name: "propertyTrackingOverrides"; type: "QJSValue" }
- Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
- Property { name: "childNodes"; type: "Qt3DCore::QNode"; isList: true; isReadonly: true }
+ exports: ["Qt3D.Core/NodeInstantiator 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "active"; type: "bool" }
+ Property { name: "asynchronous"; type: "bool" }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "count"; type: "int"; isReadonly: true }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "object"; type: "QObject"; isReadonly: true; isPointer: true }
Signal {
- name: "propertyTrackingOverridesChanged"
- Parameter { name: "value"; type: "QJSValue" }
+ name: "objectAdded"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
}
Signal {
- name: "propertyTrackingOverridesChanged"
- Parameter { name: "value"; type: "QJSValue" }
+ name: "objectRemoved"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "objectAt"
+ type: "QObject*"
+ Parameter { name: "index"; type: "int" }
}
}
}
diff --git a/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp b/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp
index 05d99f05f..0f8f7d11e 100644
--- a/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp
+++ b/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp
@@ -54,6 +54,8 @@
#include <Qt3DQuick/private/qquaternionanimation_p.h>
#include <Qt3DQuick/private/qt3dquick_global_p.h>
+#include <QtQml/qqml.h>
+
QT_BEGIN_NAMESPACE
void Qt3DQuick3DCorePlugin::registerTypes(const char *uri)
@@ -64,6 +66,7 @@ void Qt3DQuick3DCorePlugin::registerTypes(const char *uri)
Qt3DCore::Quick::registerExtendedType<Qt3DCore::QEntity, Qt3DCore::Quick::Quick3DEntity>("QEntity", "Qt3D.Core/Entity", uri, 2, 0, "Entity");
qmlRegisterType<Qt3DCore::Quick::Quick3DEntityLoader>(uri, 2, 0, "EntityLoader");
+ qmlRegisterType<Qt3DCore::Quick::Quick3DEntityLoader, 12>(uri, 2, 12, "EntityLoader");
qmlRegisterType<Qt3DCore::Quick::Quick3DNodeInstantiator>(uri, 2, 0, "NodeInstantiator");
qmlRegisterType<Qt3DCore::QTransform>(uri, 2, 0, "Transform");
qmlRegisterType<Qt3DCore::QArmature>(uri, 2, 10, "Armature");
@@ -79,6 +82,9 @@ void Qt3DQuick3DCorePlugin::registerTypes(const char *uri)
qmlRegisterExtendedUncreatableType<Qt3DCore::QNode, Qt3DCore::Quick::Quick3DNodeV9, 9>(uri, 2, 9, "Node", QStringLiteral("Node is a base class"));
Qt3DCore::Quick::registerExtendedType<Qt3DCore::QJoint, Qt3DCore::Quick::Quick3DJoint>("QJoint", "Qt3D.Core/Joint", uri, 2, 10, "Joint");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
Qt3DQuick3DCorePlugin::~Qt3DQuick3DCorePlugin()
diff --git a/src/quick3d/imports/core/qt3dquick3dcoreplugin.h b/src/quick3d/imports/core/qt3dquick3dcoreplugin.h
index 99c6ab525..afc092bbb 100644
--- a/src/quick3d/imports/core/qt3dquick3dcoreplugin.h
+++ b/src/quick3d/imports/core/qt3dquick3dcoreplugin.h
@@ -42,13 +42,6 @@
#include <QtQml/QQmlExtensionPlugin>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_Qt3D_Core);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class Qt3DQuick3DCorePlugin : public QQmlExtensionPlugin
@@ -56,7 +49,7 @@ class Qt3DQuick3DCorePlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- Qt3DQuick3DCorePlugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { initResources(); }
+ Qt3DQuick3DCorePlugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { }
~Qt3DQuick3DCorePlugin();
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/imports/extras/dependencies.json b/src/quick3d/imports/extras/dependencies.json
new file mode 100644
index 000000000..206c5c613
--- /dev/null
+++ b/src/quick3d/imports/extras/dependencies.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "Qt3D.Render",
+ "type": "module",
+ "version": "2.0"
+ },
+ {
+ "name": "Qt3D.Logic",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/extras/importsextras.pro b/src/quick3d/imports/extras/importsextras.pro
index 22f753ee0..ea5b39a89 100644
--- a/src/quick3d/imports/extras/importsextras.pro
+++ b/src/quick3d/imports/extras/importsextras.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = quick3dextrasplugin
TARGETPATH = Qt3D/Extras
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += core-private qml qml-private quick quick-private 3dcore 3dcore-private 3dquick 3dquick-private 3dextras 3dlogic 3dquickextras 3dquickextras-private
diff --git a/src/quick3d/imports/extras/plugins.qmltypes b/src/quick3d/imports/extras/plugins.qmltypes
index a623f385c..ecfeaed8f 100644
--- a/src/quick3d/imports/extras/plugins.qmltypes
+++ b/src/quick3d/imports/extras/plugins.qmltypes
@@ -4,11 +4,10 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable Qt3D.Extras 2.9'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json Qt3D.Extras 2.12'
Module {
- dependencies: ["Qt3D.Logic 2.0"]
- Component { name: "Qt3DCore::QEntity"; prototype: "Qt3DCore::QNode" }
+ dependencies: ["Qt3D.Logic 2.0", "Qt3D.Render 2.0"]
Component {
name: "Qt3DExtras::Extras::Quick::Quick3DLevelOfDetailLoader"
prototype: "Qt3DCore::QEntity"
@@ -30,6 +29,50 @@ Module {
}
}
Component {
+ name: "Qt3DExtras::QAbstractCameraController"
+ prototype: "Qt3DCore::QEntity"
+ Property { name: "camera"; type: "Qt3DRender::QCamera"; isPointer: true }
+ Property { name: "linearSpeed"; type: "float" }
+ Property { name: "lookSpeed"; type: "float" }
+ Property { name: "acceleration"; type: "float" }
+ Property { name: "deceleration"; type: "float" }
+ Signal {
+ name: "accelerationChanged"
+ Parameter { name: "acceleration"; type: "float" }
+ }
+ Signal {
+ name: "decelerationChanged"
+ Parameter { name: "deceleration"; type: "float" }
+ }
+ }
+ Component {
+ name: "Qt3DExtras::QAbstractSpriteSheet"
+ prototype: "Qt3DCore::QNode"
+ Property { name: "texture"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
+ Property { name: "textureTransform"; type: "QMatrix3x3"; isReadonly: true }
+ Property { name: "currentIndex"; type: "int" }
+ Signal {
+ name: "textureChanged"
+ Parameter { name: "texture"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
+ }
+ Signal {
+ name: "textureTransformChanged"
+ Parameter { name: "textureTransform"; type: "QMatrix3x3" }
+ }
+ Signal {
+ name: "currentIndexChanged"
+ Parameter { name: "currentIndex"; type: "int" }
+ }
+ Method {
+ name: "setTexture"
+ Parameter { name: "texture"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
+ }
+ Method {
+ name: "setCurrentIndex"
+ Parameter { name: "currentIndex"; type: "int" }
+ }
+ }
+ Component {
name: "Qt3DExtras::QConeGeometry"
prototype: "Qt3DRender::QGeometry"
exports: ["Qt3D.Extras/ConeGeometry 2.0"]
@@ -552,6 +595,75 @@ Module {
}
}
Component {
+ name: "Qt3DExtras::QDiffuseSpecularMaterial"
+ prototype: "Qt3DRender::QMaterial"
+ exports: ["Qt3D.Extras/DiffuseSpecularMaterial 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "ambient"; type: "QColor" }
+ Property { name: "diffuse"; type: "QVariant" }
+ Property { name: "specular"; type: "QVariant" }
+ Property { name: "shininess"; type: "float" }
+ Property { name: "normal"; type: "QVariant" }
+ Property { name: "textureScale"; type: "float" }
+ Property { name: "alphaBlending"; type: "bool" }
+ Signal {
+ name: "ambientChanged"
+ Parameter { name: "ambient"; type: "QColor" }
+ }
+ Signal {
+ name: "diffuseChanged"
+ Parameter { name: "diffuse"; type: "QVariant" }
+ }
+ Signal {
+ name: "specularChanged"
+ Parameter { name: "specular"; type: "QVariant" }
+ }
+ Signal {
+ name: "shininessChanged"
+ Parameter { name: "shininess"; type: "float" }
+ }
+ Signal {
+ name: "normalChanged"
+ Parameter { name: "normal"; type: "QVariant" }
+ }
+ Signal {
+ name: "textureScaleChanged"
+ Parameter { name: "textureScale"; type: "float" }
+ }
+ Signal {
+ name: "alphaBlendingEnabledChanged"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Method {
+ name: "setAmbient"
+ Parameter { name: "ambient"; type: "QColor" }
+ }
+ Method {
+ name: "setDiffuse"
+ Parameter { name: "diffuse"; type: "QVariant" }
+ }
+ Method {
+ name: "setSpecular"
+ Parameter { name: "specular"; type: "QVariant" }
+ }
+ Method {
+ name: "setShininess"
+ Parameter { name: "shininess"; type: "float" }
+ }
+ Method {
+ name: "setNormal"
+ Parameter { name: "normal"; type: "QVariant" }
+ }
+ Method {
+ name: "setTextureScale"
+ Parameter { name: "textureScale"; type: "float" }
+ }
+ Method {
+ name: "setAlphaBlendingEnabled"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ }
+ Component {
name: "Qt3DExtras::QExtrudedTextGeometry"
prototype: "Qt3DRender::QGeometry"
exports: ["Qt3D.Extras/ExtrudedTextGeometry 2.9"]
@@ -637,28 +749,18 @@ Module {
}
Component {
name: "Qt3DExtras::QFirstPersonCameraController"
- prototype: "Qt3DCore::QEntity"
+ prototype: "Qt3DExtras::QAbstractCameraController"
exports: ["Qt3D.Extras/FirstPersonCameraController 2.0"]
exportMetaObjectRevisions: [0]
- Property { name: "camera"; type: "Qt3DRender::QCamera"; isPointer: true }
- Property { name: "linearSpeed"; type: "float" }
- Property { name: "lookSpeed"; type: "float" }
- Property { name: "acceleration"; type: "float" }
- Property { name: "deceleration"; type: "float" }
- Signal {
- name: "accelerationChanged"
- Parameter { name: "acceleration"; type: "float" }
- }
- Signal {
- name: "decelerationChanged"
- Parameter { name: "deceleration"; type: "float" }
- }
}
Component {
name: "Qt3DExtras::QForwardRenderer"
prototype: "Qt3DRender::QTechniqueFilter"
- exports: ["Qt3D.Extras/ForwardRenderer 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "Qt3D.Extras/ForwardRenderer 2.0",
+ "Qt3D.Extras/ForwardRenderer 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 9]
Property { name: "surface"; type: "QObject"; isPointer: true }
Property { name: "window"; type: "QObject"; isPointer: true }
Property { name: "viewportRect"; type: "QRectF" }
@@ -796,34 +898,64 @@ Module {
Component {
name: "Qt3DExtras::QMetalRoughMaterial"
prototype: "Qt3DRender::QMaterial"
- exports: ["Qt3D.Extras/MetalRoughMaterial 2.9"]
- exportMetaObjectRevisions: [0]
- Property { name: "baseColor"; type: "QColor" }
- Property { name: "metalness"; type: "float" }
- Property { name: "roughness"; type: "float" }
+ exports: [
+ "Qt3D.Extras/MetalRoughMaterial 2.10",
+ "Qt3D.Extras/MetalRoughMaterial 2.9"
+ ]
+ exportMetaObjectRevisions: [10, 0]
+ Property { name: "baseColor"; type: "QVariant" }
+ Property { name: "metalness"; type: "QVariant" }
+ Property { name: "roughness"; type: "QVariant" }
+ Property { name: "ambientOcclusion"; revision: 10; type: "QVariant" }
+ Property { name: "normal"; revision: 10; type: "QVariant" }
+ Property { name: "textureScale"; revision: 10; type: "float" }
Signal {
name: "baseColorChanged"
- Parameter { name: "baseColor"; type: "QColor" }
+ Parameter { name: "baseColor"; type: "QVariant" }
}
Signal {
name: "metalnessChanged"
- Parameter { name: "metalness"; type: "float" }
+ Parameter { name: "metalness"; type: "QVariant" }
}
Signal {
name: "roughnessChanged"
- Parameter { name: "roughness"; type: "float" }
+ Parameter { name: "roughness"; type: "QVariant" }
+ }
+ Signal {
+ name: "ambientOcclusionChanged"
+ Parameter { name: "ambientOcclusion"; type: "QVariant" }
+ }
+ Signal {
+ name: "normalChanged"
+ Parameter { name: "normal"; type: "QVariant" }
+ }
+ Signal {
+ name: "textureScaleChanged"
+ Parameter { name: "textureScale"; type: "float" }
}
Method {
name: "setBaseColor"
- Parameter { name: "baseColor"; type: "QColor" }
+ Parameter { name: "baseColor"; type: "QVariant" }
}
Method {
name: "setMetalness"
- Parameter { name: "metalness"; type: "float" }
+ Parameter { name: "metalness"; type: "QVariant" }
}
Method {
name: "setRoughness"
- Parameter { name: "roughness"; type: "float" }
+ Parameter { name: "roughness"; type: "QVariant" }
+ }
+ Method {
+ name: "setAmbientOcclusion"
+ Parameter { name: "ambientOcclusion"; type: "QVariant" }
+ }
+ Method {
+ name: "setNormal"
+ Parameter { name: "normal"; type: "QVariant" }
+ }
+ Method {
+ name: "setTextureScale"
+ Parameter { name: "textureScale"; type: "float" }
}
}
Component {
@@ -1005,12 +1137,9 @@ Module {
}
Component {
name: "Qt3DExtras::QOrbitCameraController"
- prototype: "Qt3DCore::QEntity"
+ prototype: "Qt3DExtras::QAbstractCameraController"
exports: ["Qt3D.Extras/OrbitCameraController 2.0"]
exportMetaObjectRevisions: [0]
- Property { name: "camera"; type: "Qt3DRender::QCamera"; isPointer: true }
- Property { name: "linearSpeed"; type: "float" }
- Property { name: "lookSpeed"; type: "float" }
Property { name: "zoomInLimit"; type: "float" }
}
Component {
@@ -1169,11 +1298,15 @@ Module {
Component {
name: "Qt3DExtras::QPlaneGeometry"
prototype: "Qt3DRender::QGeometry"
- exports: ["Qt3D.Extras/PlaneGeometry 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "Qt3D.Extras/PlaneGeometry 2.0",
+ "Qt3D.Extras/PlaneGeometry 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 9]
Property { name: "width"; type: "float" }
Property { name: "height"; type: "float" }
Property { name: "resolution"; type: "QSize" }
+ Property { name: "mirrored"; revision: 9; type: "bool" }
Property {
name: "positionAttribute"
type: "Qt3DRender::QAttribute"
@@ -1216,6 +1349,10 @@ Module {
name: "heightChanged"
Parameter { name: "height"; type: "float" }
}
+ Signal {
+ name: "mirroredChanged"
+ Parameter { name: "mirrored"; type: "bool" }
+ }
Method {
name: "setResolution"
Parameter { name: "resolution"; type: "QSize" }
@@ -1228,15 +1365,20 @@ Module {
name: "setHeight"
Parameter { name: "height"; type: "float" }
}
+ Method {
+ name: "setMirrored"
+ Parameter { name: "mirrored"; type: "bool" }
+ }
}
Component {
name: "Qt3DExtras::QPlaneMesh"
prototype: "Qt3DRender::QGeometryRenderer"
- exports: ["Qt3D.Extras/PlaneMesh 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: ["Qt3D.Extras/PlaneMesh 2.0", "Qt3D.Extras/PlaneMesh 2.9"]
+ exportMetaObjectRevisions: [0, 9]
Property { name: "width"; type: "float" }
Property { name: "height"; type: "float" }
Property { name: "meshResolution"; type: "QSize" }
+ Property { name: "mirrored"; revision: 9; type: "bool" }
Signal {
name: "meshResolutionChanged"
Parameter { name: "meshResolution"; type: "QSize" }
@@ -1249,6 +1391,10 @@ Module {
name: "heightChanged"
Parameter { name: "height"; type: "float" }
}
+ Signal {
+ name: "mirroredChanged"
+ Parameter { name: "mirrored"; type: "bool" }
+ }
Method {
name: "setWidth"
Parameter { name: "width"; type: "float" }
@@ -1261,12 +1407,19 @@ Module {
name: "setMeshResolution"
Parameter { name: "resolution"; type: "QSize" }
}
+ Method {
+ name: "setMirrored"
+ Parameter { name: "mirrored"; type: "bool" }
+ }
}
Component {
name: "Qt3DExtras::QSkyboxEntity"
prototype: "Qt3DCore::QEntity"
- exports: ["Qt3D.Extras/SkyboxEntity 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "Qt3D.Extras/SkyboxEntity 2.0",
+ "Qt3D.Extras/SkyboxEntity 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 9]
Property { name: "baseName"; type: "string" }
Property { name: "extension"; type: "string" }
Property { name: "gammaCorrect"; revision: 9; type: "bool" }
@@ -1410,6 +1563,95 @@ Module {
}
}
Component {
+ name: "Qt3DExtras::QSpriteGrid"
+ prototype: "Qt3DExtras::QAbstractSpriteSheet"
+ exports: ["Qt3D.Extras/SpriteGrid 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "rows"; type: "int" }
+ Property { name: "columns"; type: "int" }
+ Signal {
+ name: "rowsChanged"
+ Parameter { name: "rows"; type: "int" }
+ }
+ Signal {
+ name: "columnsChanged"
+ Parameter { name: "columns"; type: "int" }
+ }
+ Method {
+ name: "setRows"
+ Parameter { name: "rows"; type: "int" }
+ }
+ Method {
+ name: "setColumns"
+ Parameter { name: "columns"; type: "int" }
+ }
+ }
+ Component {
+ name: "Qt3DExtras::QSpriteSheet"
+ defaultProperty: "sprites"
+ prototype: "Qt3DExtras::QAbstractSpriteSheet"
+ exports: ["Qt3D.Extras/SpriteSheet 2.10"]
+ exportMetaObjectRevisions: [210]
+ Property { name: "sprites"; type: "QVector<QSpriteSheetItem*>" }
+ Signal {
+ name: "spritesChanged"
+ Parameter { name: "sprites"; type: "QVector<QSpriteSheetItem*>" }
+ }
+ Method {
+ name: "setSprites"
+ Parameter { name: "sprites"; type: "QVector<QSpriteSheetItem*>" }
+ }
+ Property {
+ name: "sprites"
+ revision: 210
+ type: "Qt3DExtras::QSpriteSheetItem"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DExtras::QSpriteSheetItem"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Extras/SpriteItem 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "x"; type: "int" }
+ Property { name: "y"; type: "int" }
+ Property { name: "width"; type: "int" }
+ Property { name: "height"; type: "int" }
+ Signal {
+ name: "xChanged"
+ Parameter { name: "x"; type: "int" }
+ }
+ Signal {
+ name: "yChanged"
+ Parameter { name: "y"; type: "int" }
+ }
+ Signal {
+ name: "widthChanged"
+ Parameter { name: "width"; type: "int" }
+ }
+ Signal {
+ name: "heightChanged"
+ Parameter { name: "height"; type: "int" }
+ }
+ Method {
+ name: "setX"
+ Parameter { name: "x"; type: "int" }
+ }
+ Method {
+ name: "setY"
+ Parameter { name: "y"; type: "int" }
+ }
+ Method {
+ name: "setWidth"
+ Parameter { name: "width"; type: "int" }
+ }
+ Method {
+ name: "setHeight"
+ Parameter { name: "height"; type: "int" }
+ }
+ }
+ Component {
name: "Qt3DExtras::QText2DEntity"
prototype: "Qt3DCore::QEntity"
exports: ["Qt3D.Extras/Text2DEntity 2.9"]
@@ -1443,10 +1685,16 @@ Module {
Component {
name: "Qt3DExtras::QTextureMaterial"
prototype: "Qt3DRender::QMaterial"
- exports: ["Qt3D.Extras/TextureMaterial 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "Qt3D.Extras/TextureMaterial 2.0",
+ "Qt3D.Extras/TextureMaterial 2.10",
+ "Qt3D.Extras/TextureMaterial 2.11"
+ ]
+ exportMetaObjectRevisions: [0, 10, 11]
Property { name: "texture"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
Property { name: "textureOffset"; type: "QVector2D" }
+ Property { name: "textureTransform"; revision: 10; type: "QMatrix3x3" }
+ Property { name: "alphaBlending"; revision: 11; type: "bool" }
Signal {
name: "textureChanged"
Parameter { name: "texture"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
@@ -1455,6 +1703,14 @@ Module {
name: "textureOffsetChanged"
Parameter { name: "textureOffset"; type: "QVector2D" }
}
+ Signal {
+ name: "textureTransformChanged"
+ Parameter { name: "textureTransform"; type: "QMatrix3x3" }
+ }
+ Signal {
+ name: "alphaBlendingEnabledChanged"
+ Parameter { name: "enabled"; type: "bool" }
+ }
Method {
name: "setTexture"
Parameter { name: "texture"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
@@ -1463,56 +1719,29 @@ Module {
name: "setTextureOffset"
Parameter { name: "textureOffset"; type: "QVector2D" }
}
+ Method {
+ name: "setTextureTransform"
+ Parameter { name: "matrix"; type: "QMatrix3x3" }
+ }
+ Method {
+ name: "setAlphaBlendingEnabled"
+ Parameter { name: "enabled"; type: "bool" }
+ }
}
Component {
name: "Qt3DExtras::QTexturedMetalRoughMaterial"
- prototype: "Qt3DRender::QMaterial"
+ prototype: "Qt3DExtras::QMetalRoughMaterial"
exports: ["Qt3D.Extras/TexturedMetalRoughMaterial 2.9"]
exportMetaObjectRevisions: [0]
- Property { name: "baseColor"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- Property { name: "metalness"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- Property { name: "roughness"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- Property { name: "ambientOcclusion"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- Property { name: "normal"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- Signal {
- name: "baseColorChanged"
- Parameter { name: "baseColor"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Signal {
- name: "metalnessChanged"
- Parameter { name: "metalness"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Signal {
- name: "roughnessChanged"
- Parameter { name: "roughness"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
+ Property { name: "ambientOcclusion"; type: "QVariant" }
+ Property { name: "normal"; type: "QVariant" }
Signal {
name: "ambientOcclusionChanged"
- Parameter { name: "ambientOcclusion"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
+ Parameter { name: "ambientOcclusion"; type: "QVariant" }
}
Signal {
name: "normalChanged"
- Parameter { name: "normal"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Method {
- name: "setBaseColor"
- Parameter { name: "baseColor"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Method {
- name: "setMetalness"
- Parameter { name: "metalness"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Method {
- name: "setRoughness"
- Parameter { name: "roughness"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Method {
- name: "setAmbientOcclusion"
- Parameter { name: "ambientOcclusion"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
- }
- Method {
- name: "setNormal"
- Parameter { name: "normal"; type: "Qt3DRender::QAbstractTexture"; isPointer: true }
+ Parameter { name: "normal"; type: "QVariant" }
}
}
Component {
@@ -1623,155 +1852,4 @@ Module {
Parameter { name: "minorRadius"; type: "float" }
}
}
- Component { name: "Qt3DRender::QFrameGraphNode"; prototype: "Qt3DCore::QNode" }
- Component {
- name: "Qt3DRender::QGeometry"
- prototype: "Qt3DCore::QNode"
- Property {
- name: "boundingVolumePositionAttribute"
- type: "Qt3DRender::QAttribute"
- isPointer: true
- }
- Signal {
- name: "boundingVolumePositionAttributeChanged"
- Parameter { name: "boundingVolumePositionAttribute"; type: "QAttribute"; isPointer: true }
- }
- Method {
- name: "setBoundingVolumePositionAttribute"
- Parameter { name: "boundingVolumePositionAttribute"; type: "QAttribute"; isPointer: true }
- }
- Method {
- name: "addAttribute"
- Parameter { name: "attribute"; type: "Qt3DRender::QAttribute"; isPointer: true }
- }
- Method {
- name: "removeAttribute"
- Parameter { name: "attribute"; type: "Qt3DRender::QAttribute"; isPointer: true }
- }
- }
- Component {
- name: "Qt3DRender::QGeometryRenderer"
- prototype: "Qt3DCore::QComponent"
- Enum {
- name: "PrimitiveType"
- values: {
- "Points": 0,
- "Lines": 1,
- "LineLoop": 2,
- "LineStrip": 3,
- "Triangles": 4,
- "TriangleStrip": 5,
- "TriangleFan": 6,
- "LinesAdjacency": 10,
- "TrianglesAdjacency": 12,
- "LineStripAdjacency": 11,
- "TriangleStripAdjacency": 13,
- "Patches": 14
- }
- }
- Property { name: "instanceCount"; type: "int" }
- Property { name: "vertexCount"; type: "int" }
- Property { name: "indexOffset"; type: "int" }
- Property { name: "firstInstance"; type: "int" }
- Property { name: "firstVertex"; type: "int" }
- Property { name: "restartIndexValue"; type: "int" }
- Property { name: "verticesPerPatch"; type: "int" }
- Property { name: "primitiveRestartEnabled"; type: "bool" }
- Property { name: "geometry"; type: "Qt3DRender::QGeometry"; isPointer: true }
- Property { name: "primitiveType"; type: "PrimitiveType" }
- Signal {
- name: "instanceCountChanged"
- Parameter { name: "instanceCount"; type: "int" }
- }
- Signal {
- name: "vertexCountChanged"
- Parameter { name: "vertexCount"; type: "int" }
- }
- Signal {
- name: "indexOffsetChanged"
- Parameter { name: "indexOffset"; type: "int" }
- }
- Signal {
- name: "firstInstanceChanged"
- Parameter { name: "firstInstance"; type: "int" }
- }
- Signal {
- name: "firstVertexChanged"
- Parameter { name: "firstVertex"; type: "int" }
- }
- Signal {
- name: "restartIndexValueChanged"
- Parameter { name: "restartIndexValue"; type: "int" }
- }
- Signal {
- name: "verticesPerPatchChanged"
- Parameter { name: "verticesPerPatch"; type: "int" }
- }
- Signal {
- name: "primitiveRestartEnabledChanged"
- Parameter { name: "primitiveRestartEnabled"; type: "bool" }
- }
- Signal {
- name: "geometryChanged"
- Parameter { name: "geometry"; type: "QGeometry"; isPointer: true }
- }
- Signal {
- name: "primitiveTypeChanged"
- Parameter { name: "primitiveType"; type: "PrimitiveType" }
- }
- Method {
- name: "setInstanceCount"
- Parameter { name: "instanceCount"; type: "int" }
- }
- Method {
- name: "setVertexCount"
- Parameter { name: "vertexCount"; type: "int" }
- }
- Method {
- name: "setIndexOffset"
- Parameter { name: "indexOffset"; type: "int" }
- }
- Method {
- name: "setFirstInstance"
- Parameter { name: "firstInstance"; type: "int" }
- }
- Method {
- name: "setFirstVertex"
- Parameter { name: "firstVertex"; type: "int" }
- }
- Method {
- name: "setRestartIndexValue"
- Parameter { name: "index"; type: "int" }
- }
- Method {
- name: "setVerticesPerPatch"
- Parameter { name: "verticesPerPatch"; type: "int" }
- }
- Method {
- name: "setPrimitiveRestartEnabled"
- Parameter { name: "enabled"; type: "bool" }
- }
- Method {
- name: "setGeometry"
- Parameter { name: "geometry"; type: "QGeometry"; isPointer: true }
- }
- Method {
- name: "setPrimitiveType"
- Parameter { name: "primitiveType"; type: "PrimitiveType" }
- }
- }
- Component {
- name: "Qt3DRender::QMaterial"
- prototype: "Qt3DCore::QComponent"
- Property { name: "effect"; type: "Qt3DRender::QEffect"; isPointer: true }
- Signal {
- name: "effectChanged"
- Parameter { name: "effect"; type: "QEffect"; isPointer: true }
- }
- Method {
- name: "setEffect"
- Parameter { name: "effect"; type: "QEffect"; isPointer: true }
- }
- }
- Component { name: "Qt3DRender::QTechniqueFilter"; prototype: "Qt3DRender::QFrameGraphNode" }
}
diff --git a/src/quick3d/imports/extras/qt3dquick3dextrasplugin.cpp b/src/quick3d/imports/extras/qt3dquick3dextrasplugin.cpp
index ce8f450f7..65b8863a1 100644
--- a/src/quick3d/imports/extras/qt3dquick3dextrasplugin.cpp
+++ b/src/quick3d/imports/extras/qt3dquick3dextrasplugin.cpp
@@ -141,6 +141,9 @@ void Qt3DQuick3DExtrasPlugin::registerTypes(const char *uri)
qmlRegisterType<Qt3DExtras::QExtrudedTextMesh>(uri, 2, 9, "ExtrudedTextMesh");
qmlRegisterType<Qt3DExtras::QText2DEntity>(uri, 2, 9, "Text2DEntity");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
diff --git a/src/quick3d/imports/extras/qt3dquick3dextrasplugin.h b/src/quick3d/imports/extras/qt3dquick3dextrasplugin.h
index b7c1f5f87..95b5a8717 100644
--- a/src/quick3d/imports/extras/qt3dquick3dextrasplugin.h
+++ b/src/quick3d/imports/extras/qt3dquick3dextrasplugin.h
@@ -45,8 +45,7 @@
static void initResources()
{
#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_Qt3D_Extras);
- Q_INIT_RESOURCE(extras);
+ Q_INIT_RESOURCE(extras); // from the Qt3DQuickExtras module
#endif
}
diff --git a/src/quick3d/imports/input/dependencies.json b/src/quick3d/imports/input/dependencies.json
new file mode 100644
index 000000000..71a3f7381
--- /dev/null
+++ b/src/quick3d/imports/input/dependencies.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "Qt3D.Core",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/input/importsinput.pro b/src/quick3d/imports/input/importsinput.pro
index 83a7797f9..2b0dd0354 100644
--- a/src/quick3d/imports/input/importsinput.pro
+++ b/src/quick3d/imports/input/importsinput.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = quick3dinputplugin
TARGETPATH = Qt3D/Input
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += core-private qml 3dcore 3dinput 3dinput-private 3dquickinput-private
diff --git a/src/quick3d/imports/input/plugins.qmltypes b/src/quick3d/imports/input/plugins.qmltypes
index 24655977e..a4662fc5e 100644
--- a/src/quick3d/imports/input/plugins.qmltypes
+++ b/src/quick3d/imports/input/plugins.qmltypes
@@ -4,132 +4,10 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable Qt3D.Input 2.1'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json Qt3D.Input 2.12'
Module {
- dependencies: ["QtQuick 2.8"]
- Component {
- name: "Qt3DCore::QComponent"
- prototype: "Qt3DCore::QNode"
- Property { name: "isShareable"; type: "bool" }
- Signal {
- name: "shareableChanged"
- Parameter { name: "isShareable"; type: "bool" }
- }
- Signal {
- name: "addedToEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
- Signal {
- name: "removedFromEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
- Method {
- name: "setShareable"
- Parameter { name: "isShareable"; type: "bool" }
- }
- }
- Component {
- name: "Qt3DCore::QNode"
- prototype: "QObject"
- Enum {
- name: "PropertyTrackingMode"
- values: {
- "TrackFinalValues": 0,
- "DontTrackValues": 1,
- "TrackAllValues": 2
- }
- }
- Property { name: "parent"; type: "Qt3DCore::QNode"; isPointer: true }
- Property { name: "enabled"; type: "bool" }
- Property { name: "defaultPropertyTrackingMode"; revision: 9; type: "PropertyTrackingMode" }
- Signal {
- name: "parentChanged"
- Parameter { name: "parent"; type: "QObject"; isPointer: true }
- }
- Signal {
- name: "enabledChanged"
- Parameter { name: "enabled"; type: "bool" }
- }
- Signal {
- name: "defaultPropertyTrackingModeChanged"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- Signal { name: "nodeDestroyed" }
- Method {
- name: "setParent"
- Parameter { name: "parent"; type: "QNode"; isPointer: true }
- }
- Method {
- name: "setEnabled"
- Parameter { name: "isEnabled"; type: "bool" }
- }
- Method {
- name: "setDefaultPropertyTrackingMode"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- }
- Component {
- name: "Qt3DInput::Input::Quick::Quick3DAction"
- defaultProperty: "inputs"
- prototype: "Qt3DInput::QAction"
- exports: ["Qt3D.Input/Action 2.0"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "inputs"
- type: "Qt3DInput::QAbstractActionInput"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DInput::Input::Quick::Quick3DAxis"
- defaultProperty: "inputs"
- prototype: "Qt3DInput::QAxis"
- exports: ["Qt3D.Input/Axis 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "inputs"; type: "Qt3DInput::QAbstractAxisInput"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DInput::Input::Quick::Quick3DInputChord"
- prototype: "Qt3DInput::QInputChord"
- exports: ["Qt3D.Input/InputChord 2.0"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "chords"
- type: "Qt3DInput::QAbstractActionInput"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DInput::Input::Quick::Quick3DInputSequence"
- prototype: "Qt3DInput::QInputSequence"
- exports: ["Qt3D.Input/InputSequence 2.0"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "sequences"
- type: "Qt3DInput::QAbstractActionInput"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DInput::Input::Quick::Quick3DLogicalDevice"
- prototype: "Qt3DInput::QLogicalDevice"
- exports: ["Qt3D.Input/LogicalDevice 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "axes"; type: "Qt3DInput::QAxis"; isList: true; isReadonly: true }
- Property { name: "actions"; type: "Qt3DInput::QAction"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DInput::Input::Quick::Quick3DPhysicalDevice"
- prototype: "Qt3DInput::QAbstractPhysicalDevice"
- exports: ["Qt3D.Input/QAbstractPhysicalDevice 2.0"]
- isCreatable: false
- exportMetaObjectRevisions: [0]
- Property { name: "axisSettings"; type: "Qt3DInput::QAxisSetting"; isList: true; isReadonly: true }
- }
+ dependencies: ["Qt3D.Core 2.0"]
Component {
name: "Qt3DInput::QAbstractActionInput"
prototype: "Qt3DCore::QNode"
@@ -153,15 +31,39 @@ Module {
Parameter { name: "sourceDevice"; type: "QAbstractPhysicalDevice"; isPointer: true }
}
}
- Component { name: "Qt3DInput::QAbstractPhysicalDevice"; prototype: "Qt3DCore::QNode" }
+ Component {
+ name: "Qt3DInput::QAbstractPhysicalDevice"
+ defaultProperty: "data"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Input/QAbstractPhysicalDevice 2.0"]
+ isCreatable: false
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "axisSettings"
+ revision: 200
+ type: "Qt3DInput::QAxisSetting"
+ isList: true
+ isReadonly: true
+ }
+ }
Component {
name: "Qt3DInput::QAction"
+ defaultProperty: "inputs"
prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Input/Action 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "active"; type: "bool"; isReadonly: true }
Signal {
name: "activeChanged"
Parameter { name: "isActive"; type: "bool" }
}
+ Property {
+ name: "inputs"
+ revision: 200
+ type: "Qt3DInput::QAbstractActionInput"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DInput::QActionInput"
@@ -204,12 +106,22 @@ Module {
}
Component {
name: "Qt3DInput::QAxis"
+ defaultProperty: "inputs"
prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Input/Axis 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "value"; type: "float"; isReadonly: true }
Signal {
name: "valueChanged"
Parameter { name: "value"; type: "float" }
}
+ Property {
+ name: "inputs"
+ revision: 200
+ type: "Qt3DInput::QAbstractAxisInput"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DInput::QAxisAccumulator"
@@ -338,12 +250,17 @@ Module {
}
Component {
name: "Qt3DInput::QGamepadInput"
- prototype: "Qt3DInput::QGamepadInput"
- Property { name: "axisSettings"; type: "Qt3DInput::QAxisSetting"; isList: true; isReadonly: true }
+ prototype: "Qt3DInput::QAbstractPhysicalDevice"
+ exports: ["Qt3D.Input/GamepadInput 2.0"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "deviceId"; type: "int" }
}
Component {
name: "Qt3DInput::QInputChord"
+ defaultProperty: "data"
prototype: "Qt3DInput::QAbstractActionInput"
+ exports: ["Qt3D.Input/InputChord 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "timeout"; type: "int" }
Signal {
name: "timeoutChanged"
@@ -353,10 +270,20 @@ Module {
name: "setTimeout"
Parameter { name: "timeout"; type: "int" }
}
+ Property {
+ name: "chords"
+ revision: 200
+ type: "Qt3DInput::QAbstractActionInput"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DInput::QInputSequence"
+ defaultProperty: "data"
prototype: "Qt3DInput::QAbstractActionInput"
+ exports: ["Qt3D.Input/InputSequence 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "timeout"; type: "int" }
Property { name: "buttonInterval"; type: "int" }
Signal {
@@ -375,6 +302,13 @@ Module {
name: "setButtonInterval"
Parameter { name: "buttonInterval"; type: "int" }
}
+ Property {
+ name: "sequences"
+ revision: 200
+ type: "Qt3DInput::QAbstractActionInput"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DInput::QInputSettings"
@@ -413,6 +347,8 @@ Module {
Component {
name: "Qt3DInput::QKeyboardDevice"
prototype: "Qt3DInput::QAbstractPhysicalDevice"
+ exports: ["Qt3D.Input/KeyboardDevice 2.0"]
+ exportMetaObjectRevisions: [0]
Property {
name: "activeInput"
type: "Qt3DInput::QKeyboardHandler"
@@ -608,10 +544,26 @@ Module {
Parameter { name: "focus"; type: "bool" }
}
}
- Component { name: "Qt3DInput::QLogicalDevice"; prototype: "Qt3DCore::QComponent" }
+ Component {
+ name: "Qt3DInput::QLogicalDevice"
+ defaultProperty: "data"
+ prototype: "Qt3DCore::QComponent"
+ exports: ["Qt3D.Input/LogicalDevice 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property { name: "axes"; revision: 200; type: "Qt3DInput::QAxis"; isList: true; isReadonly: true }
+ Property {
+ name: "actions"
+ revision: 200
+ type: "Qt3DInput::QAction"
+ isList: true
+ isReadonly: true
+ }
+ }
Component {
name: "Qt3DInput::QMouseDevice"
prototype: "Qt3DInput::QAbstractPhysicalDevice"
+ exports: ["Qt3D.Input/MouseDevice 2.0"]
+ exportMetaObjectRevisions: [0]
Enum {
name: "Axis"
values: {
diff --git a/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp b/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp
index 5719a2b98..ba2e0661c 100644
--- a/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp
+++ b/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp
@@ -104,6 +104,9 @@ void Qt3DQuick3DInputPlugin::registerTypes(const char *uri)
#ifdef HAVE_QGAMEPAD
qmlRegisterType<Qt3DInput::QGamepadInput>(uri, 2, 0, "GamepadInput");
#endif
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
QT_END_NAMESPACE
diff --git a/src/quick3d/imports/input/qt3dquick3dinputplugin.h b/src/quick3d/imports/input/qt3dquick3dinputplugin.h
index e02710696..b2399af30 100644
--- a/src/quick3d/imports/input/qt3dquick3dinputplugin.h
+++ b/src/quick3d/imports/input/qt3dquick3dinputplugin.h
@@ -42,13 +42,6 @@
#include <QtQml/QQmlExtensionPlugin>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_Qt3D_Input);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class Qt3DQuick3DInputPlugin : public QQmlExtensionPlugin
@@ -56,7 +49,7 @@ class Qt3DQuick3DInputPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- Qt3DQuick3DInputPlugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { initResources(); }
+ Qt3DQuick3DInputPlugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/imports/logic/dependencies.json b/src/quick3d/imports/logic/dependencies.json
new file mode 100644
index 000000000..71a3f7381
--- /dev/null
+++ b/src/quick3d/imports/logic/dependencies.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "Qt3D.Core",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/logic/importslogic.pro b/src/quick3d/imports/logic/importslogic.pro
index c2b33f665..955a4fd61 100644
--- a/src/quick3d/imports/logic/importslogic.pro
+++ b/src/quick3d/imports/logic/importslogic.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = quick3dlogicplugin
TARGETPATH = Qt3D/Logic
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += core-private qml 3dcore 3dlogic
diff --git a/src/quick3d/imports/logic/plugins.qmltypes b/src/quick3d/imports/logic/plugins.qmltypes
index 61b67ca73..20071117d 100644
--- a/src/quick3d/imports/logic/plugins.qmltypes
+++ b/src/quick3d/imports/logic/plugins.qmltypes
@@ -4,71 +4,10 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable Qt3D.Logic 2.0'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json Qt3D.Logic 2.12'
Module {
- dependencies: ["QtQuick 2.8"]
- Component {
- name: "Qt3DCore::QComponent"
- prototype: "Qt3DCore::QNode"
- Property { name: "isShareable"; type: "bool" }
- Signal {
- name: "shareableChanged"
- Parameter { name: "isShareable"; type: "bool" }
- }
- Signal {
- name: "addedToEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
- Signal {
- name: "removedFromEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
- Method {
- name: "setShareable"
- Parameter { name: "isShareable"; type: "bool" }
- }
- }
- Component {
- name: "Qt3DCore::QNode"
- prototype: "QObject"
- Enum {
- name: "PropertyTrackingMode"
- values: {
- "TrackFinalValues": 0,
- "DontTrackValues": 1,
- "TrackAllValues": 2
- }
- }
- Property { name: "parent"; type: "Qt3DCore::QNode"; isPointer: true }
- Property { name: "enabled"; type: "bool" }
- Property { name: "defaultPropertyTrackingMode"; revision: 9; type: "PropertyTrackingMode" }
- Signal {
- name: "parentChanged"
- Parameter { name: "parent"; type: "QObject"; isPointer: true }
- }
- Signal {
- name: "enabledChanged"
- Parameter { name: "enabled"; type: "bool" }
- }
- Signal {
- name: "defaultPropertyTrackingModeChanged"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- Signal { name: "nodeDestroyed" }
- Method {
- name: "setParent"
- Parameter { name: "parent"; type: "QNode"; isPointer: true }
- }
- Method {
- name: "setEnabled"
- Parameter { name: "isEnabled"; type: "bool" }
- }
- Method {
- name: "setDefaultPropertyTrackingMode"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- }
+ dependencies: ["Qt3D.Core 2.0"]
Component {
name: "Qt3DLogic::QFrameAction"
prototype: "Qt3DCore::QComponent"
diff --git a/src/quick3d/imports/logic/qt3dquick3dlogicplugin.cpp b/src/quick3d/imports/logic/qt3dquick3dlogicplugin.cpp
index f97bc8fc6..0fbe64002 100644
--- a/src/quick3d/imports/logic/qt3dquick3dlogicplugin.cpp
+++ b/src/quick3d/imports/logic/qt3dquick3dlogicplugin.cpp
@@ -47,6 +47,9 @@ QT_BEGIN_NAMESPACE
void Qt3DQuick3DLogicPlugin::registerTypes(const char *uri)
{
qmlRegisterType<Qt3DLogic::QFrameAction>(uri, 2, 0, "FrameAction");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
QT_END_NAMESPACE
diff --git a/src/quick3d/imports/logic/qt3dquick3dlogicplugin.h b/src/quick3d/imports/logic/qt3dquick3dlogicplugin.h
index 8f4a2fe39..d59d7d09d 100644
--- a/src/quick3d/imports/logic/qt3dquick3dlogicplugin.h
+++ b/src/quick3d/imports/logic/qt3dquick3dlogicplugin.h
@@ -42,13 +42,6 @@
#include <QtQml/QQmlExtensionPlugin>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_Qt3D_Logic);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class Qt3DQuick3DLogicPlugin : public QQmlExtensionPlugin
@@ -56,7 +49,7 @@ class Qt3DQuick3DLogicPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- Qt3DQuick3DLogicPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ Qt3DQuick3DLogicPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/imports/render/dependencies.json b/src/quick3d/imports/render/dependencies.json
new file mode 100644
index 000000000..71a3f7381
--- /dev/null
+++ b/src/quick3d/imports/render/dependencies.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "Qt3D.Core",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/render/importsrender.pro b/src/quick3d/imports/render/importsrender.pro
index cc34ff3df..a8d68c8ee 100644
--- a/src/quick3d/imports/render/importsrender.pro
+++ b/src/quick3d/imports/render/importsrender.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = quick3drenderplugin
TARGETPATH = Qt3D/Render
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += core-private qml qml-private 3dcore 3drender 3drender-private 3dquick 3dquick-private 3dquickrender-private
diff --git a/src/quick3d/imports/render/plugins.qmltypes b/src/quick3d/imports/render/plugins.qmltypes
index e34b18f2e..a801f99e0 100644
--- a/src/quick3d/imports/render/plugins.qmltypes
+++ b/src/quick3d/imports/render/plugins.qmltypes
@@ -4,10 +4,10 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable Qt3D.Render 2.9'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json Qt3D.Render 2.12'
Module {
- dependencies: ["QtQuick 2.8"]
+ dependencies: ["Qt3D.Core 2.0"]
Component {
name: "QWindow"
prototype: "QObject"
@@ -155,6 +155,17 @@ Module {
Parameter { name: "arg"; type: "int" }
}
Method {
+ name: "setGeometry"
+ Parameter { name: "posx"; type: "int" }
+ Parameter { name: "posy"; type: "int" }
+ Parameter { name: "w"; type: "int" }
+ Parameter { name: "h"; type: "int" }
+ }
+ Method {
+ name: "setGeometry"
+ Parameter { name: "rect"; type: "QRect" }
+ }
+ Method {
name: "setMinimumWidth"
Parameter { name: "w"; type: "int" }
}
@@ -178,77 +189,6 @@ Module {
Method { name: "requestUpdate"; revision: 3 }
}
Component {
- name: "Qt3DCore::QComponent"
- prototype: "Qt3DCore::QNode"
- Property { name: "isShareable"; type: "bool" }
- Signal {
- name: "shareableChanged"
- Parameter { name: "isShareable"; type: "bool" }
- }
- Signal {
- name: "addedToEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
- Signal {
- name: "removedFromEntity"
- Parameter { name: "entity"; type: "QEntity"; isPointer: true }
- }
- Method {
- name: "setShareable"
- Parameter { name: "isShareable"; type: "bool" }
- }
- }
- Component { name: "Qt3DCore::QEntity"; prototype: "Qt3DCore::QNode" }
- Component {
- name: "Qt3DCore::QNode"
- prototype: "QObject"
- Enum {
- name: "PropertyTrackingMode"
- values: {
- "TrackFinalValues": 0,
- "DontTrackValues": 1,
- "TrackAllValues": 2
- }
- }
- Property { name: "parent"; type: "Qt3DCore::QNode"; isPointer: true }
- Property { name: "enabled"; type: "bool" }
- Property { name: "defaultPropertyTrackingMode"; revision: 9; type: "PropertyTrackingMode" }
- Signal {
- name: "parentChanged"
- Parameter { name: "parent"; type: "QObject"; isPointer: true }
- }
- Signal {
- name: "enabledChanged"
- Parameter { name: "enabled"; type: "bool" }
- }
- Signal {
- name: "defaultPropertyTrackingModeChanged"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- Signal { name: "nodeDestroyed" }
- Method {
- name: "setParent"
- Parameter { name: "parent"; type: "QNode"; isPointer: true }
- }
- Method {
- name: "setEnabled"
- Parameter { name: "isEnabled"; type: "bool" }
- }
- Method {
- name: "setDefaultPropertyTrackingMode"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- }
- Component {
- name: "Qt3DCore::Quick::Quick3DNode"
- defaultProperty: "data"
- prototype: "Qt3DRender::QCameraSelector"
- exports: ["Qt3D.Render/CameraSelector 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
- Property { name: "childNodes"; type: "Qt3DCore::QNode"; isList: true; isReadonly: true }
- }
- Component {
name: "Qt3DRender::QAbstractLight"
prototype: "Qt3DCore::QComponent"
exports: ["Qt3D.Render/Light 2.0"]
@@ -283,6 +223,49 @@ Module {
}
}
Component {
+ name: "Qt3DRender::QAbstractRayCaster"
+ prototype: "Qt3DCore::QComponent"
+ Enum {
+ name: "RunMode"
+ values: {
+ "Continuous": 0,
+ "SingleShot": 1
+ }
+ }
+ Enum {
+ name: "FilterMode"
+ values: {
+ "AcceptAnyMatchingLayers": 0,
+ "AcceptAllMatchingLayers": 1,
+ "DiscardAnyMatchingLayers": 2,
+ "DiscardAllMatchingLayers": 3
+ }
+ }
+ Property { name: "runMode"; type: "RunMode" }
+ Property { name: "filterMode"; type: "FilterMode" }
+ Property { name: "hits"; type: "Hits"; isReadonly: true }
+ Signal {
+ name: "runModeChanged"
+ Parameter { name: "runMode"; type: "Qt3DRender::QAbstractRayCaster::RunMode" }
+ }
+ Signal {
+ name: "hitsChanged"
+ Parameter { name: "hits"; type: "Qt3DRender::QAbstractRayCaster::Hits" }
+ }
+ Signal {
+ name: "filterModeChanged"
+ Parameter { name: "filterMode"; type: "Qt3DRender::QAbstractRayCaster::FilterMode" }
+ }
+ Method {
+ name: "setRunMode"
+ Parameter { name: "runMode"; type: "RunMode" }
+ }
+ Method {
+ name: "setFilterMode"
+ Parameter { name: "filterMode"; type: "FilterMode" }
+ }
+ }
+ Component {
name: "Qt3DRender::QAbstractTexture"
prototype: "Qt3DCore::QNode"
exports: ["Qt3D.Render/Texture 2.0"]
@@ -698,7 +681,31 @@ Module {
Property { name: "defaultNormalAttributeName"; type: "string"; isReadonly: true }
Property { name: "defaultColorAttributeName"; type: "string"; isReadonly: true }
Property { name: "defaultTextureCoordinateAttributeName"; type: "string"; isReadonly: true }
+ Property {
+ name: "defaultTextureCoordinate1AttributeName"
+ revision: 11
+ type: "string"
+ isReadonly: true
+ }
+ Property {
+ name: "defaultTextureCoordinate2AttributeName"
+ revision: 11
+ type: "string"
+ isReadonly: true
+ }
Property { name: "defaultTangentAttributeName"; type: "string"; isReadonly: true }
+ Property {
+ name: "defaultJointIndicesAttributeName"
+ revision: 10
+ type: "string"
+ isReadonly: true
+ }
+ Property {
+ name: "defaultJointWeightsAttributeName"
+ revision: 10
+ type: "string"
+ isReadonly: true
+ }
Signal {
name: "bufferChanged"
Parameter { name: "buffer"; type: "QBuffer"; isPointer: true }
@@ -911,6 +918,32 @@ Module {
}
}
Component {
+ name: "Qt3DRender::QBlitFramebuffer"
+ prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/BlitFramebuffer 2.10"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "InterpolationMethod"
+ values: {
+ "Nearest": 0,
+ "Linear": 1
+ }
+ }
+ Property { name: "source"; type: "Qt3DRender::QRenderTarget"; isPointer: true }
+ Property { name: "destination"; type: "Qt3DRender::QRenderTarget"; isPointer: true }
+ Property { name: "sourceRect"; type: "QRectF" }
+ Property { name: "destinationRect"; type: "QRectF" }
+ Property {
+ name: "sourceAttachmentPoint"
+ type: "Qt3DRender::QRenderTargetOutput::AttachmentPoint"
+ }
+ Property {
+ name: "destinationAttachmentPoint"
+ type: "Qt3DRender::QRenderTargetOutput::AttachmentPoint"
+ }
+ Property { name: "interpolationMethod"; type: "InterpolationMethod" }
+ }
+ Component {
name: "Qt3DRender::QBuffer"
prototype: "Qt3DCore::QNode"
exports: ["Qt3D.Render/BufferBase 2.0", "Qt3D.Render/BufferBase 2.9"]
@@ -1006,8 +1039,8 @@ Module {
Component {
name: "Qt3DRender::QCamera"
prototype: "Qt3DCore::QEntity"
- exports: ["Qt3D.Render/Camera 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: ["Qt3D.Render/Camera 2.0", "Qt3D.Render/Camera 2.9"]
+ exportMetaObjectRevisions: [0, 9]
Enum {
name: "CameraTranslationOption"
values: {
@@ -1147,6 +1180,16 @@ Module {
name: "setViewCenter"
Parameter { name: "viewCenter"; type: "QVector3D" }
}
+ Method { name: "viewAll" }
+ Method {
+ name: "viewSphere"
+ Parameter { name: "center"; type: "QVector3D" }
+ Parameter { name: "radius"; type: "float" }
+ }
+ Method {
+ name: "viewEntity"
+ Parameter { name: "entity"; type: "Qt3DCore::QEntity"; isPointer: true }
+ }
Method {
name: "tiltRotation"
type: "QQuaternion"
@@ -1232,8 +1275,8 @@ Module {
Component {
name: "Qt3DRender::QCameraLens"
prototype: "Qt3DCore::QComponent"
- exports: ["Qt3D.Render/CameraLens 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: ["Qt3D.Render/CameraLens 2.0", "Qt3D.Render/CameraLens 2.9"]
+ exportMetaObjectRevisions: [0, 9]
Enum {
name: "ProjectionType"
values: {
@@ -1298,6 +1341,11 @@ Module {
name: "exposureChanged"
Parameter { name: "exposure"; type: "float" }
}
+ Signal {
+ name: "viewSphere"
+ Parameter { name: "center"; type: "QVector3D" }
+ Parameter { name: "radius"; type: "float" }
+ }
Method {
name: "setProjectionType"
Parameter { name: "projectionType"; type: "ProjectionType" }
@@ -1345,7 +1393,10 @@ Module {
}
Component {
name: "Qt3DRender::QCameraSelector"
+ defaultProperty: "data"
prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/CameraSelector 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "camera"; type: "Qt3DCore::QEntity"; isPointer: true }
Signal {
name: "cameraChanged"
@@ -1355,6 +1406,14 @@ Module {
name: "setCamera"
Parameter { name: "camera"; type: "Qt3DCore::QEntity"; isPointer: true }
}
+ Property { name: "data"; revision: 200; type: "QObject"; isList: true; isReadonly: true }
+ Property {
+ name: "childNodes"
+ revision: 200
+ type: "Qt3DCore::QNode"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DRender::QClearBuffers"
@@ -1610,7 +1669,27 @@ Module {
exports: ["Qt3D.Render/Dithering 2.0"]
exportMetaObjectRevisions: [0]
}
- Component { name: "Qt3DRender::QEffect"; prototype: "Qt3DCore::QNode" }
+ Component {
+ name: "Qt3DRender::QEffect"
+ defaultProperty: "data"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Render/Effect 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "techniques"
+ revision: 200
+ type: "Qt3DRender::QTechnique"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "parameters"
+ revision: 200
+ type: "Qt3DRender::QParameter"
+ isList: true
+ isReadonly: true
+ }
+ }
Component {
name: "Qt3DRender::QEnvironmentLight"
prototype: "Qt3DCore::QComponent"
@@ -1699,7 +1778,10 @@ Module {
}
Component {
name: "Qt3DRender::QGeometry"
+ defaultProperty: "attributes"
prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Render/Geometry 2.0"]
+ exportMetaObjectRevisions: [200]
Property {
name: "boundingVolumePositionAttribute"
type: "Qt3DRender::QAttribute"
@@ -1721,6 +1803,13 @@ Module {
name: "removeAttribute"
Parameter { name: "attribute"; type: "Qt3DRender::QAttribute"; isPointer: true }
}
+ Property {
+ name: "attributes"
+ revision: 200
+ type: "Qt3DRender::QAttribute"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DRender::QGeometryRenderer"
@@ -1749,6 +1838,7 @@ Module {
Property { name: "indexOffset"; type: "int" }
Property { name: "firstInstance"; type: "int" }
Property { name: "firstVertex"; type: "int" }
+ Property { name: "indexBufferByteOffset"; type: "int" }
Property { name: "restartIndexValue"; type: "int" }
Property { name: "verticesPerPatch"; type: "int" }
Property { name: "primitiveRestartEnabled"; type: "bool" }
@@ -1775,6 +1865,10 @@ Module {
Parameter { name: "firstVertex"; type: "int" }
}
Signal {
+ name: "indexBufferByteOffsetChanged"
+ Parameter { name: "offset"; type: "int" }
+ }
+ Signal {
name: "restartIndexValueChanged"
Parameter { name: "restartIndexValue"; type: "int" }
}
@@ -1815,6 +1909,10 @@ Module {
Parameter { name: "firstVertex"; type: "int" }
}
Method {
+ name: "setIndexBufferByteOffset"
+ Parameter { name: "offset"; type: "int" }
+ }
+ Method {
name: "setRestartIndexValue"
Parameter { name: "index"; type: "int" }
}
@@ -1844,7 +1942,9 @@ Module {
name: "Api"
values: {
"OpenGLES": 2,
- "OpenGL": 1
+ "OpenGL": 1,
+ "Vulkan": 3,
+ "DirectX": 4
}
}
Enum {
@@ -1916,8 +2016,36 @@ Module {
prototype: "Qt3DCore::QComponent"
exports: ["Qt3D.Render/Layer 2.0"]
exportMetaObjectRevisions: [0]
+ Property { name: "recursive"; type: "bool" }
+ }
+ Component {
+ name: "Qt3DRender::QLayerFilter"
+ defaultProperty: "data"
+ prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/LayerFilter 2.0"]
+ exportMetaObjectRevisions: [200]
+ Enum {
+ name: "FilterMode"
+ values: {
+ "AcceptAnyMatchingLayers": 0,
+ "AcceptAllMatchingLayers": 1,
+ "DiscardAnyMatchingLayers": 2,
+ "DiscardAllMatchingLayers": 3
+ }
+ }
+ Property { name: "filterMode"; type: "FilterMode" }
+ Signal {
+ name: "filterModeChanged"
+ Parameter { name: "filterMode"; type: "FilterMode" }
+ }
+ Property {
+ name: "layers"
+ revision: 200
+ type: "Qt3DRender::QLayer"
+ isList: true
+ isReadonly: true
+ }
}
- Component { name: "Qt3DRender::QLayerFilter"; prototype: "Qt3DRender::QFrameGraphNode" }
Component {
name: "Qt3DRender::QLevelOfDetail"
prototype: "Qt3DCore::QComponent"
@@ -1977,7 +2105,7 @@ Module {
}
Method {
name: "createBoundingSphere"
- type: "QLevelOfDetailBoundingSphere"
+ type: "Qt3DRender::QLevelOfDetailBoundingSphere"
Parameter { name: "center"; type: "QVector3D" }
Parameter { name: "radius"; type: "float" }
}
@@ -1989,8 +2117,35 @@ Module {
exportMetaObjectRevisions: [0]
}
Component {
+ name: "Qt3DRender::QLineWidth"
+ prototype: "Qt3DRender::QRenderState"
+ exports: ["Qt3D.Render/LineWidth 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "value"; type: "float" }
+ Property { name: "smooth"; type: "bool" }
+ Signal {
+ name: "valueChanged"
+ Parameter { name: "value"; type: "float" }
+ }
+ Signal {
+ name: "smoothChanged"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Method {
+ name: "setValue"
+ Parameter { name: "value"; type: "float" }
+ }
+ Method {
+ name: "setSmooth"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ }
+ Component {
name: "Qt3DRender::QMaterial"
+ defaultProperty: "data"
prototype: "Qt3DCore::QComponent"
+ exports: ["Qt3D.Render/Material 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "effect"; type: "Qt3DRender::QEffect"; isPointer: true }
Signal {
name: "effectChanged"
@@ -2000,10 +2155,20 @@ Module {
name: "setEffect"
Parameter { name: "effect"; type: "QEffect"; isPointer: true }
}
+ Property {
+ name: "parameters"
+ revision: 200
+ type: "Qt3DRender::QParameter"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DRender::QMemoryBarrier"
+ defaultProperty: "data"
prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/MemoryBarrier 2.9"]
+ exportMetaObjectRevisions: [209]
Enum {
name: "Operation"
values: {
@@ -2033,14 +2198,25 @@ Module {
name: "setWaitOperations"
Parameter { name: "operations"; type: "QMemoryBarrier::Operations" }
}
+ Property { name: "waitFor"; revision: 209; type: "int" }
}
Component {
name: "Qt3DRender::QMesh"
prototype: "Qt3DRender::QGeometryRenderer"
exports: ["Qt3D.Render/Mesh 2.0"]
exportMetaObjectRevisions: [0]
+ Enum {
+ name: "Status"
+ values: {
+ "None": 0,
+ "Loading": 1,
+ "Ready": 2,
+ "Error": 3
+ }
+ }
Property { name: "source"; type: "QUrl" }
Property { name: "meshName"; type: "string" }
+ Property { name: "status"; revision: 11; type: "Status"; isReadonly: true }
Signal {
name: "sourceChanged"
Parameter { name: "source"; type: "QUrl" }
@@ -2049,6 +2225,10 @@ Module {
name: "meshNameChanged"
Parameter { name: "meshName"; type: "string" }
}
+ Signal {
+ name: "statusChanged"
+ Parameter { name: "status"; type: "Status" }
+ }
Method {
name: "setSource"
Parameter { name: "source"; type: "QUrl" }
@@ -2079,8 +2259,11 @@ Module {
Component {
name: "Qt3DRender::QObjectPicker"
prototype: "Qt3DCore::QComponent"
- exports: ["Qt3D.Render/ObjectPicker 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "Qt3D.Render/ObjectPicker 2.0",
+ "Qt3D.Render/ObjectPicker 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 9]
Property { name: "hoverEnabled"; type: "bool" }
Property { name: "dragEnabled"; type: "bool" }
Property { name: "pressed"; type: "bool"; isReadonly: true }
@@ -2206,7 +2389,10 @@ Module {
name: "PickMethod"
values: {
"BoundingVolumePicking": 0,
- "TrianglePicking": 1
+ "TrianglePicking": 1,
+ "LinePicking": 2,
+ "PointPicking": 4,
+ "PrimitivePicking": 7
}
}
Enum {
@@ -2227,6 +2413,7 @@ Module {
Property { name: "pickMethod"; type: "PickMethod" }
Property { name: "pickResultMode"; type: "PickResultMode" }
Property { name: "faceOrientationPickingMode"; type: "FaceOrientationPickingMode" }
+ Property { name: "worldSpaceTolerance"; revision: 10; type: "float" }
Signal {
name: "pickMethodChanged"
Parameter { name: "pickMethod"; type: "QPickingSettings::PickMethod" }
@@ -2242,6 +2429,10 @@ Module {
type: "QPickingSettings::FaceOrientationPickingMode"
}
}
+ Signal {
+ name: "worldSpaceToleranceChanged"
+ Parameter { name: "worldSpaceTolerance"; type: "float" }
+ }
Method {
name: "setPickMethod"
Parameter { name: "pickMethod"; type: "PickMethod" }
@@ -2254,6 +2445,10 @@ Module {
name: "setFaceOrientationPickingMode"
Parameter { name: "faceOrientationPickingMode"; type: "FaceOrientationPickingMode" }
}
+ Method {
+ name: "setWorldSpaceTolerance"
+ Parameter { name: "worldSpaceTolerance"; type: "float" }
+ }
}
Component {
name: "Qt3DRender::QPointLight"
@@ -2344,16 +2539,87 @@ Module {
}
}
Component {
- name: "Qt3DRender::QRenderCapture"
+ name: "Qt3DRender::QProximityFilter"
prototype: "Qt3DRender::QFrameGraphNode"
- exports: ["Qt3D.Render/RenderCapture 2.1"]
+ exports: ["Qt3D.Render/ProximityFilter 2.10"]
exportMetaObjectRevisions: [0]
+ Property { name: "entity"; type: "Qt3DCore::QEntity"; isPointer: true }
+ Property { name: "distanceThreshold"; type: "float" }
+ Signal {
+ name: "entityChanged"
+ Parameter { name: "entity"; type: "Qt3DCore::QEntity"; isPointer: true }
+ }
+ Signal {
+ name: "distanceThresholdChanged"
+ Parameter { name: "distanceThreshold"; type: "float" }
+ }
+ Method {
+ name: "setEntity"
+ Parameter { name: "entity"; type: "Qt3DCore::QEntity"; isPointer: true }
+ }
+ Method {
+ name: "setDistanceThreshold"
+ Parameter { name: "distanceThreshold"; type: "float" }
+ }
+ }
+ Component {
+ name: "Qt3DRender::QRayCaster"
+ prototype: "Qt3DRender::QAbstractRayCaster"
+ Property { name: "origin"; type: "QVector3D" }
+ Property { name: "direction"; type: "QVector3D" }
+ Property { name: "length"; type: "float" }
+ Signal {
+ name: "originChanged"
+ Parameter { name: "origin"; type: "QVector3D" }
+ }
+ Signal {
+ name: "directionChanged"
+ Parameter { name: "direction"; type: "QVector3D" }
+ }
+ Signal {
+ name: "lengthChanged"
+ Parameter { name: "length"; type: "float" }
+ }
+ Method {
+ name: "setOrigin"
+ Parameter { name: "origin"; type: "QVector3D" }
+ }
+ Method {
+ name: "setDirection"
+ Parameter { name: "direction"; type: "QVector3D" }
+ }
+ Method {
+ name: "setLength"
+ Parameter { name: "length"; type: "float" }
+ }
+ Method { name: "trigger" }
+ Method {
+ name: "trigger"
+ Parameter { name: "origin"; type: "QVector3D" }
+ Parameter { name: "direction"; type: "QVector3D" }
+ Parameter { name: "length"; type: "float" }
+ }
+ }
+ Component {
+ name: "Qt3DRender::QRenderCapture"
+ prototype: "Qt3DRender::QFrameGraphNode"
+ exports: [
+ "Qt3D.Render/RenderCapture 2.1",
+ "Qt3D.Render/RenderCapture 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 9]
Method {
name: "requestCapture"
type: "Qt3DRender::QRenderCaptureReply*"
Parameter { name: "captureId"; type: "int" }
}
Method { name: "requestCapture"; revision: 9; type: "Qt3DRender::QRenderCaptureReply*" }
+ Method {
+ name: "requestCapture"
+ revision: 10
+ type: "Qt3DRender::QRenderCaptureReply*"
+ Parameter { name: "rect"; type: "QRect" }
+ }
}
Component {
name: "Qt3DRender::QRenderCaptureReply"
@@ -2381,7 +2647,10 @@ Module {
}
Component {
name: "Qt3DRender::QRenderPass"
+ defaultProperty: "data"
prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Render/RenderPass 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "shaderProgram"; type: "Qt3DRender::QShaderProgram"; isPointer: true }
Signal {
name: "shaderProgramChanged"
@@ -2391,8 +2660,49 @@ Module {
name: "setShaderProgram"
Parameter { name: "shaderProgram"; type: "QShaderProgram"; isPointer: true }
}
+ Property {
+ name: "filterKeys"
+ revision: 200
+ type: "Qt3DRender::QFilterKey"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "renderStates"
+ revision: 200
+ type: "Qt3DRender::QRenderState"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "parameters"
+ revision: 200
+ type: "Qt3DRender::QParameter"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QRenderPassFilter"
+ defaultProperty: "data"
+ prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/RenderPassFilter 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "matchAny"
+ revision: 200
+ type: "Qt3DRender::QFilterKey"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "parameters"
+ revision: 200
+ type: "Qt3DRender::QParameter"
+ isList: true
+ isReadonly: true
+ }
}
- Component { name: "Qt3DRender::QRenderPassFilter"; prototype: "Qt3DRender::QFrameGraphNode" }
Component {
name: "Qt3DRender::QRenderSettings"
defaultProperty: "activeFrameGraph"
@@ -2438,7 +2748,20 @@ Module {
isCreatable: false
exportMetaObjectRevisions: [0]
}
- Component { name: "Qt3DRender::QRenderStateSet"; prototype: "Qt3DRender::QFrameGraphNode" }
+ Component {
+ name: "Qt3DRender::QRenderStateSet"
+ defaultProperty: "data"
+ prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/RenderStateSet 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "renderStates"
+ revision: 200
+ type: "Qt3DRender::QRenderState"
+ isList: true
+ isReadonly: true
+ }
+ }
Component {
name: "Qt3DRender::QRenderSurfaceSelector"
prototype: "Qt3DRender::QFrameGraphNode"
@@ -2472,7 +2795,20 @@ Module {
Parameter { name: "size"; type: "QSize" }
}
}
- Component { name: "Qt3DRender::QRenderTarget"; prototype: "Qt3DCore::QComponent" }
+ Component {
+ name: "Qt3DRender::QRenderTarget"
+ defaultProperty: "data"
+ prototype: "Qt3DCore::QComponent"
+ exports: ["Qt3D.Render/RenderTarget 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "attachments"
+ revision: 200
+ type: "Qt3DRender::QRenderTargetOutput"
+ isList: true
+ isReadonly: true
+ }
+ }
Component {
name: "Qt3DRender::QRenderTargetOutput"
prototype: "Qt3DCore::QNode"
@@ -2550,7 +2886,10 @@ Module {
}
Component {
name: "Qt3DRender::QRenderTargetSelector"
+ defaultProperty: "data"
prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/RenderTargetSelector 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "target"; type: "Qt3DRender::QRenderTarget"; isPointer: true }
Signal {
name: "targetChanged"
@@ -2560,10 +2899,17 @@ Module {
name: "setTarget"
Parameter { name: "target"; type: "QRenderTarget"; isPointer: true }
}
+ Property { name: "drawBuffers"; revision: 200; type: "QVariantList" }
}
Component {
name: "Qt3DRender::QSceneLoader"
+ defaultProperty: "data"
prototype: "Qt3DCore::QComponent"
+ exports: [
+ "Qt3D.Render/SceneLoader 2.0",
+ "Qt3D.Render/SceneLoader 2.9"
+ ]
+ exportMetaObjectRevisions: [200, 9]
Enum {
name: "Status"
values: {
@@ -2660,6 +3006,24 @@ Module {
}
}
Component {
+ name: "Qt3DRender::QScreenRayCaster"
+ prototype: "Qt3DRender::QAbstractRayCaster"
+ Property { name: "position"; type: "QPoint" }
+ Signal {
+ name: "positionChanged"
+ Parameter { name: "position"; type: "QPoint" }
+ }
+ Method {
+ name: "setPosition"
+ Parameter { name: "position"; type: "QPoint" }
+ }
+ Method { name: "trigger" }
+ Method {
+ name: "trigger"
+ Parameter { name: "position"; type: "QPoint" }
+ }
+ }
+ Component {
name: "Qt3DRender::QSeamlessCubemap"
prototype: "Qt3DRender::QRenderState"
exports: ["Qt3D.Render/SeamlessCubemap 2.0"]
@@ -2675,8 +3039,11 @@ Module {
Component {
name: "Qt3DRender::QShaderProgram"
prototype: "Qt3DCore::QNode"
- exports: ["Qt3D.Render/ShaderProgram 2.0"]
- exportMetaObjectRevisions: [0]
+ exports: [
+ "Qt3D.Render/ShaderProgram 2.0",
+ "Qt3D.Render/ShaderProgram 2.9"
+ ]
+ exportMetaObjectRevisions: [0, 9]
Enum {
name: "ShaderType"
values: {
@@ -2767,6 +3134,84 @@ Module {
}
}
Component {
+ name: "Qt3DRender::QShaderProgramBuilder"
+ prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Render/ShaderProgramBuilder 2.10"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "shaderProgram"; type: "Qt3DRender::QShaderProgram"; isPointer: true }
+ Property { name: "enabledLayers"; type: "QStringList" }
+ Property { name: "vertexShaderGraph"; type: "QUrl" }
+ Property { name: "tessellationControlShaderGraph"; type: "QUrl" }
+ Property { name: "tessellationEvaluationShaderGraph"; type: "QUrl" }
+ Property { name: "geometryShaderGraph"; type: "QUrl" }
+ Property { name: "fragmentShaderGraph"; type: "QUrl" }
+ Property { name: "computeShaderGraph"; type: "QUrl" }
+ Signal {
+ name: "shaderProgramChanged"
+ Parameter { name: "shaderProgram"; type: "Qt3DRender::QShaderProgram"; isPointer: true }
+ }
+ Signal {
+ name: "enabledLayersChanged"
+ Parameter { name: "layers"; type: "QStringList" }
+ }
+ Signal {
+ name: "vertexShaderGraphChanged"
+ Parameter { name: "vertexShaderGraph"; type: "QUrl" }
+ }
+ Signal {
+ name: "tessellationControlShaderGraphChanged"
+ Parameter { name: "tessellationControlShaderGraph"; type: "QUrl" }
+ }
+ Signal {
+ name: "tessellationEvaluationShaderGraphChanged"
+ Parameter { name: "tessellationEvaluationShaderGraph"; type: "QUrl" }
+ }
+ Signal {
+ name: "geometryShaderGraphChanged"
+ Parameter { name: "geometryShaderGraph"; type: "QUrl" }
+ }
+ Signal {
+ name: "fragmentShaderGraphChanged"
+ Parameter { name: "fragmentShaderGraph"; type: "QUrl" }
+ }
+ Signal {
+ name: "computeShaderGraphChanged"
+ Parameter { name: "computeShaderGraph"; type: "QUrl" }
+ }
+ Method {
+ name: "setShaderProgram"
+ Parameter { name: "program"; type: "Qt3DRender::QShaderProgram"; isPointer: true }
+ }
+ Method {
+ name: "setEnabledLayers"
+ Parameter { name: "layers"; type: "QStringList" }
+ }
+ Method {
+ name: "setVertexShaderGraph"
+ Parameter { name: "vertexShaderGraph"; type: "QUrl" }
+ }
+ Method {
+ name: "setTessellationControlShaderGraph"
+ Parameter { name: "tessellationControlShaderGraph"; type: "QUrl" }
+ }
+ Method {
+ name: "setTessellationEvaluationShaderGraph"
+ Parameter { name: "tessellationEvaluationShaderGraph"; type: "QUrl" }
+ }
+ Method {
+ name: "setGeometryShaderGraph"
+ Parameter { name: "geometryShaderGraph"; type: "QUrl" }
+ }
+ Method {
+ name: "setFragmentShaderGraph"
+ Parameter { name: "fragmentShaderGraph"; type: "QUrl" }
+ }
+ Method {
+ name: "setComputeShaderGraph"
+ Parameter { name: "computeShaderGraph"; type: "QUrl" }
+ }
+ }
+ Component {
name: "Qt3DRender::QSortPolicy"
prototype: "Qt3DRender::QFrameGraphNode"
exports: ["Qt3D.Render/SortPolicy 2.0"]
@@ -3031,33 +3476,198 @@ Module {
}
Component {
name: "Qt3DRender::QTechnique"
+ defaultProperty: "data"
prototype: "Qt3DCore::QNode"
+ exports: ["Qt3D.Render/Technique 2.0"]
+ exportMetaObjectRevisions: [200]
Property {
name: "graphicsApiFilter"
type: "Qt3DRender::QGraphicsApiFilter"
isReadonly: true
isPointer: true
}
+ Property {
+ name: "filterKeys"
+ revision: 200
+ type: "Qt3DRender::QFilterKey"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "renderPasses"
+ revision: 200
+ type: "Qt3DRender::QRenderPass"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "parameters"
+ revision: 200
+ type: "Qt3DRender::QParameter"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTechniqueFilter"
+ defaultProperty: "data"
+ prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/TechniqueFilter 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "matchAll"
+ revision: 200
+ type: "Qt3DRender::QFilterKey"
+ isList: true
+ isReadonly: true
+ }
+ Property {
+ name: "parameters"
+ revision: 200
+ type: "Qt3DRender::QParameter"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTexture1D"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture1D 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTexture1DArray"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture1DArray 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTexture2D"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture2D 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTexture2DArray"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture2DArray 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
}
- Component { name: "Qt3DRender::QTechniqueFilter"; prototype: "Qt3DRender::QFrameGraphNode" }
- Component { name: "Qt3DRender::QTexture1D"; prototype: "Qt3DRender::QAbstractTexture" }
- Component { name: "Qt3DRender::QTexture1DArray"; prototype: "Qt3DRender::QAbstractTexture" }
- Component { name: "Qt3DRender::QTexture2D"; prototype: "Qt3DRender::QAbstractTexture" }
- Component { name: "Qt3DRender::QTexture2DArray"; prototype: "Qt3DRender::QAbstractTexture" }
Component {
name: "Qt3DRender::QTexture2DMultisample"
+ defaultProperty: "textureImages"
prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture2DMultisample 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DRender::QTexture2DMultisampleArray"
+ defaultProperty: "textureImages"
prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture2DMultisampleArray 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTexture3D"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/Texture3D 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTextureBuffer"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/TextureBuffer 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTextureCubeMap"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/TextureCubeMap 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
}
- Component { name: "Qt3DRender::QTexture3D"; prototype: "Qt3DRender::QAbstractTexture" }
- Component { name: "Qt3DRender::QTextureBuffer"; prototype: "Qt3DRender::QAbstractTexture" }
- Component { name: "Qt3DRender::QTextureCubeMap"; prototype: "Qt3DRender::QAbstractTexture" }
Component {
name: "Qt3DRender::QTextureCubeMapArray"
+ defaultProperty: "textureImages"
prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/TextureCubeMapArray 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
}
Component {
name: "Qt3DRender::QTextureImage"
@@ -3099,7 +3709,10 @@ Module {
}
Component {
name: "Qt3DRender::QTextureLoader"
+ defaultProperty: "textureImages"
prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/TextureLoader 2.0"]
+ exportMetaObjectRevisions: [200]
Property { name: "source"; type: "QUrl" }
Property { name: "mirrored"; type: "bool" }
Signal {
@@ -3118,8 +3731,28 @@ Module {
name: "setMirrored"
Parameter { name: "mirrored"; type: "bool" }
}
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
+ }
+ Component {
+ name: "Qt3DRender::QTextureRectangle"
+ defaultProperty: "textureImages"
+ prototype: "Qt3DRender::QAbstractTexture"
+ exports: ["Qt3D.Render/TextureRectangle 2.0"]
+ exportMetaObjectRevisions: [200]
+ Property {
+ name: "textureImages"
+ revision: 200
+ type: "Qt3DRender::QAbstractTextureImage"
+ isList: true
+ isReadonly: true
+ }
}
- Component { name: "Qt3DRender::QTextureRectangle"; prototype: "Qt3DRender::QAbstractTexture" }
Component {
name: "Qt3DRender::QTextureWrapMode"
prototype: "QObject"
@@ -3164,7 +3797,10 @@ Module {
}
Component {
name: "Qt3DRender::QViewport"
+ defaultProperty: "data"
prototype: "Qt3DRender::QFrameGraphNode"
+ exports: ["Qt3D.Render/Viewport 2.0", "Qt3D.Render/Viewport 2.9"]
+ exportMetaObjectRevisions: [200, 9]
Property { name: "normalizedRect"; type: "QRectF" }
Property { name: "gamma"; revision: 9; type: "float" }
Signal {
@@ -3203,96 +3839,36 @@ Module {
}
}
Component {
- name: "Qt3DRender::Render::Quick::Quick3DEffect"
- prototype: "Qt3DRender::QEffect"
- exports: ["Qt3D.Render/Effect 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "techniques"; type: "Qt3DRender::QTechnique"; isList: true; isReadonly: true }
- Property { name: "parameters"; type: "Qt3DRender::QParameter"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DGeometry"
- defaultProperty: "attributes"
- prototype: "Qt3DRender::QGeometry"
- exports: ["Qt3D.Render/Geometry 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "attributes"; type: "Qt3DRender::QAttribute"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DLayerFilter"
- prototype: "Qt3DRender::QLayerFilter"
- exports: ["Qt3D.Render/LayerFilter 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "layers"; type: "Qt3DRender::QLayer"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DMaterial"
- prototype: "Qt3DRender::QMaterial"
- exports: ["Qt3D.Render/Material 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "parameters"; type: "Qt3DRender::QParameter"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DMemoryBarrier"
- prototype: "Qt3DRender::QMemoryBarrier"
- exports: ["Qt3D.Render/MemoryBarrier 2.9"]
- exportMetaObjectRevisions: [0]
- Property { name: "waitFor"; type: "int" }
- }
- Component {
name: "Qt3DRender::Render::Quick::Quick3DParameter"
prototype: "Qt3DRender::QParameter"
exports: ["Qt3D.Render/Parameter 2.0"]
exportMetaObjectRevisions: [0]
}
Component {
- name: "Qt3DRender::Render::Quick::Quick3DRenderPass"
- prototype: "Qt3DRender::QRenderPass"
- exports: ["Qt3D.Render/RenderPass 2.0"]
+ name: "Qt3DRender::Render::Quick::Quick3DRayCaster"
+ prototype: "Qt3DRender::QRayCaster"
+ exports: ["Qt3D.Render/RayCaster 2.11"]
exportMetaObjectRevisions: [0]
- Property { name: "filterKeys"; type: "Qt3DRender::QFilterKey"; isList: true; isReadonly: true }
- Property {
- name: "renderStates"
- type: "Qt3DRender::QRenderState"
- isList: true
- isReadonly: true
+ Property { name: "hits"; type: "QJSValue"; isReadonly: true }
+ Property { name: "layers"; type: "Qt3DRender::QLayer"; isList: true; isReadonly: true }
+ Signal {
+ name: "hitsChanged"
+ Parameter { name: "hits"; type: "QJSValue" }
}
- Property { name: "parameters"; type: "Qt3DRender::QParameter"; isList: true; isReadonly: true }
}
Component {
- name: "Qt3DRender::Render::Quick::Quick3DRenderPassFilter"
- prototype: "Qt3DRender::QRenderPassFilter"
- exports: ["Qt3D.Render/RenderPassFilter 2.0"]
+ name: "Qt3DRender::Render::Quick::Quick3DScreenRayCaster"
+ prototype: "Qt3DRender::QScreenRayCaster"
+ exports: ["Qt3D.Render/ScreenRayCaster 2.11"]
exportMetaObjectRevisions: [0]
- Property { name: "matchAny"; type: "Qt3DRender::QFilterKey"; isList: true; isReadonly: true }
- Property { name: "parameters"; type: "Qt3DRender::QParameter"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DRenderTargetOutput"
- prototype: "Qt3DRender::QRenderTarget"
- exports: ["Qt3D.Render/RenderTarget 2.0"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "attachments"
- type: "Qt3DRender::QRenderTargetOutput"
- isList: true
- isReadonly: true
+ Property { name: "hits"; type: "QJSValue"; isReadonly: true }
+ Property { name: "layers"; type: "Qt3DRender::QLayer"; isList: true; isReadonly: true }
+ Signal {
+ name: "hitsChanged"
+ Parameter { name: "hits"; type: "QJSValue" }
}
}
Component {
- name: "Qt3DRender::Render::Quick::Quick3DRenderTargetSelector"
- prototype: "Qt3DRender::QRenderTargetSelector"
- exports: ["Qt3D.Render/RenderTargetSelector 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "drawBuffers"; type: "QVariantList" }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DScene"
- prototype: "Qt3DRender::QSceneLoader"
- exports: ["Qt3D.Render/SceneLoader 2.0"]
- exportMetaObjectRevisions: [0]
- }
- Component {
name: "Qt3DRender::Render::Quick::Quick3DShaderData"
prototype: "Qt3DRender::QShaderData"
exports: ["Qt3D.Render/ShaderData 2.0"]
@@ -3306,65 +3882,4 @@ Module {
exportMetaObjectRevisions: [0]
Property { name: "values"; type: "Qt3DRender::QShaderData"; isList: true; isReadonly: true }
}
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DStateSet"
- prototype: "Qt3DRender::QRenderStateSet"
- exports: ["Qt3D.Render/RenderStateSet 2.0"]
- exportMetaObjectRevisions: [0]
- Property {
- name: "renderStates"
- type: "Qt3DRender::QRenderState"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DTechnique"
- prototype: "Qt3DRender::QTechnique"
- exports: ["Qt3D.Render/Technique 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "filterKeys"; type: "Qt3DRender::QFilterKey"; isList: true; isReadonly: true }
- Property { name: "renderPasses"; type: "Qt3DRender::QRenderPass"; isList: true; isReadonly: true }
- Property { name: "parameters"; type: "Qt3DRender::QParameter"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DTechniqueFilter"
- prototype: "Qt3DRender::QTechniqueFilter"
- exports: ["Qt3D.Render/TechniqueFilter 2.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "matchAll"; type: "Qt3DRender::QFilterKey"; isList: true; isReadonly: true }
- Property { name: "parameters"; type: "Qt3DRender::QParameter"; isList: true; isReadonly: true }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DTextureExtension"
- defaultProperty: "textureImages"
- prototype: "Qt3DRender::QTextureRectangle"
- exports: [
- "Qt3D.Render/Texture1D 2.0",
- "Qt3D.Render/Texture1DArray 2.0",
- "Qt3D.Render/Texture2D 2.0",
- "Qt3D.Render/Texture2DArray 2.0",
- "Qt3D.Render/Texture2DMultisample 2.0",
- "Qt3D.Render/Texture2DMultisampleArray 2.0",
- "Qt3D.Render/Texture3D 2.0",
- "Qt3D.Render/TextureBuffer 2.0",
- "Qt3D.Render/TextureCubeMap 2.0",
- "Qt3D.Render/TextureCubeMapArray 2.0",
- "Qt3D.Render/TextureLoader 2.0",
- "Qt3D.Render/TextureRectangle 2.0"
- ]
- exportMetaObjectRevisions: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
- Property {
- name: "textureImages"
- type: "Qt3DRender::QAbstractTextureImage"
- isList: true
- isReadonly: true
- }
- }
- Component {
- name: "Qt3DRender::Render::Quick::Quick3DViewport"
- prototype: "Qt3DRender::QViewport"
- exports: ["Qt3D.Render/Viewport 2.0"]
- exportMetaObjectRevisions: [0]
- }
}
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
index 9b79eb9bc..015527730 100644
--- a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
+++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
@@ -296,6 +296,9 @@ void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri)
qmlRegisterType<Qt3DRender::QStencilOperation>(uri, 2, 0, "StencilOperation");
qmlRegisterType<Qt3DRender::QStencilMask>(uri, 2, 0, "StencilMask");
qmlRegisterType<Qt3DRender::QLineWidth>(uri, 2, 10, "LineWidth");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
QT_END_NAMESPACE
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.h b/src/quick3d/imports/render/qt3dquick3drenderplugin.h
index 11802b179..68a5cade5 100644
--- a/src/quick3d/imports/render/qt3dquick3drenderplugin.h
+++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.h
@@ -42,13 +42,6 @@
#include <QtQml/QQmlExtensionPlugin>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_Qt3D_Render);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class Qt3DQuick3DRenderPlugin : public QQmlExtensionPlugin
@@ -56,7 +49,7 @@ class Qt3DQuick3DRenderPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- Qt3DQuick3DRenderPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ Qt3DQuick3DRenderPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/imports/scene2d/dependencies.json b/src/quick3d/imports/scene2d/dependencies.json
new file mode 100644
index 000000000..495ebb5c2
--- /dev/null
+++ b/src/quick3d/imports/scene2d/dependencies.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "Qt3D.Core",
+ "type": "module",
+ "version": "2.0"
+ },
+ {
+ "name": "Qt3D.Render",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/scene2d/importsscene2d.pro b/src/quick3d/imports/scene2d/importsscene2d.pro
index 32fbc5b1b..1582d4ee4 100644
--- a/src/quick3d/imports/scene2d/importsscene2d.pro
+++ b/src/quick3d/imports/scene2d/importsscene2d.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = qtquickscene2dplugin
TARGETPATH = QtQuick/Scene2D
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += qml quick 3dcore 3drender 3drender-private 3dinput 3dlogic 3dquickscene2d 3dquickscene2d-private
diff --git a/src/quick3d/imports/scene2d/plugins.qmltypes b/src/quick3d/imports/scene2d/plugins.qmltypes
index a26dcbec0..783dff7a3 100644
--- a/src/quick3d/imports/scene2d/plugins.qmltypes
+++ b/src/quick3d/imports/scene2d/plugins.qmltypes
@@ -4,54 +4,16 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -output plugins.qmltypes QtQuick.Scene2D 2.9'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Scene2D 2.12'
Module {
- dependencies: []
- Component {
- name: "Qt3DCore::QNode"
- prototype: "QObject"
- Enum {
- name: "PropertyTrackingMode"
- values: {
- "TrackFinalValues": 0,
- "DontTrackValues": 1,
- "TrackAllValues": 2
- }
- }
- Property { name: "parent"; type: "Qt3DCore::QNode"; isPointer: true }
- Property { name: "enabled"; type: "bool" }
- Property { name: "defaultPropertyTrackingMode"; revision: 9; type: "PropertyTrackingMode" }
- Signal {
- name: "parentChanged"
- Parameter { name: "parent"; type: "QObject"; isPointer: true }
- }
- Signal {
- name: "enabledChanged"
- Parameter { name: "enabled"; type: "bool" }
- }
- Signal {
- name: "defaultPropertyTrackingModeChanged"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- Signal { name: "nodeDestroyed" }
- Method {
- name: "setParent"
- Parameter { name: "parent"; type: "QNode"; isPointer: true }
- }
- Method {
- name: "setEnabled"
- Parameter { name: "isEnabled"; type: "bool" }
- }
- Method {
- name: "setDefaultPropertyTrackingMode"
- Parameter { name: "mode"; type: "PropertyTrackingMode" }
- }
- }
+ dependencies: ["Qt3D.Core 2.0", "Qt3D.Render 2.0"]
Component {
name: "Qt3DRender::Quick::QScene2D"
defaultProperty: "item"
prototype: "Qt3DCore::QNode"
+ exports: ["QtQuick.Scene2D/Scene2D 2.9"]
+ exportMetaObjectRevisions: [209]
Enum {
name: "RenderPolicy"
values: {
@@ -60,24 +22,14 @@ Module {
}
}
Property { name: "output"; type: "Qt3DRender::QRenderTargetOutput"; isPointer: true }
- Property { name: "source"; type: "QUrl" }
Property { name: "renderPolicy"; type: "QScene2D::RenderPolicy" }
- Property { name: "loaded"; type: "bool"; isReadonly: true }
Property { name: "item"; type: "QQuickItem"; isPointer: true }
- Property { name: "grabMouse"; type: "bool" }
+ Property { name: "mouseEnabled"; type: "bool" }
Signal {
name: "outputChanged"
Parameter { name: "output"; type: "Qt3DRender::QRenderTargetOutput"; isPointer: true }
}
Signal {
- name: "sourceChanged"
- Parameter { name: "url"; type: "QUrl" }
- }
- Signal {
- name: "loadedChanged"
- Parameter { name: "loaded"; type: "bool" }
- }
- Signal {
name: "renderPolicyChanged"
Parameter { name: "policy"; type: "QScene2D::RenderPolicy" }
}
@@ -86,18 +38,14 @@ Module {
Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
}
Signal {
- name: "grabMouseChanged"
- Parameter { name: "grab"; type: "bool" }
+ name: "mouseEnabledChanged"
+ Parameter { name: "enabled"; type: "bool" }
}
Method {
name: "setOutput"
Parameter { name: "output"; type: "Qt3DRender::QRenderTargetOutput"; isPointer: true }
}
Method {
- name: "setSource"
- Parameter { name: "url"; type: "QUrl" }
- }
- Method {
name: "setRenderPolicy"
Parameter { name: "policy"; type: "QScene2D::RenderPolicy" }
}
@@ -106,16 +54,15 @@ Module {
Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
}
Method {
- name: "setGrabMouseEnabled"
- Parameter { name: "grab"; type: "bool" }
+ name: "setMouseEnabled"
+ Parameter { name: "enabled"; type: "bool" }
+ }
+ Property {
+ name: "entities"
+ revision: 209
+ type: "Qt3DCore::QEntity"
+ isList: true
+ isReadonly: true
}
- }
- Component {
- name: "Qt3DRender::Render::Quick::QQuick3DScene2D"
- defaultProperty: "item"
- prototype: "Qt3DRender::Quick::QScene2D"
- exports: ["QtQuick.Scene2D/Scene2D 2.9"]
- exportMetaObjectRevisions: [0]
- Property { name: "entities"; type: "Qt3DCore::QEntity"; isList: true; isReadonly: true }
}
}
diff --git a/src/quick3d/imports/scene2d/qtquickscene2dplugin.cpp b/src/quick3d/imports/scene2d/qtquickscene2dplugin.cpp
index 4e6245d2d..0c410e84b 100644
--- a/src/quick3d/imports/scene2d/qtquickscene2dplugin.cpp
+++ b/src/quick3d/imports/scene2d/qtquickscene2dplugin.cpp
@@ -53,6 +53,9 @@ Q_COREAPP_STARTUP_FUNCTION(initScene2dPlugin)
void QtQuickScene2DPlugin::registerTypes(const char *uri)
{
qmlRegisterExtendedType<Qt3DRender::Quick::QScene2D, Qt3DRender::Render::Quick::QQuick3DScene2D>(uri, 2, 9, "Scene2D");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
QT_END_NAMESPACE
diff --git a/src/quick3d/imports/scene2d/qtquickscene2dplugin.h b/src/quick3d/imports/scene2d/qtquickscene2dplugin.h
index 7e97fd662..22a4e9b7a 100644
--- a/src/quick3d/imports/scene2d/qtquickscene2dplugin.h
+++ b/src/quick3d/imports/scene2d/qtquickscene2dplugin.h
@@ -39,13 +39,6 @@
#include <QtQml/qqmlextensionplugin.h>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_QtQuick_Scene2D);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class QtQuickScene2DPlugin : public QQmlExtensionPlugin
@@ -53,7 +46,7 @@ class QtQuickScene2DPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- QtQuickScene2DPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ QtQuickScene2DPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/imports/scene3d/dependencies.json b/src/quick3d/imports/scene3d/dependencies.json
new file mode 100644
index 000000000..550c12f00
--- /dev/null
+++ b/src/quick3d/imports/scene3d/dependencies.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "QtQuick",
+ "type": "module",
+ "version": "2.0"
+ },
+ {
+ "name": "Qt3D.Core",
+ "type": "module",
+ "version": "2.0"
+ }
+]
diff --git a/src/quick3d/imports/scene3d/importsscene3d.pro b/src/quick3d/imports/scene3d/importsscene3d.pro
index e41dc8c84..cf8d7cacf 100644
--- a/src/quick3d/imports/scene3d/importsscene3d.pro
+++ b/src/quick3d/imports/scene3d/importsscene3d.pro
@@ -1,7 +1,7 @@
CXX_MODULE = qml
TARGET = qtquickscene3dplugin
TARGETPATH = QtQuick/Scene3D
-IMPORT_VERSION = 2.0
+IMPORT_VERSION = 2.$$QT_MINOR_VERSION
QT += qml quick 3dcore 3drender 3drender-private
diff --git a/src/quick3d/imports/scene3d/plugins.qmltypes b/src/quick3d/imports/scene3d/plugins.qmltypes
index 46df37093..65526a450 100644
--- a/src/quick3d/imports/scene3d/plugins.qmltypes
+++ b/src/quick3d/imports/scene3d/plugins.qmltypes
@@ -4,10 +4,10 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable QtQuick.Scene3D 2.0'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Scene3D 2.12'
Module {
- dependencies: ["QtQuick 2.7"]
+ dependencies: ["Qt3D.Core 2.0", "QtQuick 2.0"]
Component {
name: "Qt3DRender::Scene3DItem"
defaultProperty: "entity"
@@ -46,5 +46,10 @@ Module {
name: "setHoverEnabled"
Parameter { name: "enabled"; type: "bool" }
}
+ Method {
+ name: "setItemAreaAndDevicePixelRatio"
+ Parameter { name: "area"; type: "QSize" }
+ Parameter { name: "devicePixelRatio"; type: "double" }
+ }
}
}
diff --git a/src/quick3d/imports/scene3d/qtquickscene3dplugin.cpp b/src/quick3d/imports/scene3d/qtquickscene3dplugin.cpp
index 6b9ec96f8..d7b985e9f 100644
--- a/src/quick3d/imports/scene3d/qtquickscene3dplugin.cpp
+++ b/src/quick3d/imports/scene3d/qtquickscene3dplugin.cpp
@@ -48,6 +48,9 @@ QT_BEGIN_NAMESPACE
void QtQuickScene3DPlugin::registerTypes(const char *uri)
{
qmlRegisterType<Qt3DRender::Scene3DItem>(uri, 2, 0, "Scene3D");
+
+ // Auto-increment the import to stay in sync with ALL future Qt minor versions
+ qmlRegisterModule(uri, 2, QT_VERSION_MINOR);
}
QT_END_NAMESPACE
diff --git a/src/quick3d/imports/scene3d/qtquickscene3dplugin.h b/src/quick3d/imports/scene3d/qtquickscene3dplugin.h
index 44a69a805..c70b8358b 100644
--- a/src/quick3d/imports/scene3d/qtquickscene3dplugin.h
+++ b/src/quick3d/imports/scene3d/qtquickscene3dplugin.h
@@ -42,13 +42,6 @@
#include <QtQml/QQmlExtensionPlugin>
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_QtQuick_Scene3D);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class QtQuickScene3DPlugin : public QQmlExtensionPlugin
@@ -56,7 +49,7 @@ class QtQuickScene3DPlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- QtQuickScene3DPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ QtQuickScene3DPlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override;
};
diff --git a/src/quick3d/quick3d/items/quick3dentityloader.cpp b/src/quick3d/quick3d/items/quick3dentityloader.cpp
index 48f2af658..bdf310d02 100644
--- a/src/quick3d/quick3d/items/quick3dentityloader.cpp
+++ b/src/quick3d/quick3d/items/quick3dentityloader.cpp
@@ -192,6 +192,24 @@ void Quick3DEntityLoader::setSource(const QUrl &url)
d->loadFromSource();
}
+QQmlComponent *Quick3DEntityLoader::sourceComponent() const
+{
+ Q_D(const Quick3DEntityLoader);
+ return d->m_sourceComponent;
+}
+
+void Quick3DEntityLoader::setSourceComponent(QQmlComponent *component)
+{
+ Q_D(Quick3DEntityLoader);
+ if (d->m_sourceComponent == component)
+ return;
+
+ d->clear();
+ d->m_sourceComponent = component;
+ emit sourceComponentChanged();
+ d->loadComponent(d->m_sourceComponent);
+}
+
/*!
\qmlproperty Status Qt3DCore::EntityLoader::status
@@ -214,6 +232,7 @@ Quick3DEntityLoaderPrivate::Quick3DEntityLoaderPrivate()
m_incubator(nullptr),
m_context(nullptr),
m_component(nullptr),
+ m_sourceComponent(nullptr),
m_entity(nullptr),
m_status(Quick3DEntityLoader::Null)
{
@@ -233,10 +252,11 @@ void Quick3DEntityLoaderPrivate::clear()
m_entity = nullptr;
}
- if (m_component) {
+ // Only delete m_component if we were loading from a URL otherwise it means
+ // m_component = m_sourceComponent which we don't own.
+ if (m_component && m_component != m_sourceComponent)
delete m_component;
- m_component = nullptr;
- }
+ m_component = nullptr;
if (m_context) {
delete m_context;
@@ -271,17 +291,34 @@ void Quick3DEntityLoaderPrivate::loadComponent(const QUrl &source)
m_component->loadUrl(source, QQmlComponent::Asynchronous);
}
+void Quick3DEntityLoaderPrivate::loadComponent(QQmlComponent *component)
+{
+ Q_ASSERT(m_entity == nullptr);
+ Q_ASSERT(m_component == nullptr);
+ Q_ASSERT(m_context == nullptr);
+
+ m_component = component;
+ _q_componentStatusChanged(m_component ? m_component->status() : QQmlComponent::Null);
+}
+
void Quick3DEntityLoaderPrivate::_q_componentStatusChanged(QQmlComponent::Status status)
{
Q_Q(Quick3DEntityLoader);
Q_ASSERT(m_entity == nullptr);
- Q_ASSERT(m_component != nullptr);
Q_ASSERT(m_context == nullptr);
Q_ASSERT(m_incubator == nullptr);
- auto owner = _q_findQmlOwner(q);
+ qDebug() << Q_FUNC_INFO << status;
+
+ if (!m_component) {
+ clear();
+ emit q->entityChanged();
+ return;
+ }
+
+ auto owner = _q_findQmlOwner(q);
if (!m_component->errors().isEmpty()) {
QQmlEnginePrivate::warning(owner.engine, m_component->errors());
clear();
diff --git a/src/quick3d/quick3d/items/quick3dentityloader_p.h b/src/quick3d/quick3d/items/quick3dentityloader_p.h
index 6a2fe5473..beb72ba79 100644
--- a/src/quick3d/quick3d/items/quick3dentityloader_p.h
+++ b/src/quick3d/quick3d/items/quick3dentityloader_p.h
@@ -60,6 +60,8 @@
QT_BEGIN_NAMESPACE
+class QQmlComponent;
+
namespace Qt3DCore {
class QEntity;
@@ -74,6 +76,7 @@ class QT3DQUICKSHARED_PRIVATE_EXPORT Quick3DEntityLoader : public QEntity
Q_PROPERTY(QObject *entity READ entity NOTIFY entityChanged)
Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
Q_PROPERTY(Status status READ status NOTIFY statusChanged)
+ Q_PROPERTY(QQmlComponent *sourceComponent WRITE setSourceComponent NOTIFY sourceComponentChanged REVISION 12)
public:
enum Status {
Null = 0,
@@ -91,11 +94,15 @@ public:
QUrl source() const;
void setSource(const QUrl &url);
+ QQmlComponent *sourceComponent() const;
+ void setSourceComponent(QQmlComponent *components);
+
Status status() const;
Q_SIGNALS:
void entityChanged();
void sourceChanged();
+ void sourceComponentChanged();
void statusChanged(Status status);
private:
diff --git a/src/quick3d/quick3d/items/quick3dentityloader_p_p.h b/src/quick3d/quick3d/items/quick3dentityloader_p_p.h
index 4d067f0e6..b37990d34 100644
--- a/src/quick3d/quick3d/items/quick3dentityloader_p_p.h
+++ b/src/quick3d/quick3d/items/quick3dentityloader_p_p.h
@@ -79,6 +79,7 @@ public:
void clear();
void loadFromSource();
void loadComponent(const QUrl &source);
+ void loadComponent(QQmlComponent *component);
void _q_componentStatusChanged(QQmlComponent::Status status);
void setStatus(Quick3DEntityLoader::Status status);
@@ -89,6 +90,7 @@ public:
Quick3DEntityLoaderIncubator *m_incubator;
QQmlContext *m_context;
QQmlComponent *m_component;
+ QQmlComponent *m_sourceComponent;
QEntity *m_entity;
Quick3DEntityLoader::Status m_status;
};
diff --git a/src/quick3d/quick3d/qt3dquick_global.cpp b/src/quick3d/quick3d/qt3dquick_global.cpp
index cef480240..aa2a94860 100644
--- a/src/quick3d/quick3d/qt3dquick_global.cpp
+++ b/src/quick3d/quick3d/qt3dquick_global.cpp
@@ -276,7 +276,7 @@ public:
float matVals[16];
QV4::ScopedValue v(scope);
for (quint32 i = 0; i < 16; ++i) {
- v = array->getIndexed(i);
+ v = array->get(i);
if (!v->isNumber())
return QMatrix4x4();
matVals[i] = v->asDouble();
diff --git a/src/render/backend/managers.cpp b/src/render/backend/managers.cpp
index 6e8c1376d..3b1f8e910 100644
--- a/src/render/backend/managers.cpp
+++ b/src/render/backend/managers.cpp
@@ -88,7 +88,7 @@ void SkeletonManager::addDirtySkeleton(DirtyFlag dirtyFlag, HSkeleton skeletonHa
}
}
-QVector<HSkeleton> SkeletonManager::dirtySkeletons(DirtyFlag dirtyFlag)
+QVector<HSkeleton> SkeletonManager::takeDirtySkeletons(DirtyFlag dirtyFlag)
{
switch (dirtyFlag) {
case SkeletonDataDirty:
diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h
index 312889a43..b62e2f3e0 100644
--- a/src/render/backend/managers_p.h
+++ b/src/render/backend/managers_p.h
@@ -414,7 +414,7 @@ public:
};
void addDirtySkeleton(DirtyFlag dirtyFlag, HSkeleton skeletonHandle);
- QVector<HSkeleton> dirtySkeletons(DirtyFlag dirtyFlag);
+ QVector<HSkeleton> takeDirtySkeletons(DirtyFlag dirtyFlag);
private:
QVector<HSkeleton> m_dirtyDataSkeletons;
diff --git a/src/render/framegraph/qframegraphnode.cpp b/src/render/framegraph/qframegraphnode.cpp
index 0a60edef7..9acfd1209 100644
--- a/src/render/framegraph/qframegraphnode.cpp
+++ b/src/render/framegraph/qframegraphnode.cpp
@@ -41,6 +41,12 @@
#include "qframegraphnode_p.h"
#include <Qt3DRender/qframegraphnodecreatedchange.h>
+#include <Qt3DCore/QNode>
+
+#include <QQueue>
+
+using namespace Qt3DCore;
+
QT_BEGIN_NAMESPACE
namespace Qt3DRender {
@@ -190,7 +196,10 @@ QFrameGraphNode::~QFrameGraphNode()
}
/*!
- Returns a pointer to the parent.
+ Returns a pointer to the parent frame graph node.
+
+ If the parent of this node is not a frame graph node,
+ this method will recursively look for a parent node that is a frame graph node.
*/
QFrameGraphNode *QFrameGraphNode::parentFrameGraphNode() const
{
@@ -205,6 +214,32 @@ QFrameGraphNode *QFrameGraphNode::parentFrameGraphNode() const
return parentFGNode;
}
+/*!
+ \internal
+ * Returns a list of the children that are frame graph nodes.
+ * If this function encounters a child node that is not a frame graph node,
+ * it will go through the children of the child node and look for frame graph nodes.
+ * If any of these are not frame graph nodes, they will be further searched as
+ * if they were direct children of this node.
+ */
+QVector<QFrameGraphNode *> QFrameGraphNodePrivate::childFrameGraphNodes() const
+{
+ Q_Q(const QFrameGraphNode);
+ QVector<QFrameGraphNode *> result;
+ QQueue<QNode *> queue;
+ queue.append(q->childNodes().toList());
+ result.reserve(queue.size());
+ while (!queue.isEmpty()) {
+ auto *child = queue.dequeue();
+ auto *childFGNode = qobject_cast<QFrameGraphNode *>(child);
+ if (childFGNode != nullptr)
+ result.push_back(childFGNode);
+ else
+ queue.append(child->childNodes().toList());
+ }
+ return result;
+}
+
/*! \internal */
QFrameGraphNode::QFrameGraphNode(QFrameGraphNodePrivate &dd, QNode *parent)
: QNode(dd, parent)
diff --git a/src/render/framegraph/qframegraphnode_p.h b/src/render/framegraph/qframegraphnode_p.h
index 00cc53626..c03017638 100644
--- a/src/render/framegraph/qframegraphnode_p.h
+++ b/src/render/framegraph/qframegraphnode_p.h
@@ -65,9 +65,12 @@ class QFrameGraphNodePrivate : public Qt3DCore::QNodePrivate
{
public:
QFrameGraphNodePrivate();
+ QVector<QFrameGraphNode *> childFrameGraphNodes() const;
+
+ static QFrameGraphNodePrivate *get(QFrameGraphNode *node) { return node->d_func(); }
+ static const QFrameGraphNodePrivate *get(const QFrameGraphNode *node) { return node->d_func(); }
Q_DECLARE_PUBLIC(QFrameGraphNode)
- QList<QFrameGraphNode *> m_fgChildren;
};
} // namespace Qt3DRender
diff --git a/src/render/framegraph/qframegraphnodecreatedchange.cpp b/src/render/framegraph/qframegraphnodecreatedchange.cpp
index ef51d5228..464c98bc3 100644
--- a/src/render/framegraph/qframegraphnodecreatedchange.cpp
+++ b/src/render/framegraph/qframegraphnodecreatedchange.cpp
@@ -36,7 +36,9 @@
#include "qframegraphnodecreatedchange.h"
#include "qframegraphnodecreatedchange_p.h"
+
#include <Qt3DRender/qframegraphnode.h>
+#include <Qt3DRender/private/qframegraphnode_p.h>
QT_BEGIN_NAMESPACE
@@ -45,6 +47,7 @@ namespace Qt3DRender {
QFrameGraphNodeCreatedChangeBasePrivate::QFrameGraphNodeCreatedChangeBasePrivate(const QFrameGraphNode *node)
: Qt3DCore::QNodeCreatedChangeBasePrivate(node)
, m_parentFrameGraphNodeId(Qt3DCore::qIdForNode(node->parentFrameGraphNode()))
+ , m_childFrameGraphNodeIds(Qt3DCore::qIdsForNodes(QFrameGraphNodePrivate::get(node)->childFrameGraphNodes()))
{
}
diff --git a/src/render/framegraph/qframegraphnodecreatedchange_p.h b/src/render/framegraph/qframegraphnodecreatedchange_p.h
index 9aa396b8f..c0437afc5 100644
--- a/src/render/framegraph/qframegraphnodecreatedchange_p.h
+++ b/src/render/framegraph/qframegraphnodecreatedchange_p.h
@@ -49,6 +49,7 @@
//
#include <Qt3DCore/private/qnodecreatedchange_p.h>
+#include <Qt3DRender/qframegraphnodecreatedchange.h>
QT_BEGIN_NAMESPACE
@@ -62,6 +63,16 @@ public:
QFrameGraphNodeCreatedChangeBasePrivate(const QFrameGraphNode *node);
Qt3DCore::QNodeId m_parentFrameGraphNodeId;
+ Qt3DCore::QNodeIdVector m_childFrameGraphNodeIds;
+
+ static QFrameGraphNodeCreatedChangeBasePrivate *get(QFrameGraphNodeCreatedChangeBase *change)
+ {
+ return change->d_func();
+ }
+ static const QFrameGraphNodeCreatedChangeBasePrivate *get(const QFrameGraphNodeCreatedChangeBase *change)
+ {
+ return change->d_func();
+ }
};
} // Qt3DRender
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 09cb75e46..ccec826ff 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -481,7 +481,7 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
// which should likely be renamed to something more generic or we introduce
// another synchronizing job for skeleton loading
const QVector<Render::HSkeleton> skeletonsToLoad =
- manager->skeletonManager()->dirtySkeletons(Render::SkeletonManager::SkeletonDataDirty);
+ manager->skeletonManager()->takeDirtySkeletons(Render::SkeletonManager::SkeletonDataDirty);
for (const auto &skeletonHandle : skeletonsToLoad) {
auto loadSkeletonJob = Render::LoadSkeletonJobPtr::create(skeletonHandle);
loadSkeletonJob->setNodeManagers(manager);
diff --git a/src/render/io/qsceneloader.cpp b/src/render/io/qsceneloader.cpp
index 70af313a2..f039933b0 100644
--- a/src/render/io/qsceneloader.cpp
+++ b/src/render/io/qsceneloader.cpp
@@ -81,7 +81,7 @@ namespace Qt3DRender {
Qt3DRender::QSceneLoader internally relies on the use of plugins to support a
wide variety of 3D file formats. \l
- {http://www.assimp.org/main_features_formats.html}{Here} is a list of formats
+ {http://assimp.sourceforge.net/main_features_formats.html}{Here} is a list of formats
that are supported by Qt3D.
\note this component shouldn't be shared among several Qt3DCore::QEntity instances.
diff --git a/src/render/materialsystem/qgraphicsapifilter_p.h b/src/render/materialsystem/qgraphicsapifilter_p.h
index 5a7d874ed..f4581ac05 100644
--- a/src/render/materialsystem/qgraphicsapifilter_p.h
+++ b/src/render/materialsystem/qgraphicsapifilter_p.h
@@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE
namespace Qt3DRender {
-struct Q_AUTOTEST_EXPORT GraphicsApiFilterData
+struct QT3DRENDERSHARED_PRIVATE_EXPORT GraphicsApiFilterData
{
GraphicsApiFilterData();
diff --git a/src/render/materialsystem/shaderbuilder_p.h b/src/render/materialsystem/shaderbuilder_p.h
index b76c8389f..e9378e3c5 100644
--- a/src/render/materialsystem/shaderbuilder_p.h
+++ b/src/render/materialsystem/shaderbuilder_p.h
@@ -61,7 +61,7 @@ namespace Qt3DRender {
namespace Render {
-class Q_AUTOTEST_EXPORT ShaderBuilder : public BackendNode
+class QT3DRENDERSHARED_PRIVATE_EXPORT ShaderBuilder : public BackendNode
{
public:
enum ShaderType {
diff --git a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp b/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp
index 1e2035c01..59b5701f8 100644
--- a/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp
+++ b/src/render/renderers/opengl/graphicshelpers/graphicscontext.cpp
@@ -226,7 +226,7 @@ QOpenGLShaderProgram *GraphicsContext::createShaderProgram(Shader *shaderNode)
const auto shaderCode = shaderNode->shaderCode();
QString logs;
for (int i = QShaderProgram::Vertex; i <= QShaderProgram::Compute; ++i) {
- const QShaderProgram::ShaderType type = static_cast<const QShaderProgram::ShaderType>(i);
+ const QShaderProgram::ShaderType type = static_cast<QShaderProgram::ShaderType>(i);
if (!shaderCode.at(i).isEmpty()) {
// Note: logs only return the error but not all the shader code
// we could append it
diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp b/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
index 26ee94305..d9077976c 100644
--- a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
+++ b/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
@@ -76,6 +76,7 @@
#include <Qt3DRender/private/graphicshelperes2_p.h>
#include <Qt3DRender/private/graphicshelperes3_p.h>
+#include <private/qdebug_p.h>
#include <QSurface>
#include <QWindow>
#include <QOpenGLTexture>
@@ -707,8 +708,10 @@ QImage SubmissionContext::readFramebuffer(const QRect &rect)
break;
#endif
default:
- // unsupported format
- Q_UNREACHABLE();
+ auto warning = qWarning();
+ warning << "Unable to convert";
+ QtDebugUtils::formatQEnum(warning, m_renderTargetFormat);
+ warning << "render target texture format to QImage.";
return img;
}
diff --git a/src/render/renderers/opengl/renderer/renderer.cpp b/src/render/renderers/opengl/renderer/renderer.cpp
index 8039b6412..8b98c658c 100644
--- a/src/render/renderers/opengl/renderer/renderer.cpp
+++ b/src/render/renderers/opengl/renderer/renderer.cpp
@@ -244,11 +244,9 @@ Renderer::Renderer(QRenderAspect::RenderType type)
Renderer::~Renderer()
{
- // If using a threaded rendering approach, tell the thread to exit
- // and wait for it to be done
- m_running.fetchAndStoreOrdered(0);
+ Q_ASSERT(m_running.fetchAndStoreOrdered(0) == 0);
if (m_renderThread)
- m_renderThread->wait();
+ Q_ASSERT(m_renderThread->isFinished());
delete m_renderQueue;
delete m_defaultRenderStateSet;
diff --git a/src/render/renderers/opengl/textures/gltexture.cpp b/src/render/renderers/opengl/textures/gltexture.cpp
index e98f3965d..cb83e9c1e 100644
--- a/src/render/renderers/opengl/textures/gltexture.cpp
+++ b/src/render/renderers/opengl/textures/gltexture.cpp
@@ -40,6 +40,7 @@
#include <QtCore/qhash.h>
#include "gltexture_p.h"
+#include <private/qdebug_p.h>
#include <QDebug>
#include <QOpenGLFunctions>
#include <QOpenGLTexture>
@@ -383,7 +384,9 @@ QOpenGLTexture *GLTexture::buildGLTexture()
format = QAbstractTexture::DepthFormat;
break;
default:
- qWarning() << Q_FUNC_INFO << "could not find a matching OpenGL ES 2.0 unsized texture format";
+ auto warning = qWarning();
+ warning << "Could not find a matching OpenGL ES 2.0 texture format:";
+ QtDebugUtils::formatQEnum(warning, m_properties.format);
break;
}
}
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 6bb3597ea..971edcb39 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -3,7 +3,8 @@ TEMPLATE = subdirs
SUBDIRS = \
coretest \
core \
- cmake
+ cmake \
+ global
installed_cmake.depends = cmake
diff --git a/tests/auto/core/qentity/tst_qentity.cpp b/tests/auto/core/qentity/tst_qentity.cpp
index efebb26ef..e27cd1fc9 100644
--- a/tests/auto/core/qentity/tst_qentity.cpp
+++ b/tests/auto/core/qentity/tst_qentity.cpp
@@ -556,30 +556,55 @@ void tst_Entity::removeSeveralTimesSameComponent()
void tst_Entity::checkCloning_data()
{
QTest::addColumn<Qt3DCore::QEntity *>("entity");
+ QTest::addColumn<QVector<QNodeId>>("childEntityIds");
+ QTest::addColumn<int>("creationChangeCount");
- QTest::newRow("defaultConstructed") << new MyEntity();
+ {
+ QTest::newRow("defaultConstructed") << new MyEntity() << QVector<QNodeId>() << 1;
+ }
+
+ {
+ Qt3DCore::QEntity *entityWithComponents = new MyEntity();
+ Qt3DCore::QComponent *component1 = new MyQComponent();
+ Qt3DCore::QComponent *component2 = new MyQComponent();
+ Qt3DCore::QComponent *component3 = new MyQComponent();
+ entityWithComponents->addComponent(component1);
+ entityWithComponents->addComponent(component2);
+ entityWithComponents->addComponent(component3);
+ QTest::newRow("entityWithComponents") << entityWithComponents << QVector<QNodeId>() << 4;
+ }
- Qt3DCore::QEntity *entityWithComponents = new MyEntity();
- Qt3DCore::QComponent *component1 = new MyQComponent();
- Qt3DCore::QComponent *component2 = new MyQComponent();
- Qt3DCore::QComponent *component3 = new MyQComponent();
- entityWithComponents->addComponent(component1);
- entityWithComponents->addComponent(component2);
- entityWithComponents->addComponent(component3);
- QTest::newRow("entityWithComponents") << entityWithComponents;
+ {
+ Qt3DCore::QEntity *entityWithChildren = new MyEntity();
+ Qt3DCore::QEntity *child1 = new MyEntity(entityWithChildren);
+ Qt3DCore::QEntity *child2 = new MyEntity(entityWithChildren);
+ QVector<QNodeId> childIds = {child1->id(), child2->id()};
+ QTest::newRow("entityWithChildren") << entityWithChildren << childIds << 3;
+ }
+
+ {
+ Qt3DCore::QEntity *entityWithNestedChildren = new MyEntity();
+ Qt3DCore::QEntity *child = new MyEntity(entityWithNestedChildren);
+ Qt3DCore::QNode *dummy = new Qt3DCore::QNode(entityWithNestedChildren);
+ Qt3DCore::QEntity *grandChild = new MyEntity(entityWithNestedChildren);
+ QVector<QNodeId> childIds = {child->id(), grandChild->id()};
+ QTest::newRow("entityWithNestedChildren") << entityWithNestedChildren << childIds << 4;
+ }
}
void tst_Entity::checkCloning()
{
// GIVEN
QFETCH(Qt3DCore::QEntity *, entity);
+ QFETCH(QVector<QNodeId>, childEntityIds);
+ QFETCH(int, creationChangeCount);
// WHEN
Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(entity);
QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges();
// THEN
- QCOMPARE(creationChanges.size(), 1 + entity->components().size());
+ QCOMPARE(creationChanges.size(), creationChangeCount);
const Qt3DCore::QNodeCreatedChangePtr<Qt3DCore::QEntityData> creationChangeData =
qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DCore::QEntityData>>(creationChanges.first());
@@ -591,6 +616,7 @@ void tst_Entity::checkCloning()
QCOMPARE(creationChangeData->metaObject(), entity->metaObject());
QCOMPARE(creationChangeData->parentId(), entity->parentNode() ? entity->parentNode()->id() : Qt3DCore::QNodeId());
QCOMPARE(cloneData.parentEntityId, entity->parentEntity() ? entity->parentEntity()->id() : Qt3DCore::QNodeId());
+ QCOMPARE(cloneData.childEntityIds, childEntityIds);
QCOMPARE(cloneData.componentIdsAndTypes.size(), entity->components().size());
const QVector<Qt3DCore::QComponent *> &components = entity->components();
diff --git a/tests/auto/global/aspects_startup_shutdown/aspects_startup_shutdown.pro b/tests/auto/global/aspects_startup_shutdown/aspects_startup_shutdown.pro
new file mode 100644
index 000000000..0319ae1c3
--- /dev/null
+++ b/tests/auto/global/aspects_startup_shutdown/aspects_startup_shutdown.pro
@@ -0,0 +1,7 @@
+TARGET = tst_aspects_startup_shutdown
+CONFIG += testcase
+TEMPLATE = app
+
+SOURCES += tst_aspects_startup_shutdown.cpp
+
+QT += testlib 3dcore 3drender 3dinput 3dextras
diff --git a/tests/auto/global/aspects_startup_shutdown/tst_aspects_startup_shutdown.cpp b/tests/auto/global/aspects_startup_shutdown/tst_aspects_startup_shutdown.cpp
new file mode 100644
index 000000000..9eec010be
--- /dev/null
+++ b/tests/auto/global/aspects_startup_shutdown/tst_aspects_startup_shutdown.cpp
@@ -0,0 +1,210 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+
+#include <Qt3DCore/QEntity>
+#include <Qt3DCore/QTransform>
+#include <Qt3DCore/QAspectEngine>
+
+#include <Qt3DInput/QInputAspect>
+#include <Qt3DInput/QInputSettings>
+
+#include <Qt3DLogic/QLogicAspect>
+
+#include <Qt3DRender/QCamera>
+#include <Qt3DRender/QCameraLens>
+#include <Qt3DRender/QRenderAspect>
+#include <Qt3DRender/QRenderSettings>
+
+#include <Qt3DExtras/QForwardRenderer>
+#include <Qt3DExtras/Qt3DWindow>
+#include <Qt3DExtras/QPhongMaterial>
+#include <Qt3DExtras/QSphereMesh>
+#include <Qt3DExtras/QTorusMesh>
+
+#include <QPropertyAnimation>
+
+namespace {
+
+Qt3DCore::QEntity *createScene(QWindow *w)
+{
+ // Root entity
+ Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity;
+
+ // Camera
+ Qt3DRender::QCamera *camera = new Qt3DRender::QCamera(rootEntity);
+ camera->lens()->setPerspectiveProjection(45.0f, 16.0f/9.0f, 0.1f, 1000.0f);
+ camera->setPosition(QVector3D(0, 0, 40.0f));
+ camera->setViewCenter(QVector3D(0, 0, 0));
+
+ // FrameGraph
+ Qt3DRender::QRenderSettings *renderSettings = new Qt3DRender::QRenderSettings();
+ Qt3DExtras::QForwardRenderer *forwardRenderer = new Qt3DExtras::QForwardRenderer();
+ forwardRenderer->setSurface(w);
+ forwardRenderer->setCamera(camera);
+ forwardRenderer->setClearColor(QColor(Qt::blue));
+ renderSettings->setActiveFrameGraph(forwardRenderer);
+ rootEntity->addComponent(renderSettings);
+
+ // InputSettings
+ Qt3DInput::QInputSettings *inputSettigns = new Qt3DInput::QInputSettings();
+ rootEntity->addComponent(inputSettigns);
+
+ // Material
+ Qt3DRender::QMaterial *material = new Qt3DExtras::QPhongMaterial(rootEntity);
+
+ // Torus
+ Qt3DCore::QEntity *torusEntity = new Qt3DCore::QEntity(rootEntity);
+ Qt3DExtras::QTorusMesh *torusMesh = new Qt3DExtras::QTorusMesh;
+ torusMesh->setRadius(5);
+ torusMesh->setMinorRadius(1);
+ torusMesh->setRings(100);
+ torusMesh->setSlices(20);
+
+ Qt3DCore::QTransform *torusTransform = new Qt3DCore::QTransform;
+ torusTransform->setScale3D(QVector3D(1.5, 1, 0.5));
+ torusTransform->setRotation(QQuaternion::fromAxisAndAngle(QVector3D(1, 0, 0), 45.0f));
+
+ torusEntity->addComponent(torusMesh);
+ torusEntity->addComponent(torusTransform);
+ torusEntity->addComponent(material);
+
+ // Sphere
+ Qt3DCore::QEntity *sphereEntity = new Qt3DCore::QEntity(rootEntity);
+ Qt3DExtras::QSphereMesh *sphereMesh = new Qt3DExtras::QSphereMesh;
+ sphereMesh->setRadius(3);
+
+ Qt3DCore::QTransform *sphereTransform = new Qt3DCore::QTransform;
+
+ sphereEntity->addComponent(sphereMesh);
+ sphereEntity->addComponent(sphereTransform);
+ sphereEntity->addComponent(material);
+
+ return rootEntity;
+}
+
+} // anonymous
+
+class tst_AspectsStartupShutdown : public QObject
+{
+ Q_OBJECT
+
+public:
+
+private slots:
+
+ void checkStartupAndShutdownImmediately()
+ {
+ // GIVEN
+ QWindow *win = new QWindow();
+ win->setSurfaceType(QSurface::OpenGLSurface);
+ win->resize(1024, 768);
+ win->show();
+
+ // WHEN
+ Qt3DCore::QAspectEngine *engine = new Qt3DCore::QAspectEngine();
+ engine->registerAspect(new Qt3DRender::QRenderAspect());
+ engine->registerAspect(new Qt3DInput::QInputAspect());
+ engine->registerAspect(new Qt3DLogic::QLogicAspect());
+ QPointer<Qt3DCore::QEntity> scene = createScene(win);
+ engine->setRootEntity(Qt3DCore::QEntityPtr(scene.data()));
+
+ // THEN
+ QCOMPARE(engine->rootEntity().data(), scene.data());
+
+ // WHEN
+ win->close();
+ delete engine;
+
+ // THEN -> shouldn't crash or deadlock
+ delete win;
+ }
+
+ void checkStartupAndShutdownAfterAFewFrames()
+ {
+ // GIVEN
+ QWindow *win = new QWindow();
+ win->setSurfaceType(QSurface::OpenGLSurface);
+ win->resize(1024, 768);
+ win->show();
+
+ // WHEN
+ Qt3DCore::QAspectEngine *engine = new Qt3DCore::QAspectEngine();
+ engine->registerAspect(new Qt3DRender::QRenderAspect());
+ engine->registerAspect(new Qt3DInput::QInputAspect());
+ engine->registerAspect(new Qt3DLogic::QLogicAspect());
+ QPointer<Qt3DCore::QEntity> scene = createScene(win);
+ engine->setRootEntity(Qt3DCore::QEntityPtr(scene.data()));
+
+ // THEN
+ QCOMPARE(engine->rootEntity().data(), scene.data());
+
+ // Allow a few frames
+ for (int i = 0; i < 10; ++i) {
+ QCoreApplication::processEvents();
+ QThread::msleep(16);
+ }
+
+ // WHEN
+ // Right now we need to close the window before destroying
+ // the engine to prevent the render thread from trying to render
+ // while things are being destroyed
+ win->close();
+ delete engine;
+
+ // THEN -> shouldn't crash or deadlock
+ delete win;
+ }
+};
+
+QTEST_MAIN(tst_AspectsStartupShutdown)
+
+#include "tst_aspects_startup_shutdown.moc"
diff --git a/tests/auto/global/global.pro b/tests/auto/global/global.pro
new file mode 100644
index 000000000..7fca20c44
--- /dev/null
+++ b/tests/auto/global/global.pro
@@ -0,0 +1,8 @@
+TEMPLATE = subdirs
+
+QT_FOR_CONFIG += 3dcore
+
+qtConfig(qt3d-render):qtConfig(qt3d-input):qtConfig(qt3d-extras):qtConfig(qt3d-render):qtConfig(qt3d-logic) {
+ SUBDIRS += \
+ aspects_startup_shutdown
+}
diff --git a/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp b/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp
index 626f7811e..7a199e9e6 100644
--- a/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp
+++ b/tests/auto/render/filtercompatibletechniquejob/tst_filtercompatibletechniquejob.cpp
@@ -190,6 +190,8 @@ private Q_SLOTS:
// THEN
QCOMPARE(backendFilterCompatibleTechniqueJob.manager(), &techniqueManager);
QCOMPARE(backendFilterCompatibleTechniqueJob.renderer(), &renderer);
+
+ renderer.shutdown();
}
void checkRunRendererRunning()
diff --git a/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp b/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp
index b06da033c..1e19d8609 100644
--- a/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp
+++ b/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp
@@ -35,6 +35,8 @@
#include <Qt3DRender/qframegraphnode.h>
#include <Qt3DRender/private/qframegraphnode_p.h>
#include <Qt3DRender/qframegraphnodecreatedchange.h>
+#include <Qt3DRender/private/qframegraphnodecreatedchange_p.h>
+
#include "testpostmanarbiter.h"
class MyFrameGraphNode : public Qt3DRender::QFrameGraphNode
@@ -64,21 +66,48 @@ private Q_SLOTS:
void checkCloning_data()
{
QTest::addColumn<Qt3DRender::QFrameGraphNode *>("frameGraphNode");
+ QTest::addColumn<QVector<Qt3DCore::QNodeId>>("childFrameGraphNodeIds");
QTest::addColumn<bool>("enabled");
+ QTest::addColumn<int>("creationChangeCount");
+
+ QVector<Qt3DCore::QNodeId> noChildIds;
+
+ {
+ Qt3DRender::QFrameGraphNode *defaultConstructed = new MyFrameGraphNode();
+ QTest::newRow("defaultConstructed") << defaultConstructed << noChildIds << true << 1;
+ }
+
+ {
+ Qt3DRender::QFrameGraphNode *disabledFrameGraphNode = new MyFrameGraphNode();
+ disabledFrameGraphNode->setEnabled(false);
+ QTest::newRow("allBuffers") << disabledFrameGraphNode << noChildIds << false << 1;
+ }
- Qt3DRender::QFrameGraphNode *defaultConstructed = new MyFrameGraphNode();
- QTest::newRow("defaultConstructed") << defaultConstructed << true;
+ {
+ Qt3DRender::QFrameGraphNode *nodeWithChildren = new MyFrameGraphNode();
+ Qt3DRender::QFrameGraphNode *child1 = new MyFrameGraphNode(nodeWithChildren);
+ Qt3DRender::QFrameGraphNode *child2 = new MyFrameGraphNode(nodeWithChildren);
+ QVector<Qt3DCore::QNodeId> childIds = {child1->id(), child2->id()};
+ QTest::newRow("nodeWithChildren") << nodeWithChildren << childIds << true << 3;
+ }
- Qt3DRender::QFrameGraphNode *disabledFrameGraphNode = new MyFrameGraphNode();
- disabledFrameGraphNode->setEnabled(false);
- QTest::newRow("allBuffers") << disabledFrameGraphNode << false;
+ {
+ Qt3DRender::QFrameGraphNode *nodeWithNestedChildren = new MyFrameGraphNode();
+ Qt3DRender::QFrameGraphNode *child = new MyFrameGraphNode(nodeWithNestedChildren);
+ Qt3DCore::QNode *dummy = new Qt3DCore::QNode(nodeWithNestedChildren);
+ Qt3DRender::QFrameGraphNode *grandChild = new MyFrameGraphNode(nodeWithNestedChildren);
+ QVector<Qt3DCore::QNodeId> childIds = {child->id(), grandChild->id()};
+ QTest::newRow("nodeWithNestedChildren") << nodeWithNestedChildren << childIds << true << 4;
+ }
}
void checkCloning()
{
// GIVEN
QFETCH(Qt3DRender::QFrameGraphNode *, frameGraphNode);
+ QFETCH(QVector<Qt3DCore::QNodeId>, childFrameGraphNodeIds);
QFETCH(bool, enabled);
+ QFETCH(int, creationChangeCount);
// THEN
QCOMPARE(frameGraphNode->isEnabled(), enabled);
@@ -88,7 +117,7 @@ private Q_SLOTS:
QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges();
// THEN
- QCOMPARE(creationChanges.size(), 1);
+ QCOMPARE(creationChanges.size(), creationChangeCount);
const Qt3DCore::QNodeCreatedChangeBasePtr creationChangeData = creationChanges.first();
// THEN
@@ -96,6 +125,12 @@ private Q_SLOTS:
QCOMPARE(frameGraphNode->isEnabled(), creationChangeData->isNodeEnabled());
QCOMPARE(frameGraphNode->metaObject(), creationChangeData->metaObject());
+ // THEN
+ Qt3DRender::QFrameGraphNodeCreatedChangeBasePtr frameGraphNodeCreatedChange = qSharedPointerCast<Qt3DRender::QFrameGraphNodeCreatedChangeBase>(creationChangeData);
+ Qt3DRender::QFrameGraphNodeCreatedChangeBasePrivate *creationChangeDataPrivate = Qt3DRender::QFrameGraphNodeCreatedChangeBasePrivate::get(frameGraphNodeCreatedChange.get());
+ QCOMPARE(creationChangeDataPrivate->m_parentFrameGraphNodeId, frameGraphNode->parentNode() ? frameGraphNode->parentNode()->id() : Qt3DCore::QNodeId());
+ QCOMPARE(creationChangeDataPrivate->m_childFrameGraphNodeIds, childFrameGraphNodeIds);
+
delete frameGraphNode;
}
diff --git a/tests/auto/render/sendrendercapturejob/tst_sendrendercapturejob.cpp b/tests/auto/render/sendrendercapturejob/tst_sendrendercapturejob.cpp
index 9cd2054d6..53a646ccd 100644
--- a/tests/auto/render/sendrendercapturejob/tst_sendrendercapturejob.cpp
+++ b/tests/auto/render/sendrendercapturejob/tst_sendrendercapturejob.cpp
@@ -76,6 +76,7 @@ private Q_SLOTS:
QCOMPARE(data.data()->image.format(), QImage::Format_ARGB32);
// renderCapture will be deallocated by the nodeManagers destructor
+ renderer.shutdown();
}
};
diff --git a/tests/auto/render/textures/tst_textures.cpp b/tests/auto/render/textures/tst_textures.cpp
index f1b72b33b..8bd4b355c 100644
--- a/tests/auto/render/textures/tst_textures.cpp
+++ b/tests/auto/render/textures/tst_textures.cpp
@@ -211,6 +211,8 @@ private Q_SLOTS:
// THEN
QCOMPARE(mgrs->glTextureManager()->lookupResource(bt1a->peerId()), mgrs->glTextureManager()->lookupResource(bt1b->peerId()));
+
+ renderer.shutdown();
}
void shouldCreateDifferentGLTexturess()
@@ -264,6 +266,8 @@ private Q_SLOTS:
QCOMPARE(glTextures[0]->properties(), glTextures[2]->properties());
QCOMPARE(glTextures[1]->properties(), glTextures[3]->properties());
QVERIFY(glTextures[0]->properties() != glTextures[1]->properties());
+
+ renderer.shutdown();
}
void generatorsShouldCreateSameData()
@@ -334,6 +338,8 @@ private Q_SLOTS:
QCOMPARE(texDataMgr->getData(tg1a), texDataMgr->getData(tg1b));
QVERIFY(texDataMgr->getData(tg1a) != texDataMgr->getData(tg2));
+
+ renderer.shutdown();
}
void checkTextureImageInitialState()
@@ -538,6 +544,8 @@ private Q_SLOTS:
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
backendImage.unsetDirty();
}
+
+ renderer.shutdown();
}
void checkTextureImageProperlyReleaseGenerator()
@@ -601,6 +609,8 @@ private Q_SLOTS:
QCOMPARE(texImgDataMgr->pendingGenerators().size(), 0);
QVERIFY(texImgDataMgr->getData(frontendGenerator).isNull());
QVERIFY(texImgDataMgr->getData(backendGenerator).isNull());
+
+ renderer.shutdown();
}
void checkTextureIsMarkedForDeletion()
@@ -632,6 +642,8 @@ private Q_SLOTS:
QCOMPARE(texMgr->textureIdsToCleanup().size(), 1);
QCOMPARE(texMgr->textureIdsToCleanup().first(), frontendTexture->id());
QVERIFY(texMgr->lookupResource(frontendTexture->id()) == nullptr);
+
+ renderer.shutdown();
}
void checkTextureDestructionReconstructionWithinSameLoop()
@@ -666,6 +678,8 @@ private Q_SLOTS:
QVERIFY(backendTexture != nullptr);
QCOMPARE(texMgr->textureIdsToCleanup().size(), 0);
QCOMPARE(texMgr->lookupResource(frontendTexture->id()), backendTexture);
+
+ renderer.shutdown();
}
void checkTextureImageDirtinessPropagatesToTextures()
@@ -777,6 +791,8 @@ private Q_SLOTS:
QVERIFY(backendTexture1->dirtyFlags() == Qt3DRender::Render::Texture::NotDirty);
QVERIFY(backendTexture2->dirtyFlags() & Qt3DRender::Render::Texture::DirtyImageGenerators);
QVERIFY(backendTexture3->dirtyFlags() & Qt3DRender::Render::Texture::DirtyImageGenerators);
+
+ renderer.shutdown();
}
};
diff --git a/tests/manual/dynamic-model-loader-qml/main.qml b/tests/manual/dynamic-model-loader-qml/main.qml
index 72d0529b8..dc6b929cf 100644
--- a/tests/manual/dynamic-model-loader-qml/main.qml
+++ b/tests/manual/dynamic-model-loader-qml/main.qml
@@ -49,7 +49,7 @@
****************************************************************************/
import QtQuick 2.2 as QQ2
-import Qt3D.Core 2.0
+import Qt3D.Core 2.12
import Qt3D.Render 2.0
import Qt3D.Input 2.0
import Qt3D.Extras 2.0
@@ -81,44 +81,27 @@ Entity {
InputSettings { }
]
-
- PhongMaterial {
- id: material
- diffuse: "yellow"
- }
-
- TorusMesh {
- id: torusMesh
- radius: 5
- minorRadius: 1
- rings: 100
- slices: 20
- }
-
- Transform {
- id: torusTransform
- scale3D: Qt.vector3d(1.5, 1, 0.5)
- rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
- }
-
- Entity {
- id: torusEntity
- components: [ torusMesh, material, torusTransform ]
- }
-
QQ2.Timer {
+ id: timer
interval: 1000
running: true
repeat: true
property bool addMore: true
+ property bool odd: false
onTriggered: {
if (instantiator.model > 10 || instantiator.model < 2)
addMore = !addMore
instantiator.model += (addMore ? 1 : -1)
+ odd = !odd
}
}
+ PhongMaterial {
+ id: material
+ diffuse: "yellow"
+ }
+
NodeInstantiator {
id: instantiator
model: 2
@@ -135,6 +118,46 @@ Entity {
}
source: model.index % 2 === 0 ? "qrc:/CuboidEntity.qml" : "qrc:/SphereEntity.qml"
}
+ }
+
+
+ EntityLoader {
+ sourceComponent: timer.odd ? cylEntityCmp : torusEntityCmp
+ }
+
+ QQ2.Component {
+ id: cylEntityCmp
+ Entity {
+ CylinderMesh {
+ id: cylMesh
+ }
+ PhongMaterial {
+ id: phong
+ }
+ components: [cylMesh, phong]
+ }
}
+
+ QQ2.Component {
+ id: torusEntityCmp
+ Entity {
+ TorusMesh {
+ id: torusMesh
+ radius: 5
+ minorRadius: 1
+ rings: 100
+ slices: 20
+ }
+
+ Transform {
+ id: torusTransform
+ scale3D: Qt.vector3d(1.5, 1, 0.5)
+ rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45)
+ }
+
+ components: [ torusMesh, material, torusTransform ]
+ }
+ }
+
}