Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
plugin.cpp
Go to the documentation of this file.
1
// Copyright (C) 2019 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
6
#
include
<
QtQml
/
qqmlextensionplugin
.
h
>
7
#
include
<
QtQml
/
qqml
.
h
>
8
#
include
<
QtQuick3D
/
qquick3dobject
.
h
>
9
10
#
include
<
QtQuick3D
/
private
/
qquick3dcamera_p
.
h
>
11
#
include
<
QtQuick3D
/
private
/
qquick3dperspectivecamera_p
.
h
>
12
#
include
<
QtQuick3D
/
private
/
qquick3dorthographiccamera_p
.
h
>
13
#
include
<
QtQuick3D
/
private
/
qquick3dfrustumcamera_p
.
h
>
14
#
include
<
QtQuick3D
/
private
/
qquick3dcustomcamera_p
.
h
>
15
16
#
include
<
QtQuick3D
/
private
/
qquick3ddefaultmaterial_p
.
h
>
17
#
include
<
QtQuick3D
/
private
/
qquick3dtexture_p
.
h
>
18
#
include
<
QtQuick3D
/
private
/
qquick3ddirectionallight_p
.
h
>
19
#
include
<
QtQuick3D
/
private
/
qquick3dpointlight_p
.
h
>
20
#
include
<
QtQuick3D
/
private
/
qquick3dspotlight_p
.
h
>
21
#
include
<
QtQuick3D
/
private
/
qquick3dmaterial_p
.
h
>
22
#
include
<
QtQuick3D
/
private
/
qquick3dmodel_p
.
h
>
23
#
include
<
QtQuick3D
/
private
/
qquick3dskeleton_p
.
h
>
24
#
include
<
QtQuick3D
/
private
/
qquick3djoint_p
.
h
>
25
#
include
<
QtQuick3D
/
private
/
qquick3dmorphtarget_p
.
h
>
26
#
include
<
QtQuick3D
/
private
/
qquick3dnode_p
.
h
>
27
#
include
<
QtQuick3D
/
private
/
qquick3dviewport_p
.
h
>
28
#
include
<
QtQuick3D
/
private
/
qquick3dsceneenvironment_p
.
h
>
29
#
include
<
QtQuick3D
/
private
/
qquick3dpickresult_p
.
h
>
30
#
include
<
QtQuick3D
/
private
/
qquick3drepeater_p
.
h
>
31
#
include
<
QtQuick3D
/
private
/
qquick3dloader_p
.
h
>
32
#
include
<
QtQuick3D
/
private
/
qquick3dprincipledmaterial_p
.
h
>
33
#
include
<
QtQuick3D
/
private
/
qquick3drenderstats_p
.
h
>
34
#
include
<
QtQuick3D
/
private
/
qquick3dgeometry_p
.
h
>
35
#
include
<
QtQuick3D
/
private
/
qquick3dquaternionutils_p
.
h
>
36
#
include
<
QtQuick3D
/
private
/
qquick3dquaternionanimation_p
.
h
>
37
#
include
<
QtQuick3D
/
private
/
qquick3dtexturedata_p
.
h
>
38
#
include
<
QtQuick3D
/
private
/
qquick3dreflectionprobe_p
.
h
>
39
#
include
<
QtQuick3D
/
private
/
qquick3dbakedlightmap_p
.
h
>
40
#
include
<
QtQuick3D
/
private
/
qquick3dlightmapper_p
.
h
>
41
42
#
include
<
private
/
qqmlglobal_p
.
h
>
43
44
45
static
void
initResources
()
46
{
47
#
ifdef
QT_STATIC
48
Q_INIT_RESOURCE(qmake_QtQuick3D);
49
Q_INIT_RESOURCE(res);
50
#
endif
51
}
52
53
QT_BEGIN_NAMESPACE
54
55
Q_GHS_KEEP_REFERENCE
(
qml_register_types_QtQuick3D
);
56
57
static
QQmlPrivate
::
AutoParentResult
qquick3dobject_autoParent
(QObject *obj, QObject *parent)
58
{
59
// When setting a parent (especially during dynamic object creation) in QML,
60
// also try to set up the analogous item/window relationship.
61
if
(QQuick3DObject *parentItem = qmlobject_cast<QQuick3DObject *>(parent)) {
62
QQuick3DObject *item = qmlobject_cast<QQuick3DObject *>(obj);
63
if
(item) {
64
// An Item has another Item
65
item->setParentItem(parentItem);
66
return
QQmlPrivate::Parented;
67
}
68
return
QQmlPrivate::IncompatibleObject;
69
}
else
if
(qmlobject_cast<QQuick3DObject *>(obj)) {
70
return
QQmlPrivate::IncompatibleParent;
71
}
72
return
QQmlPrivate::IncompatibleObject;
73
}
74
75
static
void
qt_quick3d_defineModule
()
76
{
77
QQmlPrivate::RegisterAutoParent autoparent = { 0, &qquick3dobject_autoParent };
78
QQmlPrivate::qmlregister(QQmlPrivate::AutoParentRegistration, &autoparent);
79
80
qRegisterMetaType<QQuick3DPickResult>();
81
qRegisterMetaType<QQuick3DRenderStats *>();
82
qRegisterMetaType<QQuick3DBounds3>();
83
84
}
85
86
class
QQuick3DPlugin
:
public
QQmlEngineExtensionPlugin
87
{
88
Q_OBJECT
89
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
90
91
public
:
92
QQuick3DPlugin
(
QObject
*
parent
=
nullptr
) :
QQmlEngineExtensionPlugin
(
parent
)
93
{
94
volatile
auto
registration
= &
qml_register_types_QtQuick3D
;
95
Q_UNUSED
(
registration
);
96
qt_quick3d_defineModule
();
97
initResources
();
98
}
99
};
100
101
QT_END_NAMESPACE
102
103
#
include
"plugin.moc"
QQuick3DPlugin
Definition
plugin.cpp:87
initResources
static void initResources()
Definition
plugin.cpp:45
qquick3dobject_autoParent
static QQmlPrivate::AutoParentResult qquick3dobject_autoParent(QObject *obj, QObject *parent)
Definition
plugin.cpp:57
qt_quick3d_defineModule
static void qt_quick3d_defineModule()
Definition
plugin.cpp:75
Q_GHS_KEEP_REFERENCE
QT_BEGIN_NAMESPACE Q_GHS_KEEP_REFERENCE(qml_register_types_QtQuick)
qtquick3d
src
quick3d
plugin.cpp
Generated on
for Qt by
1.18.0