aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/QtQuick
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside2/PySide2/QtQuick')
-rw-r--r--sources/pyside2/PySide2/QtQuick/CMakeLists.txt100
-rw-r--r--sources/pyside2/PySide2/QtQuick/pysidequickregistertype.cpp253
-rw-r--r--sources/pyside2/PySide2/QtQuick/pysidequickregistertype.h52
-rw-r--r--sources/pyside2/PySide2/QtQuick/typesystem_quick.xml174
4 files changed, 579 insertions, 0 deletions
diff --git a/sources/pyside2/PySide2/QtQuick/CMakeLists.txt b/sources/pyside2/PySide2/QtQuick/CMakeLists.txt
new file mode 100644
index 000000000..491fc9d9e
--- /dev/null
+++ b/sources/pyside2/PySide2/QtQuick/CMakeLists.txt
@@ -0,0 +1,100 @@
+project(QtQuick)
+
+set(QtQuick_registerType "${QtQuick_SOURCE_DIR}/pysidequickregistertype.cpp")
+
+set(QtQuick_SRC
+${QtQuick_GEN_DIR}/qquickframebufferobject_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickframebufferobject_renderer_wrapper.cpp
+${QtQuick_GEN_DIR}/qquicktexturefactory_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickimageprovider_wrapper.cpp
+${QtQuick_GEN_DIR}/qquicktransform_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickitem_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickitem_updatepaintnodedata_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickitemgrabresult_wrapper.cpp
+${QtQuick_GEN_DIR}/qsharedpointer_qquickitemgrabresult_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickpainteditem_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickrendercontrol_wrapper.cpp
+${QtQuick_GEN_DIR}/qquicktextdocument_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickview_wrapper.cpp
+${QtQuick_GEN_DIR}/qquickwindow_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgabstractrenderer_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgbasicgeometrynode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgclipnode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgdynamictexture_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgengine_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgflatcolormaterial_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometry_attribute_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometry_attributeset_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometry_coloredpoint2d_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometry_point2d_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometry_texturedpoint2d_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometry_wrapper.cpp
+${QtQuick_GEN_DIR}/qsggeometrynode_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgmaterial_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgmaterialshader_renderstate_wrapper.cpp
+# Issue with virtual char const *const *attributeNames()
+#${QtQuick_GEN_DIR}/qsgmaterialshader_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgmaterialtype_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgnode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgopacitynode_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgopaquetexturematerial_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgsimplematerial_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgsimplematerialshader_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgsimplerectnode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgsimpletexturenode_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgtexture_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgtexturematerial_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgtextureprovider_wrapper.cpp
+${QtQuick_GEN_DIR}/qsgtransformnode_wrapper.cpp
+#${QtQuick_GEN_DIR}/qsgvertexcolormaterial_wrapper.cpp
+# module is always needed
+${QtQuick_GEN_DIR}/qtquick_module_wrapper.cpp
+)
+
+if (Qt5Quick_VERSION VERSION_GREATER 5.5.1)
+ set(QtQuick_SRC ${QtQuick_SRC}
+ ${QtQuick_GEN_DIR}/qquickasyncimageprovider_wrapper.cpp
+ ${QtQuick_GEN_DIR}/qquickimageresponse_wrapper.cpp
+ )
+endif()
+
+
+make_path(QtQuick_typesystem_path ${QtCore_SOURCE_DIR} ${QtCore_BINARY_DIR}
+ ${QtGui_SOURCE_DIR} ${QtGui_BINARY_DIR}
+ ${QtNetwork_SOURCE_DIR} ${QtNetwork_BINARY_DIR}
+ ${QtQml_SOURCE_DIR} ${QtQml_BINARY_DIR}
+ ${QtQuick_SOURCE_DIR})
+
+set(QtQuick_include_dirs ${QtQuick_SOURCE_DIR}
+ ${QtQml_SOURCE_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${Qt5Network_INCLUDE_DIRS}
+ ${Qt5Qml_INCLUDE_DIRS}
+ ${Qt5Quick_INCLUDE_DIRS}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtNetwork_GEN_DIR}
+ ${QtQml_GEN_DIR}
+ ${QtQuick_GEN_DIR})
+
+set(QtQuick_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${Qt5Core_LIBRARIES}
+ ${Qt5Gui_LIBRARIES}
+ ${Qt5Network_LIBRARIES}
+ ${Qt5Qml_LIBRARIES}
+ ${Qt5Quick_LIBRARIES})
+
+set(QtQuick_deps QtGui QtNetwork QtQml)
+
+create_pyside_module(QtQuick
+ QtQuick_include_dirs
+ QtQuick_libraries
+ QtQuick_deps
+ QtQuick_typesystem_path
+ QtQuick_SRC
+ QtQuick_registerType)
diff --git a/sources/pyside2/PySide2/QtQuick/pysidequickregistertype.cpp b/sources/pyside2/PySide2/QtQuick/pysidequickregistertype.cpp
new file mode 100644
index 000000000..6468068a3
--- /dev/null
+++ b/sources/pyside2/PySide2/QtQuick/pysidequickregistertype.cpp
@@ -0,0 +1,253 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 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$
+**
+****************************************************************************/
+
+#include "pysidequickregistertype.h"
+
+#include <pyside.h>
+
+// Auto generated headers.
+#include "qquickitem_wrapper.h"
+#include "qquickpainteditem_wrapper.h"
+#include "qquickframebufferobject_wrapper.h"
+#include "pyside2_qtcore_python.h"
+#include "pyside2_qtquick_python.h"
+#include "pyside2_qtqml_python.h"
+
+#ifndef PYSIDE_MAX_QUICK_TYPES
+// Maximum number of different Qt Quick types the user can export to QML using
+// qmlRegisterType. This limit exists because the QML engine instantiates objects
+// by calling a function with one argument (a void* pointer where the object should
+// be created), and thus does not allow us to choose which object to create. Thus
+// we create a C++ factory function for each new registered type at compile time.
+# define PYSIDE_MAX_QUICK_TYPES 50
+#endif // !PYSIDE_MAX_QUICK_TYPES
+
+// All registered python types and their creation functions.
+static PyObject *pyTypes[PYSIDE_MAX_QUICK_TYPES];
+static void (*createFuncs[PYSIDE_MAX_QUICK_TYPES])(void*);
+
+// Mutex used to avoid race condition on PySide::nextQObjectMemoryAddr.
+static QMutex nextQmlElementMutex;
+
+// Python object factory functions.
+template<int N>
+struct ElementFactoryBase
+{
+ static void createQuickItem(void *memory)
+ {
+ QMutexLocker locker(&nextQmlElementMutex);
+ PySide::setNextQObjectMemoryAddr(memory);
+ Shiboken::GilState state;
+ PyObject *obj = PyObject_CallObject(pyTypes[N], 0);
+ if (!obj || PyErr_Occurred())
+ PyErr_Print();
+ PySide::setNextQObjectMemoryAddr(0);
+ }
+};
+
+template<int N>
+struct ElementFactory : ElementFactoryBase<N>
+{
+ static void init()
+ {
+ createFuncs[N] = &ElementFactoryBase<N>::createQuickItem;
+ ElementFactory<N-1>::init();
+ }
+};
+
+template<>
+struct ElementFactory<0> : ElementFactoryBase<0>
+{
+ static void init()
+ {
+ createFuncs[0] = &ElementFactoryBase<0>::createQuickItem;
+ }
+};
+
+#define PY_REGISTER_IF_INHERITS_FROM(className, typeToRegister,typePointerName, \
+ typeListName, typeMetaObject, type, registered) \
+ registerTypeIfInheritsFromClass<className##Wrapper>(#className, typeToRegister, \
+ typePointerName, typeListName, \
+ typeMetaObject, type, registered)
+
+bool pyTypeObjectInheritsFromClass(const PyTypeObject *pyObjType, QByteArray className)
+{
+ className.append('*');
+ PyTypeObject *classPyType = Shiboken::Conversions::getPythonTypeObject(className.constData());
+ bool isDerived = PySequence_Contains(pyObjType->tp_mro,
+ reinterpret_cast<PyObject *>(classPyType));
+ return isDerived;
+}
+
+template <class WrapperClass>
+void registerTypeIfInheritsFromClass(
+ QByteArray className,
+ const PyTypeObject *typeToRegister,
+ const QByteArray &typePointerName,
+ const QByteArray &typeListName,
+ QMetaObject *typeMetaObject,
+ QQmlPrivate::RegisterType *type,
+ bool &registered)
+{
+ bool shouldRegister = !registered && pyTypeObjectInheritsFromClass(typeToRegister, className);
+ if (shouldRegister) {
+ int ptrType =
+ QMetaType::registerNormalizedType(
+ typePointerName.constData(),
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<WrapperClass *>::Destruct,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<WrapperClass *>::Construct,
+ sizeof(WrapperClass *),
+ static_cast< ::QFlags<QMetaType::TypeFlag> >(QtPrivate::QMetaTypeTypeFlags<
+ WrapperClass *>::Flags),
+ typeMetaObject);
+ if (ptrType == -1) {
+ PyErr_Format(PyExc_TypeError, "Meta type registration of \"%s\" for QML usage failed.",
+ typePointerName.constData());
+ return;
+ }
+
+ int lstType =
+ QMetaType::registerNormalizedType(
+ typeListName.constData(),
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QQmlListProperty<WrapperClass> >
+ ::Destruct,
+ QtMetaTypePrivate::QMetaTypeFunctionHelper<QQmlListProperty<WrapperClass> >
+ ::Construct,
+ sizeof(QQmlListProperty<WrapperClass>),
+ static_cast< ::QFlags<QMetaType::TypeFlag> >(
+ QtPrivate::QMetaTypeTypeFlags<QQmlListProperty<WrapperClass> >::Flags),
+ static_cast<QMetaObject*>(0));
+ if (lstType == -1) {
+ PyErr_Format(PyExc_TypeError, "Meta type registration of \"%s\" for QML usage failed.",
+ typeListName.constData());
+ return;
+ }
+
+ type->typeId = ptrType;
+ type->listId = lstType;
+ type->attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc<WrapperClass>();
+ type->attachedPropertiesMetaObject =
+ QQmlPrivate::attachedPropertiesMetaObject<WrapperClass>();
+ type->parserStatusCast =
+ QQmlPrivate::StaticCastSelector<WrapperClass, QQmlParserStatus>::cast();
+ type->valueSourceCast =
+ QQmlPrivate::StaticCastSelector<WrapperClass, QQmlPropertyValueSource>::cast();
+ type->valueInterceptorCast =
+ QQmlPrivate::StaticCastSelector<WrapperClass, QQmlPropertyValueInterceptor>::cast();
+ type->objectSize = sizeof(WrapperClass);
+ registered = true;
+ }
+}
+
+bool quickRegisterType(PyObject *pyObj, const char *uri, int versionMajor, int versionMinor,
+ const char *qmlName, QQmlPrivate::RegisterType *type)
+{
+ using namespace Shiboken;
+ static int nextType = 0;
+
+ if (nextType >= PYSIDE_MAX_QUICK_TYPES) {
+ PyErr_Format(PyExc_TypeError,
+ "You can only export %d Qt Quick types to QML.", PYSIDE_MAX_QUICK_TYPES);
+ return false;
+ }
+
+ PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
+ PyTypeObject *qQuickItemPyType =
+ Shiboken::Conversions::getPythonTypeObject("QQuickItem*");
+ bool isQuickItem = PySequence_Contains(pyObjType->tp_mro,
+ reinterpret_cast<PyObject *>(qQuickItemPyType));
+
+ // Register only classes that inherit QQuickItem or its children.
+ if (!isQuickItem)
+ return false;
+
+ // Used inside macros to register the type.
+ QMetaObject *metaObject =
+ reinterpret_cast<QMetaObject *>(
+ ObjectType::getTypeUserData(reinterpret_cast<SbkObjectType *>(pyObj)));
+ Q_ASSERT(metaObject);
+
+
+ // Incref the type object, don't worry about decref'ing it because
+ // there's no way to unregister a QML type.
+ Py_INCREF(pyObj);
+
+ pyTypes[nextType] = pyObj;
+
+ // Used in macro registration.
+ QByteArray pointerName(qmlName);
+ pointerName.append('*');
+ QByteArray listName(qmlName);
+ listName.prepend("QQmlListProperty<");
+ listName.append('>');
+
+ bool registered = false;
+ PY_REGISTER_IF_INHERITS_FROM(QQuickPaintedItem, pyObjType, pointerName, listName, metaObject,
+ type, registered);
+ PY_REGISTER_IF_INHERITS_FROM(QQuickFramebufferObject, pyObjType, pointerName, listName,
+ metaObject, type, registered);
+ PY_REGISTER_IF_INHERITS_FROM(QQuickItem, pyObjType, pointerName, listName, metaObject,
+ type, registered);
+ if (!registered)
+ return false;
+
+ type->create = createFuncs[nextType];
+ type->version = 0;
+ type->uri = uri;
+ type->versionMajor = versionMajor;
+ type->versionMinor = versionMinor;
+ type->elementName = qmlName;
+ type->metaObject = metaObject;
+
+ type->extensionObjectCreate = 0;
+ type->extensionMetaObject = 0;
+ type->customParser = 0;
+
+ ++nextType;
+ return true;
+}
+
+void PySide::initQuickSupport(PyObject *module)
+{
+ Q_UNUSED(module);
+ ElementFactory<PYSIDE_MAX_QUICK_TYPES - 1>::init();
+#ifdef PYSIDE_QML_SUPPORT
+ setQuickRegisterItemFunction(quickRegisterType);
+#endif
+}
diff --git a/sources/pyside2/PySide2/QtQuick/pysidequickregistertype.h b/sources/pyside2/PySide2/QtQuick/pysidequickregistertype.h
new file mode 100644
index 000000000..35a669084
--- /dev/null
+++ b/sources/pyside2/PySide2/QtQuick/pysidequickregistertype.h
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 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$
+**
+****************************************************************************/
+
+#ifndef PYSIDE_QUICK_REGISTER_TYPE_H
+#define PYSIDE_QUICK_REGISTER_TYPE_H
+
+#include <Python.h>
+
+struct SbkObjectType;
+
+namespace PySide
+{
+void initQuickSupport(PyObject *module);
+}
+
+#endif // PYSIDE_QUICK_REGISTER_TYPE_H
diff --git a/sources/pyside2/PySide2/QtQuick/typesystem_quick.xml b/sources/pyside2/PySide2/QtQuick/typesystem_quick.xml
new file mode 100644
index 000000000..4cee02eec
--- /dev/null
+++ b/sources/pyside2/PySide2/QtQuick/typesystem_quick.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2016 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.QtQuick">
+ <load-typesystem name="typesystem_core.xml" generate="no"/>
+ <load-typesystem name="typesystem_network.xml" generate="no"/>
+ <load-typesystem name="typesystem_gui.xml" generate="no"/>
+ <load-typesystem name="typesystem_qml.xml" generate="no"/>
+
+ <primitive-type name="GLuint"/>
+ <smart-pointer-type name="QSharedPointer" type="shared" getter="data" />
+
+ <extra-includes>
+ <include file-name="pysidequickregistertype.h" location="local"/>
+ </extra-includes>
+
+ <inject-code class="target" position="end">
+ PySide::initQuickSupport(module);
+ </inject-code>
+
+ <object-type name="QQuickAsyncImageProvider" since="5.6" />
+
+ <object-type name="QQuickFramebufferObject" />
+ <object-type name="QQuickFramebufferObject::Renderer" />
+
+ <object-type name="QQuickTextureFactory" />
+ <object-type name="QQuickImageProvider" />
+ <object-type name="QQuickImageResponse" since="5.6" />
+
+ <object-type name="QQuickTransform" />
+ <object-type name="QQuickItem">
+ <value-type name="UpdatePaintNodeData" />
+ <enum-type name="Flag" flags="Flags" />
+ <enum-type name="ItemChange" />
+ <enum-type name="TransformOrigin" />
+ <modify-function signature="itemTransform(QQuickItem *, bool *) const" allow-thread="yes">
+ <modify-argument index="2">
+ <remove-argument />
+ </modify-argument>
+ <modify-argument index="return">
+ <replace-type modified-type="PyTuple" />
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_args,bool*" />
+ </inject-code>
+ </modify-function>
+ <!-- TODO: Find a way to wrap `union ItemChangeData {}` -->
+ </object-type>
+
+ <object-type name="QQuickItemGrabResult" />
+
+ <object-type name="QQuickPaintedItem">
+ <enum-type name="RenderTarget" />
+ <enum-type name="PerformanceHint" flags="PerformanceHints" />
+ </object-type>
+
+ <object-type name="QQuickRenderControl" />
+
+ <object-type name="QQuickTextDocument" />
+
+ <object-type name="QQuickView">
+ <enum-type name="ResizeMode" />
+ <enum-type name="Status" />
+ </object-type>
+
+ <object-type name="QQuickWindow">
+ <enum-type name="CreateTextureOption" flags="CreateTextureOptions" />
+ <enum-type name="RenderStage" />
+ <enum-type name="SceneGraphError" />
+ </object-type>
+
+ <object-type name="QSGAbstractRenderer">
+ <enum-type name="ClearModeBit" flags="ClearMode" />
+ </object-type>
+ <object-type name="QSGBasicGeometryNode" />
+ <object-type name="QSGClipNode" />
+ <object-type name="QSGDynamicTexture" />
+ <object-type name="QSGEngine">
+ <enum-type name="CreateTextureOption" flags="CreateTextureOptions" />
+ </object-type>
+ <!-- <object-type name="QSGFlatColorMaterial" /> -->
+ <object-type name="QSGGeometry">
+ <enum-type name="DataPattern" />
+ <enum-type name="AttributeType" since="5.8"/>
+ <enum-type name="DrawingMode" since="5.8"/>
+ <enum-type name="Type" since="5.8"/>
+ </object-type>
+ <value-type name="QSGGeometry::Attribute" />
+ <value-type name="QSGGeometry::AttributeSet" />
+ <value-type name="QSGGeometry::ColoredPoint2D" />
+ <value-type name="QSGGeometry::Point2D" />
+ <value-type name="QSGGeometry::TexturedPoint2D" />
+ <object-type name="QSGGeometryNode" />
+
+ <!-- QSGMaterialShader doesn't compile because of const char * char * types not being recognized
+ by the C++ parser, nor the generator.
+ <object-type name="QSGMaterial">
+ <enum-type name="Flag" flags="Flags" />
+ </object-type>
+ <object-type name="QSGMaterialShader" />
+ <value-type name="QSGMaterialShader::RenderState">
+ <enum-type name="DirtyState" flags="DirtyStates" />
+ </value-type>
+ -->
+ <object-type name="QSGMaterialType" />
+ <object-type name="QSGNode">
+ <enum-type name="DirtyStateBit" flags="DirtyState" />
+ <enum-type name="Flag" flags="Flags" />
+ <enum-type name="NodeType" />
+ </object-type>
+ <object-type name="QSGOpacityNode" />
+ <!-- <object-type name="QSGOpaqueTextureMaterial" /> -->
+ <object-type name="QSGSimpleRectNode" />
+ <object-type name="QSGSimpleTextureNode">
+ <enum-type name="TextureCoordinatesTransformFlag" flags="TextureCoordinatesTransformMode" />
+ </object-type>
+ <object-type name="QSGTexture">
+ <enum-type name="AnisotropyLevel" since="5.9"/>
+ <enum-type name="Filtering" />
+ <enum-type name="WrapMode" />
+ </object-type>
+ <!-- <object-type name="QSGTextureMaterial" /> -->
+ <object-type name="QSGTextureProvider" />
+ <object-type name="QSGTransformNode" />
+ <!-- <object-type name="QSGVertexColorMaterial" /> -->
+
+ <!-- These currently don't work because they are template classes, and the generator chokes on
+ them. Making these work properly would require fixing the parsing of template classes,
+ allowing creation of State structures and passing them to the template classes, as well as
+ implementing some mechanism of registration of the custom template classes, kind of how
+ it's done for qt quick items.
+ <object-type name="QSGSimpleMaterial" />
+ <object-type name="QSGSimpleMaterialShader" />
+ -->
+
+</typesystem>