aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/3d/simple3d.py164
-rw-r--r--sources/pyside2/CMakeLists.txt3
-rw-r--r--sources/pyside2/PySide2/Qt3DAnimation/CMakeLists.txt55
-rw-r--r--sources/pyside2/PySide2/Qt3DAnimation/typesystem_3danimation.xml70
-rw-r--r--sources/pyside2/PySide2/Qt3DCore/CMakeLists.txt74
-rw-r--r--sources/pyside2/PySide2/Qt3DCore/typesystem_3dcore.xml90
-rw-r--r--sources/pyside2/PySide2/Qt3DExtras/CMakeLists.txt81
-rw-r--r--sources/pyside2/PySide2/Qt3DExtras/typesystem_3dextras.xml86
-rw-r--r--sources/pyside2/PySide2/Qt3DInput/CMakeLists.txt56
-rw-r--r--sources/pyside2/PySide2/Qt3DInput/typesystem_3dinput.xml85
-rw-r--r--sources/pyside2/PySide2/Qt3DLogic/CMakeLists.txt37
-rw-r--r--sources/pyside2/PySide2/Qt3DLogic/typesystem_3dlogic.xml49
-rw-r--r--sources/pyside2/PySide2/Qt3DRender/CMakeLists.txt147
-rw-r--r--sources/pyside2/PySide2/Qt3DRender/typesystem_3drender.xml243
-rw-r--r--sources/pyside2/PySide2/QtCore/typesystem_core_common.xml2
-rw-r--r--sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml2
-rw-r--r--sources/pyside2/tests/Qt3DAnimation/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/Qt3DCore/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/Qt3DExtras/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/Qt3DExtras/qt3dextras_test.py154
-rw-r--r--sources/pyside2/tests/Qt3DInput/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/Qt3DLogic/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/Qt3DQuick/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/Qt3DRender/CMakeLists.txt1
24 files changed, 1405 insertions, 0 deletions
diff --git a/examples/3d/simple3d.py b/examples/3d/simple3d.py
new file mode 100644
index 000000000..a34d19821
--- /dev/null
+++ b/examples/3d/simple3d.py
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+
+#############################################################################
+##
+## Copyright (C) 2018 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the PySide examples of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:BSD$
+## 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$
+##
+#############################################################################
+
+"""PySide2 port of the qt3d/simple-cpp example from Qt v5.x"""
+
+import sys
+from PySide2.QtCore import(Property, QObject, QPropertyAnimation, Signal, Slot)
+from PySide2.QtGui import (QGuiApplication, QMatrix4x4, QQuaternion, QVector3D, QWindow)
+from PySide2.Qt3DCore import (Qt3DCore)
+from PySide2.Qt3DRender import (Qt3DRender)
+from PySide2.Qt3DExtras import (Qt3DExtras)
+
+class OrbitTransformController(QObject):
+ def __init__(self, parent):
+ super(OrbitTransformController, self).__init__(parent)
+ self._target = None
+ self._matrix = QMatrix4x4()
+ self._radius = 1
+ self._angle = 0
+
+ def setTarget(self, t):
+ self._target = t
+
+ def getTarget(self):
+ return self._target
+
+ def setRadius(self, radius):
+ if self._radius != radius:
+ self._radius = radius
+ self.updateMatrix()
+ self.radiusChanged.emit()
+
+ def getRadius(self):
+ return self._radius
+
+ def setAngle(self, angle):
+ if self._angle != angle:
+ self._angle = angle
+ self.updateMatrix()
+ self.angleChanged.emit()
+
+ def getAngle(self):
+ return self._angle
+
+ def updateMatrix(self):
+ self._matrix.setToIdentity();
+ self._matrix.rotate(self._angle, QVector3D(0, 1, 0))
+ self._matrix.translate(self._radius, 0, 0)
+ if self._target is not None:
+ self._target.setMatrix(self._matrix)
+
+ angleChanged = Signal()
+ radiusChanged = Signal()
+ angle = Property(float, getAngle, setAngle, notify=angleChanged)
+ radius = Property(float, getRadius, setRadius, notify=radiusChanged)
+
+class Window(Qt3DExtras.Qt3DWindow):
+ def __init__(self):
+ super(Window, self).__init__()
+
+ # Camera
+ self.camera().lens().setPerspectiveProjection(45, 16 / 9, 0.1, 1000)
+ self.camera().setPosition(QVector3D(0, 0, 40))
+ self.camera().setViewCenter(QVector3D(0, 0, 0))
+
+ # For camera controls
+ self.createScene()
+ self.camController = Qt3DExtras.QOrbitCameraController(self.rootEntity)
+ self.camController.setLinearSpeed(50)
+ self.camController.setLookSpeed(180)
+ self.camController.setCamera(self.camera())
+
+ self.setRootEntity(self.rootEntity)
+
+ def createScene(self):
+ # Root entity
+ self.rootEntity = Qt3DCore.QEntity()
+
+ # Material
+ self.material = Qt3DExtras.QPhongMaterial(self.rootEntity)
+
+ # Torus
+ self.torusEntity = Qt3DCore.QEntity(self.rootEntity)
+ self.torusMesh = Qt3DExtras.QTorusMesh()
+ self.torusMesh.setRadius(5)
+ self.torusMesh.setMinorRadius(1)
+ self.torusMesh.setRings(100)
+ self.torusMesh.setSlices(20)
+
+ self.torusTransform = Qt3DCore.QTransform()
+ self.torusTransform.setScale3D(QVector3D(1.5, 1, 0.5))
+ self.torusTransform.setRotation(QQuaternion.fromAxisAndAngle(QVector3D(1, 0, 0), 45))
+
+ self.torusEntity.addComponent(self.torusMesh)
+ self.torusEntity.addComponent(self.torusTransform)
+ self.torusEntity.addComponent(self.material)
+
+ # Sphere
+ self.sphereEntity = Qt3DCore.QEntity(self.rootEntity)
+ self.sphereMesh = Qt3DExtras.QSphereMesh()
+ self.sphereMesh.setRadius(3)
+
+ self.sphereTransform = Qt3DCore.QTransform()
+ self.controller = OrbitTransformController(self.sphereTransform)
+ self.controller.setTarget(self.sphereTransform)
+ self.controller.setRadius(20)
+
+ self.sphereRotateTransformAnimation = QPropertyAnimation(self.sphereTransform)
+ self.sphereRotateTransformAnimation.setTargetObject(self.controller)
+ self.sphereRotateTransformAnimation.setPropertyName("angle")
+ self.sphereRotateTransformAnimation.setStartValue(0)
+ self.sphereRotateTransformAnimation.setEndValue(360)
+ self.sphereRotateTransformAnimation.setDuration(10000)
+ self.sphereRotateTransformAnimation.setLoopCount(-1)
+ self.sphereRotateTransformAnimation.start()
+
+ self.sphereEntity.addComponent(self.sphereMesh)
+ self.sphereEntity.addComponent(self.sphereTransform)
+ self.sphereEntity.addComponent(self.material)
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ view = Window()
+ view.show()
+ sys.exit(app.exec_())
diff --git a/sources/pyside2/CMakeLists.txt b/sources/pyside2/CMakeLists.txt
index bfd8eb5be..8dc1816f0 100644
--- a/sources/pyside2/CMakeLists.txt
+++ b/sources/pyside2/CMakeLists.txt
@@ -290,6 +290,9 @@ if(WIN32)
list(APPEND ALL_OPTIONAL_MODULES AxContainer)
endif()
list(APPEND ALL_OPTIONAL_MODULES WebChannel WebEngineWidgets WebKit WebKitWidgets WebSockets)
+if (Qt5Core_VERSION VERSION_GREATER 5.9.3) # Depending on fixes in Qt3D
+ list(APPEND ALL_OPTIONAL_MODULES 3DCore 3DRender 3DInput 3DLogic 3DAnimation 3DExtras)
+endif()
# Modules to be built unless specified by -DMODULES on command line
if (NOT MODULES)
diff --git a/sources/pyside2/PySide2/Qt3DAnimation/CMakeLists.txt b/sources/pyside2/PySide2/Qt3DAnimation/CMakeLists.txt
new file mode 100644
index 000000000..9bdf36add
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DAnimation/CMakeLists.txt
@@ -0,0 +1,55 @@
+project(Qt3DAnimation)
+
+set(Qt3DAnimation_SRC
+${Qt3DAnimation_GEN_DIR}/qt3danimation_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qabstractanimation_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qabstractanimationclip_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qabstractclipanimator_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qabstractclipblendnode_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qadditiveclipblend_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qanimationaspect_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qanimationcontroller_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qanimationgroup_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qblendedclipanimator_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qclipanimator_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qkeyframeanimation_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qlerpclipblend_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qmorphinganimation_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qmorphtarget_wrapper.cpp
+${Qt3DAnimation_GEN_DIR}/qt3danimation_qvertexblendanimation_wrapper.cpp
+# module is always needed
+${Qt3DAnimation_GEN_DIR}/qt3danimation_module_wrapper.cpp)
+
+set(Qt3DAnimation_include_dirs
+ ${Qt3DAnimation_SOURCE_DIR}
+ ${Qt3DAnimation_BINARY_DIR}
+ ${pyside2_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIR}
+ ${Qt53DCore_INCLUDE_DIRS}
+ ${Qt53DRender_INCLUDE_DIRS}
+ ${Qt53DAnimation_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${Qt3DCore_GEN_DIR}
+ ${Qt3DRender_GEN_DIR}
+ ${Qt3DAnimation_GEN_DIR})
+
+set(Qt3DAnimation_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt53DAnimation_LIBRARIES})
+
+set(Qt3DAnimation_deps Qt3DRender)
+
+create_pyside_module(Qt3DAnimation
+ Qt3DAnimation_include_dirs
+ Qt3DAnimation_libraries
+ Qt3DAnimation_deps
+ Qt3DAnimation_SOURCE_DIR
+ Qt3DAnimation_SRC
+ ""
+ ${Qt3DAnimation_BINARY_DIR}/typesystem_3danimation.xml)
diff --git a/sources/pyside2/PySide2/Qt3DAnimation/typesystem_3danimation.xml b/sources/pyside2/PySide2/Qt3DAnimation/typesystem_3danimation.xml
new file mode 100644
index 000000000..99c24c241
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DAnimation/typesystem_3danimation.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+
+<typesystem package="PySide2.Qt3DAnimation">
+ <load-typesystem name="Qt3DRender/typesystem_3drender.xml" generate="no"/>
+ <namespace-type name="Qt3DAnimation">
+ <object-type name="QAbstractAnimation">
+ <enum-type name="AnimationType"/>
+ </object-type>
+ <object-type name="QAbstractAnimationClip"/>
+ <object-type name="QAbstractClipAnimator">
+ <enum-type name="Loops"/>
+ </object-type>
+ <object-type name="QAbstractClipBlendNode"/>
+ <object-type name="QAdditiveClipBlend"/>
+ <object-type name="QAnimationAspect"/>
+ <object-type name="QAnimationController"/>
+ <object-type name="QAnimationGroup"/>
+ <object-type name="QBlendedClipAnimator"/>
+ <object-type name="QClipAnimator"/>
+ <object-type name="QKeyframeAnimation">
+ <enum-type name="RepeatMode"/>
+ </object-type>
+ <object-type name="QLerpClipBlend"/>
+ <object-type name="QMorphingAnimation">
+ <enum-type name="Method"/>
+ </object-type>
+ <object-type name="QMorphTarget"/>
+ <object-type name="QVertexBlendAnimation"/>
+ </namespace-type>
+</typesystem>
diff --git a/sources/pyside2/PySide2/Qt3DCore/CMakeLists.txt b/sources/pyside2/PySide2/Qt3DCore/CMakeLists.txt
new file mode 100644
index 000000000..53d3cc634
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DCore/CMakeLists.txt
@@ -0,0 +1,74 @@
+project(Qt3DCore)
+
+set(Qt3DCore_SRC
+${Qt3DCore_GEN_DIR}/qt3dcore_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qabstractaspect_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qaspectengine_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qaspectjob_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qbackendnode_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qcomponent_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qcomponentaddedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qcomponentremovedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qdynamicpropertyupdatedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qentity_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qnode_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qnodecreatedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qnodedestroyedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qnodeid_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qnodeidtypepair_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertynodeaddedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertynoderemovedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertyupdatedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertyupdatedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertyvalueaddedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertyvalueaddedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertyvalueremovedchange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qpropertyvalueremovedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qscenechange_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qstaticpropertyupdatedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qstaticpropertyvalueaddedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qstaticpropertyvalueremovedchangebase_wrapper.cpp
+${Qt3DCore_GEN_DIR}/qt3dcore_qtransform_wrapper.cpp
+# module is always needed
+${Qt3DCore_GEN_DIR}/qt3dcore_module_wrapper.cpp)
+
+if (Qt53DCore_VERSION VERSION_EQUAL 5.10.0 OR Qt53DCore_VERSION VERSION_GREATER 5.10.0)
+ list(APPEND Qt3DCore_SRC
+ ${Qt3DCore_GEN_DIR}/qt3dcore_qarmature_wrapper.cpp
+ ${Qt3DCore_GEN_DIR}/qt3dcore_qjoint_wrapper.cpp
+ ${Qt3DCore_GEN_DIR}/qt3dcore_qabstractskeleton_wrapper.cpp
+ ${Qt3DCore_GEN_DIR}/qt3dcore_qnodecommand_wrapper.cpp
+ ${Qt3DCore_GEN_DIR}/qt3dcore_qskeleton_wrapper.cpp
+ ${Qt3DCore_GEN_DIR}/qt3dcore_qskeletonloader_wrapper.cpp)
+endif()
+
+set(Qt3DCore_include_dirs
+ ${Qt3DCore_SOURCE_DIR}
+ ${Qt3DCore_BINARY_DIR}
+ ${pyside2_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${Qt5Network_INCLUDE_DIRS}
+ ${Qt53DCore_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtNetwork_GEN_DIR})
+
+set(Qt3DCore_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt53DCore_LIBRARIES})
+
+set(Qt3DCore_deps QtGui QtNetwork)
+
+create_pyside_module(Qt3DCore
+ Qt3DCore_include_dirs
+ Qt3DCore_libraries
+ Qt3DCore_deps
+ Qt3DCore_SOURCE_DIR
+ Qt3DCore_SRC
+ ""
+ ${Qt3DCore_BINARY_DIR}/typesystem_3dcore.xml)
diff --git a/sources/pyside2/PySide2/Qt3DCore/typesystem_3dcore.xml b/sources/pyside2/PySide2/Qt3DCore/typesystem_3dcore.xml
new file mode 100644
index 000000000..62245d6e3
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DCore/typesystem_3dcore.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+
+<typesystem package="PySide2.Qt3DCore">
+ <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+ <namespace-type name="Qt3DCore">
+ <enum-type name="ChangeFlag" flags="ChangeFlags"/>
+ <object-type name="QAbstractAspect"/>
+ <object-type name="QAbstractSkeleton" since="5.10"/>
+ <object-type name="QArmature" since="5.10"/>
+ <object-type name="QAspectEngine"/>
+ <object-type name="QAspectJob"/>
+ <object-type name="QBackendNode">
+ <enum-type name="Mode"/>
+ </object-type>
+ <object-type name="QComponent"/>
+ <object-type name="QComponentAddedChange"/>
+ <object-type name="QComponentRemovedChange"/>
+ <object-type name="QDynamicPropertyUpdatedChange"/>
+ <object-type name="QEntity"/>
+ <object-type name="QJoint" since="5.10"/>
+ <object-type name="QNode">
+ <enum-type name="PropertyTrackingMode"/>
+ </object-type>
+ <object-type name="QNodeCommand" since="5.10"/>
+ <object-type name="QNodeCreatedChangeBase"/>
+ <object-type name="QNodeDestroyedChange"/>
+ <value-type name="QNodeId"/>
+ <value-type name="QNodeIdTypePair"/>
+ <object-type name="QPropertyNodeAddedChange"/>
+ <object-type name="QPropertyNodeRemovedChange"/>
+ <object-type name="QPropertyUpdatedChange"/>
+ <object-type name="QPropertyUpdatedChangeBase"/>
+ <object-type name="QPropertyValueAddedChange"/>
+ <object-type name="QPropertyValueAddedChangeBase"/>
+ <object-type name="QPropertyValueRemovedChange"/>
+ <object-type name="QPropertyValueRemovedChangeBase"/>
+ <object-type name="QSceneChange">
+ <enum-type name="DeliveryFlag" flags="DeliveryFlags"/>
+ </object-type>
+ <object-type name="QSkeleton" since="5.10"/>
+ <object-type name="QSkeletonLoader" since="5.10"/>
+ <object-type name="QStaticPropertyUpdatedChangeBase"/>
+ <object-type name="QStaticPropertyValueAddedChangeBase"/>
+ <object-type name="QStaticPropertyValueRemovedChangeBase"/>
+ <object-type name="QTransform">
+ <!-- Disambiguate from QtGui/qtransform.h -->
+ <include file-name="Qt3DCore/qtransform.h" location="global"/>
+ </object-type>
+ </namespace-type>
+</typesystem>
diff --git a/sources/pyside2/PySide2/Qt3DExtras/CMakeLists.txt b/sources/pyside2/PySide2/Qt3DExtras/CMakeLists.txt
new file mode 100644
index 000000000..4bc25d52d
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DExtras/CMakeLists.txt
@@ -0,0 +1,81 @@
+project(Qt3DExtras)
+
+set(Qt3DExtras_SRC
+${Qt3DExtras_GEN_DIR}/qt3dextras_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qconegeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qconemesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qcuboidgeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qcuboidmesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qcylindergeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qcylindermesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qdiffusemapmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qdiffusespecularmapmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qextrudedtextgeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qextrudedtextmesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qfirstpersoncameracontroller_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qforwardrenderer_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qgoochmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qmetalroughmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qmorphphongmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qnormaldiffusemapmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qnormaldiffusespecularmapmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qorbitcameracontroller_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qpervertexcolormaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qphongmaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qphongalphamaterial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qplanegeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qplanemesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qskyboxentity_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qspheregeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qspheremesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qtext2dentity_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qtexturematerial_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qtorusgeometry_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qtorusmesh_wrapper.cpp
+${Qt3DExtras_GEN_DIR}/qt3dextras_qt3dwindow_wrapper.cpp
+# module is always needed
+${Qt3DExtras_GEN_DIR}/qt3dextras_module_wrapper.cpp)
+
+if (Qt53DExtras_VERSION VERSION_EQUAL 5.10.0 OR Qt53DExtras_VERSION VERSION_GREATER 5.10.0)
+ list(APPEND Qt3DExtras_SRC
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qabstractcameracontroller_wrapper.cpp
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qabstractcameracontroller_inputstate_wrapper.cpp
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qabstractspritesheet_wrapper.cpp
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qdiffusespecularmaterial_wrapper.cpp
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qspritegrid_wrapper.cpp
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qspritesheet_wrapper.cpp
+ ${Qt3DExtras_GEN_DIR}/qt3dextras_qspritesheetitem_wrapper.cpp)
+endif()
+
+set(Qt3DExtras_include_dirs
+ ${Qt3DExtras_SOURCE_DIR}
+ ${Qt3DExtras_BINARY_DIR}
+ ${pyside2_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${Qt53DCore_INCLUDE_DIRS}
+ ${Qt53DRender_INCLUDE_DIRS}
+ ${Qt53DExtras_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${Qt3DCore_GEN_DIR}
+ ${Qt3DRender_GEN_DIR})
+
+set(Qt3DExtras_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt53DExtras_LIBRARIES})
+
+set(Qt3DExtras_deps Qt3DRender)
+
+create_pyside_module(Qt3DExtras
+ Qt3DExtras_include_dirs
+ Qt3DExtras_libraries
+ Qt3DExtras_deps
+ Qt3DExtras_SOURCE_DIR
+ Qt3DExtras_SRC
+ ""
+ ${Qt3DExtras_BINARY_DIR}/typesystem_3dextras.xml)
diff --git a/sources/pyside2/PySide2/Qt3DExtras/typesystem_3dextras.xml b/sources/pyside2/PySide2/Qt3DExtras/typesystem_3dextras.xml
new file mode 100644
index 000000000..9bcaa6705
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DExtras/typesystem_3dextras.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+
+<typesystem package="PySide2.Qt3DExtras">
+ <load-typesystem name="Qt3DRender/typesystem_3drender.xml" generate="no"/>
+ <namespace-type name="Qt3DExtras">
+ <object-type name="QAbstractCameraController" since="5.10">
+ <value-type name="InputState"/>
+ </object-type>
+ <object-type name="QAbstractSpriteSheet" since="5.10"/>
+ <object-type name="QConeGeometry"/>
+ <object-type name="QConeMesh"/>
+ <object-type name="QCuboidGeometry"/>
+ <object-type name="QCuboidMesh"/>
+ <object-type name="QCylinderGeometry"/>
+ <object-type name="QCylinderMesh"/>
+ <object-type name="QDiffuseMapMaterial"/>
+ <object-type name="QDiffuseSpecularMaterial" since="5.10"/>
+ <object-type name="QDiffuseSpecularMapMaterial"/>
+ <object-type name="QExtrudedTextGeometry"/>
+ <object-type name="QExtrudedTextMesh"/>
+ <object-type name="QFirstPersonCameraController"/>
+ <object-type name="QForwardRenderer"/>
+ <object-type name="QGoochMaterial"/>
+ <object-type name="QMetalRoughMaterial"/>
+ <object-type name="QMorphPhongMaterial"/>
+ <object-type name="QNormalDiffuseMapMaterial"/>
+ <object-type name="QNormalDiffuseSpecularMapMaterial"/>
+ <object-type name="QOrbitCameraController"/>
+ <object-type name="QPerVertexColorMaterial"/>
+ <object-type name="QPhongMaterial"/>
+ <object-type name="QPhongAlphaMaterial"/>
+ <object-type name="QPlaneGeometry"/>
+ <object-type name="QPlaneMesh"/>
+ <object-type name="QSkyboxEntity"/>
+ <object-type name="QSphereGeometry"/>
+ <object-type name="QSphereMesh"/>
+ <object-type name="QSpriteGrid" since="5.10"/>
+ <object-type name="QSpriteSheet" since="5.10"/>
+ <object-type name="QSpriteSheetItem" since="5.10"/>
+ <object-type name="QText2DEntity"/>
+ <object-type name="QTextureMaterial"/>
+ <object-type name="QTorusGeometry"/>
+ <object-type name="QTorusMesh"/>
+ <object-type name="Qt3DWindow"/>
+ </namespace-type>
+</typesystem>
diff --git a/sources/pyside2/PySide2/Qt3DInput/CMakeLists.txt b/sources/pyside2/PySide2/Qt3DInput/CMakeLists.txt
new file mode 100644
index 000000000..694f373f8
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DInput/CMakeLists.txt
@@ -0,0 +1,56 @@
+project(Qt3DInput)
+
+set(Qt3DInput_SRC
+${Qt3DInput_GEN_DIR}/qt3dinput_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qabstractactioninput_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qabstractaxisinput_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qabstractphysicaldevice_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qaction_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qactioninput_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qanalogaxisinput_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qaxis_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qaxisaccumulator_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qaxissetting_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qbuttonaxisinput_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qinputaspect_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qinputchord_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qinputsequence_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qinputsettings_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qkeyboardhandler_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qkeyevent_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qlogicaldevice_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qkeyboarddevice_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qmousedevice_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qmouseevent_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qwheelevent_wrapper.cpp
+${Qt3DInput_GEN_DIR}/qt3dinput_qmousehandler_wrapper.cpp
+# module is always needed
+${Qt3DInput_GEN_DIR}/qt3dinput_module_wrapper.cpp)
+
+set(Qt3DInput_include_dirs
+ ${Qt3DInput_SOURCE_DIR}
+ ${Qt3DInput_BINARY_DIR}
+ ${pyside2_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${Qt3DCore_GEN_DIR})
+
+set(Qt3DInput_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt53DInput_LIBRARIES})
+
+set(Qt3DInput_deps Qt3DCore)
+
+create_pyside_module(Qt3DInput
+ Qt3DInput_include_dirs
+ Qt3DInput_libraries
+ Qt3DInput_deps
+ Qt3DInput_SOURCE_DIR
+ Qt3DInput_SRC
+ ""
+ ${Qt3DInput_BINARY_DIR}/typesystem_3dinput.xml)
diff --git a/sources/pyside2/PySide2/Qt3DInput/typesystem_3dinput.xml b/sources/pyside2/PySide2/Qt3DInput/typesystem_3dinput.xml
new file mode 100644
index 000000000..b26e5d7fe
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DInput/typesystem_3dinput.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+
+<typesystem package="PySide2.Qt3DInput">
+ <load-typesystem name="Qt3DCore/typesystem_3dcore.xml" generate="no"/>
+ <namespace-type name="Qt3DInput">
+ <object-type name="QAbstractActionInput"/>
+ <object-type name="QAbstractAxisInput"/>
+ <object-type name="QAbstractPhysicalDevice"/>
+ <object-type name="QAction"/>
+ <object-type name="QActionInput"/>
+ <object-type name="QAnalogAxisInput"/>
+ <object-type name="QAxis"/>
+ <object-type name="QAxisAccumulator">
+ <enum-type name="SourceAxisType"/>
+ </object-type>
+ <object-type name="QAxisSetting"/>
+ <object-type name="QButtonAxisInput"/>
+ <object-type name="QInputAspect"/>
+ <object-type name="QInputChord"/>
+ <object-type name="QInputSequence"/>
+ <object-type name="QInputSettings"/>
+ <object-type name="QKeyboardHandler"/>
+ <object-type name="QKeyEvent">
+ <modify-function signature="QKeyEvent(const Qt3DInput::QKeyEvent&amp;)" remove="all"/>
+ </object-type>
+ <object-type name="QLogicalDevice"/>
+ <object-type name="QKeyboardDevice"/>
+ <object-type name="QMouseDevice">
+ <enum-type name="Axis"/>
+ </object-type>
+ <!-- Fixme: shiboken2 mistakenly thinks that Qt3DInput::QMouseEvent(::QMouseEvent)
+ is a copy constructor of Qt3DInput::QMouseEvent. Work around by suppressing them -->
+ <object-type name="QMouseEvent">
+ <enum-type name="Buttons"/>
+ <enum-type name="Modifiers"/>
+ <modify-function signature="QMouseEvent(const Qt3DInput::QMouseEvent&amp;)" remove="all"/>
+ </object-type>
+ <object-type name="QWheelEvent">
+ <enum-type name="Buttons"/>
+ <enum-type name="Modifiers"/>
+ <modify-function signature="QWheelEvent(const Qt3DInput::QWheelEvent&amp;)" remove="all"/>
+ </object-type>
+ <object-type name="QMouseHandler"/>
+ </namespace-type>
+</typesystem>
diff --git a/sources/pyside2/PySide2/Qt3DLogic/CMakeLists.txt b/sources/pyside2/PySide2/Qt3DLogic/CMakeLists.txt
new file mode 100644
index 000000000..23cde8804
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DLogic/CMakeLists.txt
@@ -0,0 +1,37 @@
+project(Qt3DLogic)
+
+set(Qt3DLogic_SRC
+${Qt3DLogic_GEN_DIR}/qt3dlogic_wrapper.cpp
+${Qt3DLogic_GEN_DIR}/qt3dlogic_qframeaction_wrapper.cpp
+${Qt3DLogic_GEN_DIR}/qt3dlogic_qlogicaspect_wrapper.cpp
+# module is always needed
+${Qt3DLogic_GEN_DIR}/qt3dlogic_module_wrapper.cpp)
+
+set(Qt3DLogic_include_dirs
+ ${Qt3DLogic_SOURCE_DIR}
+ ${Qt3DLogic_BINARY_DIR}
+ ${pyside2_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${Qt3DCore_GEN_DIR})
+
+set(Qt3DLogic_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt53DLogic_LIBRARIES})
+
+set(Qt3DLogic_deps Qt3DCore)
+
+create_pyside_module(Qt3DLogic
+ Qt3DLogic_include_dirs
+ Qt3DLogic_libraries
+ Qt3DLogic_deps
+ Qt3DLogic_SOURCE_DIR
+ Qt3DLogic_SRC
+ ""
+ ${Qt3DLogic_BINARY_DIR}/typesystem_3dlogic.xml)
diff --git a/sources/pyside2/PySide2/Qt3DLogic/typesystem_3dlogic.xml b/sources/pyside2/PySide2/Qt3DLogic/typesystem_3dlogic.xml
new file mode 100644
index 000000000..d448fd29a
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DLogic/typesystem_3dlogic.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+
+<typesystem package="PySide2.Qt3DLogic">
+ <load-typesystem name="Qt3DCore/typesystem_3dcore.xml" generate="no"/>
+ <namespace-type name="Qt3DLogic">
+ <object-type name="QFrameAction"/>
+ <object-type name="QLogicAspect"/>
+ </namespace-type>
+</typesystem>
diff --git a/sources/pyside2/PySide2/Qt3DRender/CMakeLists.txt b/sources/pyside2/PySide2/Qt3DRender/CMakeLists.txt
new file mode 100644
index 000000000..07bd3d89f
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DRender/CMakeLists.txt
@@ -0,0 +1,147 @@
+project(Qt3DRender)
+
+set(Qt3DRender_SRC
+${Qt3DRender_GEN_DIR}/qt3drender_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_propertyreaderinterface_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qabstractfunctor_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qabstractlight_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qabstracttexture_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qabstracttextureimage_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qalphacoverage_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qalphatest_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qattribute_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qblendequation_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qblendequationarguments_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qbuffer_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qbuffercapture_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qbufferdatagenerator_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qcamera_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qcameralens_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qcameraselector_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qclearbuffers_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qclipplane_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qcolormask_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qcomputecommand_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qcullface_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qdepthtest_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qdirectionallight_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qdispatchcompute_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qdithering_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qeffect_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qenvironmentlight_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qfilterkey_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qframegraphnode_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qframegraphnodecreatedchangebase_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qfrontface_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qfrustumculling_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qgeometry_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qgeometryfactory_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qgeometryrenderer_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qgraphicsapifilter_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qlayer_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qlayerfilter_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qlevelofdetail_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qlevelofdetailboundingsphere_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qlevelofdetailswitch_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qmaterial_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qmemorybarrier_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qmesh_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qmultisampleantialiasing_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qnodepthmask_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qnodraw_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qobjectpicker_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpaintedtextureimage_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qparameter_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpickevent_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpicktriangleevent_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpickingsettings_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpointlight_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpointsize_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qpolygonoffset_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrenderaspect_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendercapture_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendercapturereply_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrenderpass_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrenderpassfilter_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendersettings_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrenderstate_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrenderstateset_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendersurfaceselector_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendertarget_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendertargetoutput_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qrendertargetselector_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qsceneloader_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qscissortest_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qseamlesscubemap_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qshaderdata_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qshaderprogram_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qsortpolicy_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qspotlight_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qstencilmask_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qstenciloperation_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qstenciloperationarguments_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qstenciltest_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qstenciltestarguments_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtechnique_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtechniquefilter_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture1d_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture1darray_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture2d_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture2darray_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture2dmultisample_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture2dmultisamplearray_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexture3d_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturebuffer_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturecubemap_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturecubemaparray_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturedata_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturegenerator_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtextureimage_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtextureimagedata_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtextureimagedatagenerator_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtextureloader_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturerectangle_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qtexturewrapmode_wrapper.cpp
+${Qt3DRender_GEN_DIR}/qt3drender_qviewport_wrapper.cpp
+# module is always needed
+${Qt3DRender_GEN_DIR}/qt3drender_module_wrapper.cpp)
+
+if (Qt53DRender_VERSION VERSION_EQUAL 5.10.0 OR Qt53DRender_VERSION VERSION_GREATER 5.10.0)
+ list(APPEND Qt3DRender_SRC
+ ${Qt3DRender_GEN_DIR}/qt3drender_qblitframebuffer_wrapper.cpp
+ ${Qt3DRender_GEN_DIR}/qt3drender_qlinewidth_wrapper.cpp
+ ${Qt3DRender_GEN_DIR}/qt3drender_qpicklineevent_wrapper.cpp
+ ${Qt3DRender_GEN_DIR}/qt3drender_qpickpointevent_wrapper.cpp
+ ${Qt3DRender_GEN_DIR}/qt3drender_qproximityfilter_wrapper.cpp
+ ${Qt3DRender_GEN_DIR}/qt3drender_qshaderprogrambuilder_wrapper.cpp
+)
+endif()
+
+set(Qt3DRender_include_dirs
+ ${Qt3DRender_SOURCE_DIR}
+ ${Qt3DRender_BINARY_DIR}
+ ${pyside2_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${Qt3DCore_GEN_DIR})
+
+set(Qt3DRender_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt53DRender_LIBRARIES})
+
+set(Qt3DRender_deps Qt3DCore)
+
+create_pyside_module(Qt3DRender
+ Qt3DRender_include_dirs
+ Qt3DRender_libraries
+ Qt3DRender_deps
+ Qt3DRender_SOURCE_DIR
+ Qt3DRender_SRC
+ ""
+ ${Qt3DRender_BINARY_DIR}/typesystem_3drender.xml)
diff --git a/sources/pyside2/PySide2/Qt3DRender/typesystem_3drender.xml b/sources/pyside2/PySide2/Qt3DRender/typesystem_3drender.xml
new file mode 100644
index 000000000..cfa332742
--- /dev/null
+++ b/sources/pyside2/PySide2/Qt3DRender/typesystem_3drender.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+
+<typesystem package="PySide2.Qt3DRender">
+ <load-typesystem name="Qt3DCore/typesystem_3dcore.xml" generate="no"/>
+ <namespace-type name="Qt3DRender">
+ <object-type name="PropertyReaderInterface"/>
+ <object-type name="QAbstractFunctor"/>
+ <object-type name="QAbstractLight">
+ <enum-type name="Type"/>
+ </object-type>
+ <object-type name="QAbstractTexture">
+ <enum-type name="CubeMapFace"/>
+ <enum-type name="ComparisonFunction"/>
+ <enum-type name="ComparisonMode"/>
+ <enum-type name="Filter"/>
+ <enum-type name="Status"/>
+ <enum-type name="Target"/>
+ <enum-type name="TextureFormat"/>
+ </object-type>
+ <object-type name="QAbstractTextureImage">
+ <modify-function signature="QAbstractTextureImage(Qt3DCore::QNode*)" remove="all"/>
+ </object-type>
+ <object-type name="QAlphaCoverage"/>
+ <object-type name="QAlphaTest">
+ <enum-type name="AlphaFunction"/>
+ </object-type>
+ <object-type name="QAttribute">
+ <enum-type name="AttributeType"/>
+ <enum-type name="VertexBaseType"/>
+ </object-type>
+ <object-type name="QBlendEquation">
+ <enum-type name="BlendFunction"/>
+ </object-type>
+ <object-type name="QBlendEquationArguments">
+ <enum-type name="Blending"/>
+ </object-type>
+ <object-type name="QBlitFramebuffer" since="5.10"/>
+ <object-type name="QBuffer">
+ <enum-type name="AccessType"/>
+ <enum-type name="BufferType"/>
+ <enum-type name="UsageType"/>
+ </object-type>
+ <object-type name="QBufferCapture"/>
+ <object-type name="QBufferDataGenerator">
+ <modify-function signature="operator()()" remove="all"/>
+ </object-type>
+ <object-type name="QCamera">
+ <enum-type name="CameraTranslationOption"/>
+ </object-type>
+ <object-type name="QCameraLens">
+ <enum-type name="ProjectionType"/>
+ </object-type>
+ <object-type name="QCameraSelector"/>
+ <object-type name="QClearBuffers">
+ <enum-type name="BufferType"/>
+ </object-type>
+ <object-type name="QClipPlane"/>
+ <object-type name="QColorMask"/>
+ <object-type name="QComputeCommand"/>
+ <object-type name="QCullFace">
+ <enum-type name="CullingMode"/>
+ </object-type>
+ <object-type name="QDepthTest">
+ <enum-type name="DepthFunction"/>
+ </object-type>
+ <object-type name="QDirectionalLight"/>
+ <object-type name="QDispatchCompute"/>
+ <object-type name="QDithering"/>
+ <object-type name="QEffect"/>
+ <object-type name="QEnvironmentLight"/>
+ <object-type name="QFilterKey"/>
+ <object-type name="QFrameGraphNode"/>
+ <object-type name="QFrameGraphNodeCreatedChangeBase"/>
+ <object-type name="QFrontFace">
+ <enum-type name="WindingDirection"/>
+ </object-type>
+ <object-type name="QFrustumCulling"/>
+ <object-type name="QGeometry"/>
+ <object-type name="QGeometryFactory">
+ <modify-function signature="operator()()" remove="all"/>
+ </object-type>
+ <object-type name="QGeometryRenderer">
+ <enum-type name="PrimitiveType"/>
+ </object-type>
+ <object-type name="QGraphicsApiFilter">
+ <enum-type name="Api"/>
+ <enum-type name="OpenGLProfile"/>
+ </object-type>
+ <object-type name="QLayer"/>
+ <object-type name="QLayerFilter"/>
+ <object-type name="QLevelOfDetail">
+ <enum-type name="ThresholdType"/>
+ </object-type>
+ <object-type name="QLevelOfDetailBoundingSphere"/>
+ <object-type name="QLevelOfDetailSwitch"/>
+ <object-type name="QLineWidth" since="5.10"/>
+ <object-type name="QMaterial"/>
+ <object-type name="QMemoryBarrier">
+ <enum-type name="Operation"/>
+ </object-type>
+ <object-type name="QMesh"/>
+ <object-type name="QMultiSampleAntiAliasing"/>
+ <object-type name="QNoDepthMask"/>
+ <object-type name="QNoDraw"/>
+ <object-type name="QObjectPicker"/>
+ <object-type name="QPaintedTextureImage"/>
+ <object-type name="QParameter"/>
+ <object-type name="QPickEvent">
+ <enum-type name="Buttons"/>
+ <enum-type name="Modifiers"/>
+ </object-type>
+ <object-type name="QPickLineEvent" since="5.10"/>
+ <object-type name="QPickPointEvent" since="5.10"/>
+ <object-type name="QPickTriangleEvent"/>
+ <object-type name="QPickingSettings">
+ <enum-type name="FaceOrientationPickingMode"/>
+ <enum-type name="PickMethod"/>
+ <enum-type name="PickResultMode"/>
+ </object-type>
+ <object-type name="QPointLight"/>
+ <object-type name="QPointSize">
+ <enum-type name="SizeMode"/>
+ </object-type>
+ <object-type name="QPolygonOffset"/>
+ <object-type name="QProximityFilter" since="5.10"/>
+ <object-type name="QRenderAspect">
+ <enum-type name="RenderType"/>
+ </object-type>
+ <object-type name="QRenderCapture"/>
+ <object-type name="QRenderCaptureReply"/>
+ <object-type name="QRenderPass"/>
+ <object-type name="QRenderPassFilter"/>
+ <object-type name="QRenderSettings">
+ <enum-type name="RenderPolicy"/>
+ </object-type>
+ <object-type name="QRenderState"/>
+ <object-type name="QRenderStateSet"/>
+ <object-type name="QRenderSurfaceSelector"/>
+ <object-type name="QRenderTarget"/>
+ <object-type name="QRenderTargetOutput">
+ <enum-type name="AttachmentPoint"/>
+ </object-type>
+ <object-type name="QRenderTargetSelector"/>
+ <object-type name="QSceneLoader">
+ <enum-type name="Status"/>
+ <enum-type name="ComponentType"/>
+ </object-type>
+ <object-type name="QScissorTest"/>
+ <object-type name="QSeamlessCubemap"/>
+ <object-type name="QShaderData"/>
+ <object-type name="QShaderProgram">
+ <enum-type name="ShaderType"/>
+ <enum-type name="Status"/>
+ </object-type>
+ <object-type name="QShaderProgramBuilder" since="5.10"/>
+ <object-type name="QSortPolicy">
+ <enum-type name="SortType"/>
+ </object-type>
+ <object-type name="QSpotLight">
+ <modify-function signature="attenuation() const" remove="all"/>
+ </object-type>
+ <object-type name="QStencilMask"/>
+ <object-type name="QStencilOperation"/>
+ <object-type name="QStencilOperationArguments">
+ <enum-type name="FaceMode"/>
+ <enum-type name="Operation"/>
+ </object-type>
+ <object-type name="QStencilTest"/>
+ <object-type name="QStencilTestArguments">
+ <enum-type name="StencilFaceMode"/>
+ <enum-type name="StencilFunction"/>
+ </object-type>
+ <object-type name="QTechnique"/>
+ <object-type name="QTechniqueFilter"/>
+ <object-type name="QTexture1D"/>
+ <object-type name="QTexture1DArray"/>
+ <object-type name="QTexture2D"/>
+ <object-type name="QTexture2DArray"/>
+ <object-type name="QTexture2DMultisample"/>
+ <object-type name="QTexture2DMultisampleArray"/>
+ <object-type name="QTexture3D"/>
+ <object-type name="QTextureBuffer"/>
+ <object-type name="QTextureCubeMap"/>
+ <object-type name="QTextureCubeMapArray"/>
+ <object-type name="QTextureData"/>
+ <object-type name="QTextureGenerator">
+ <modify-function signature="QTextureGenerator()" remove="all"/>
+ </object-type>
+ <object-type name="QTextureImage">
+ <enum-type name="Status"/>
+ </object-type>
+ <object-type name="QTextureImageData"/>
+ <object-type name="QTextureImageDataGenerator">
+ <modify-function signature="QTextureImageDataGenerator()" remove="all"/>
+ </object-type>
+ <object-type name="QTextureLoader"/>
+ <object-type name="QTextureRectangle"/>
+ <object-type name="QTextureWrapMode">
+ <enum-type name="WrapMode"/>
+ </object-type>
+ <object-type name="QViewport"/>
+ </namespace-type>
+</typesystem>
diff --git a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
index 0ff1c681a..406fa5b96 100644
--- a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
+++ b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
@@ -3107,6 +3107,8 @@
<object-type name="QBuffer">
<!-- ### setData(QByteArray) do the job -->
<modify-function signature="setData(const char*,int)" remove="all"/>
+ <!-- Disambiguate from Qt3DRender/qbuffer.h -->
+ <include file-name="QtCore/qbuffer.h" location="global"/>
</object-type>
<object-type name="QTimer">
<modify-function signature="singleShot(int,const QObject*,const char*)">
diff --git a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml
index 5dbc5f163..55cb797ca 100644
--- a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml
+++ b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml
@@ -309,6 +309,8 @@
}
</inject-code>
</add-function>
+ <!-- Disambiguate from Qt3DCore/qtransform.h -->
+ <include file-name="QtGui/qtransform.h" location="global"/>
</value-type>
<value-type name="QStaticText">
diff --git a/sources/pyside2/tests/Qt3DAnimation/CMakeLists.txt b/sources/pyside2/tests/Qt3DAnimation/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DAnimation/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside2/tests/Qt3DCore/CMakeLists.txt b/sources/pyside2/tests/Qt3DCore/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DCore/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside2/tests/Qt3DExtras/CMakeLists.txt b/sources/pyside2/tests/Qt3DExtras/CMakeLists.txt
new file mode 100644
index 000000000..5f8d2e77b
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DExtras/CMakeLists.txt
@@ -0,0 +1 @@
+PYSIDE_TEST(qt3dextras_test.py)
diff --git a/sources/pyside2/tests/Qt3DExtras/qt3dextras_test.py b/sources/pyside2/tests/Qt3DExtras/qt3dextras_test.py
new file mode 100644
index 000000000..967886a14
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DExtras/qt3dextras_test.py
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+
+#############################################################################
+##
+## Copyright (C) 2017 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the test suite of PySide2.
+##
+## $QT_BEGIN_LICENSE:GPL-EXCEPT$
+## 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.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 as published by the Free Software
+## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+'''Test cases for Q3DExtras'''
+
+from helper import UsesQGuiApplication
+import unittest
+
+from PySide2.QtCore import(Property, QObject, QPropertyAnimation, QTimer, Signal, Slot)
+from PySide2.QtGui import (QGuiApplication, QMatrix4x4, QQuaternion, QVector3D, QWindow)
+from PySide2.Qt3DCore import (Qt3DCore)
+from PySide2.Qt3DRender import (Qt3DRender)
+from PySide2.Qt3DExtras import (Qt3DExtras)
+
+class OrbitTransformController(QObject):
+ def __init__(self, parent):
+ super(OrbitTransformController, self).__init__(parent)
+ self._target = None
+ self._matrix = QMatrix4x4()
+ self._radius = 1
+ self._angle = 0
+
+ def setTarget(self, t):
+ self._target = t
+
+ def getTarget(self):
+ return self._target
+
+ def setRadius(self, radius):
+ if self._radius != radius:
+ self._radius = radius
+ self.updateMatrix()
+ self.radiusChanged.emit()
+
+ def getRadius(self):
+ return self._radius
+
+ def setAngle(self, angle):
+ if self._angle != angle:
+ self._angle = angle
+ self.updateMatrix()
+ self.angleChanged.emit()
+
+ def getAngle(self):
+ return self._angle
+
+ def updateMatrix(self):
+ self._matrix.setToIdentity();
+ self._matrix.rotate(self._angle, QVector3D(0, 1, 0))
+ self._matrix.translate(self._radius, 0, 0)
+ if self._target is not None:
+ self._target.setMatrix(self._matrix)
+
+ angleChanged = Signal()
+ radiusChanged = Signal()
+ angle = Property(float, getAngle, setAngle, notify=angleChanged)
+ radius = Property(float, getRadius, setRadius, notify=radiusChanged)
+
+class Window(Qt3DExtras.Qt3DWindow):
+ def __init__(self):
+ super(Window, self).__init__()
+
+ # Camera
+ self.camera().lens().setPerspectiveProjection(45, 16 / 9, 0.1, 1000)
+ self.camera().setPosition(QVector3D(0, 0, 40))
+ self.camera().setViewCenter(QVector3D(0, 0, 0))
+
+ # For camera controls
+ self.createScene()
+ self.camController = Qt3DExtras.QOrbitCameraController(self.rootEntity)
+ self.camController.setLinearSpeed(50)
+ self.camController.setLookSpeed(180)
+ self.camController.setCamera(self.camera())
+
+ self.setRootEntity(self.rootEntity)
+
+ def createScene(self):
+ # Root entity
+ self.rootEntity = Qt3DCore.QEntity()
+
+ # Material
+ self.material = Qt3DExtras.QPhongMaterial(self.rootEntity)
+
+ # Torus
+ self.torusEntity = Qt3DCore.QEntity(self.rootEntity)
+ self.torusMesh = Qt3DExtras.QTorusMesh()
+ self.torusMesh.setRadius(5)
+ self.torusMesh.setMinorRadius(1)
+ self.torusMesh.setRings(100)
+ self.torusMesh.setSlices(20)
+
+ self.torusTransform = Qt3DCore.QTransform()
+ self.torusTransform.setScale3D(QVector3D(1.5, 1, 0.5))
+ self.torusTransform.setRotation(QQuaternion.fromAxisAndAngle(QVector3D(1, 0, 0), 45))
+
+ self.torusEntity.addComponent(self.torusMesh)
+ self.torusEntity.addComponent(self.torusTransform)
+ self.torusEntity.addComponent(self.material)
+
+ # Sphere
+ self.sphereEntity = Qt3DCore.QEntity(self.rootEntity)
+ self.sphereMesh = Qt3DExtras.QSphereMesh()
+ self.sphereMesh.setRadius(3)
+
+ self.sphereTransform = Qt3DCore.QTransform()
+ self.controller = OrbitTransformController(self.sphereTransform)
+ self.controller.setTarget(self.sphereTransform)
+ self.controller.setRadius(20)
+
+ self.sphereEntity.addComponent(self.sphereMesh)
+ self.sphereEntity.addComponent(self.sphereTransform)
+ self.sphereEntity.addComponent(self.material)
+
+class Qt3DExtrasTestCase(UsesQGuiApplication):
+ '''Tests related to Q3DExtras'''
+
+ def test3DExtras(self):
+
+ window = Window()
+ window.show()
+ while not window.isExposed():
+ self.app.processEvents()
+ QTimer.singleShot(2000, self.app.quit)
+ self.app.exec_()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside2/tests/Qt3DInput/CMakeLists.txt b/sources/pyside2/tests/Qt3DInput/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DInput/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside2/tests/Qt3DLogic/CMakeLists.txt b/sources/pyside2/tests/Qt3DLogic/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DLogic/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside2/tests/Qt3DQuick/CMakeLists.txt b/sources/pyside2/tests/Qt3DQuick/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DQuick/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here
diff --git a/sources/pyside2/tests/Qt3DRender/CMakeLists.txt b/sources/pyside2/tests/Qt3DRender/CMakeLists.txt
new file mode 100644
index 000000000..2f7cb08b9
--- /dev/null
+++ b/sources/pyside2/tests/Qt3DRender/CMakeLists.txt
@@ -0,0 +1 @@
+# Please add some tests, here