summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-05-06 17:58:17 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-25 13:00:24 +0200
commit78fc995e3bc6232512e626ec80804d81963a255c (patch)
tree0975d7905245c13ece9941c11cb3c4ffe2cd78d3
parentaceb771ad6d24da854021a56a49b339bea029c98 (diff)
QQmlExtensionPlugins for Qt3DCore and Qt3DRenderer
Quick3D components for core and renderer have been moved to their own module. For each module, a QQmlExtensionPlugin has been created and is installed in qtbase/qml/Qt3D/. To use the Qml API, 3dquick needs to added in the .pro. 3dquickrenderer can be added if subclassing Quick3D elements defined in Renderer. Otherwise, appending it is not necessary as the Qml engine will automatically load the QQmlExtensionPlugin. Core has no more reference to the QML module. Qt3DRenderer still has references to the QML module which will be remove in follow up patches. Change-Id: I0cd5cbd27020c776b9eb8d1548514df2b1321bbd Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/core/aspects/qaspectmanager.cpp28
-rw-r--r--src/core/core.pro2
-rw-r--r--src/core/nodes/nodes.pri4
-rw-r--r--src/core/transforms/transforms.pri6
-rw-r--r--src/quick3d/imports/core/core.pro15
-rw-r--r--src/quick3d/imports/core/qmldir3
-rw-r--r--src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp72
-rw-r--r--src/quick3d/imports/core/qt3dquick3dcoreplugin.h59
-rw-r--r--src/quick3d/imports/imports.pro8
-rw-r--r--src/quick3d/imports/render/qmldir3
-rw-r--r--src/quick3d/imports/render/qt3dquick3drenderplugin.cpp91
-rw-r--r--src/quick3d/imports/render/qt3dquick3drenderplugin.h59
-rw-r--r--src/quick3d/imports/render/render.pro15
-rw-r--r--src/quick3d/quick3d.pro36
-rw-r--r--src/quick3d/quick3d/items/items.pri11
-rw-r--r--src/quick3d/quick3d/items/quick3dentity.cpp (renamed from src/core/nodes/quick3dentity.cpp)2
-rw-r--r--src/quick3d/quick3d/items/quick3dentity.h (renamed from src/core/nodes/quick3dentity.h)5
-rw-r--r--src/quick3d/quick3d/items/quick3dnode.cpp (renamed from src/core/nodes/quick3dnode.cpp)0
-rw-r--r--src/quick3d/quick3d/items/quick3dnode.h (renamed from src/core/nodes/quick3dnode.h)6
-rw-r--r--src/quick3d/quick3d/items/quick3dtransform.cpp (renamed from src/core/transforms/quick3dtransform.cpp)0
-rw-r--r--src/quick3d/quick3d/items/quick3dtransform.h (renamed from src/core/transforms/quick3dtransform.h)3
-rw-r--r--src/quick3d/quick3d/qt3dquick_global.h (renamed from src/quick3d/qt3dquick_global.h)0
-rw-r--r--src/quick3d/quick3d/quick3d.pro31
-rw-r--r--src/quick3d/quick3d/quickwindow.cpp (renamed from src/quick3d/quickwindow.cpp)0
-rw-r--r--src/quick3d/quick3d/quickwindow.h (renamed from src/quick3d/quickwindow.h)0
-rw-r--r--src/quick3d/quick3drenderer/items/items.pri17
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dcameraselector.cpp (renamed from src/render/frontend/quick3dcameraselector.cpp)4
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dcameraselector.h (renamed from src/render/frontend/quick3dcameraselector.h)14
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dframegraphitem.cpp (renamed from src/render/frontend/quick3dframegraphitem.cpp)7
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dframegraphitem.h (renamed from src/render/frontend/quick3dframegraphitem.h)15
-rw-r--r--src/quick3d/quick3drenderer/items/quick3drenderpassfilter.cpp (renamed from src/render/frontend/quick3drenderpassfilter.cpp)4
-rw-r--r--src/quick3d/quick3drenderer/items/quick3drenderpassfilter.h (renamed from src/render/frontend/quick3drenderpassfilter.h)14
-rw-r--r--src/quick3d/quick3drenderer/items/quick3drendertargetselector.cpp (renamed from src/render/frontend/quick3drendertargetselector.cpp)4
-rw-r--r--src/quick3d/quick3drenderer/items/quick3drendertargetselector.h (renamed from src/render/frontend/quick3drendertargetselector.h)14
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dtechniquefilter.cpp (renamed from src/render/frontend/quick3dtechniquefilter.cpp)4
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dtechniquefilter.h (renamed from src/render/frontend/quick3dtechniquefilter.h)14
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dviewport.cpp (renamed from src/render/frontend/quick3dviewport.cpp)4
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dviewport.h (renamed from src/render/frontend/quick3dviewport.h)14
-rw-r--r--src/quick3d/quick3drenderer/qt3dquickrenderer_global.h57
-rw-r--r--src/quick3d/quick3drenderer/quick3drenderer.pro28
-rw-r--r--src/render/backend/rendereraspect.cpp43
-rw-r--r--src/render/frontend/render-frontend.pri16
-rw-r--r--src/render/render.pro2
-rw-r--r--sync.profile3
44 files changed, 572 insertions, 165 deletions
diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp
index 3ddd232d7..058dfc0d7 100644
--- a/src/core/aspects/qaspectmanager.cpp
+++ b/src/core/aspects/qaspectmanager.cpp
@@ -48,26 +48,13 @@
#include "qjobmanagerinterface.h"
#include "qscheduler.h"
#include "qtickclock.h"
-
-#include <node.h>
-#include <entity.h>
-#include <quick3dentity.h>
-#include <camera.h>
-#include <cameralens.h>
-#include <matrixtransform.h>
-#include <rotatetransform.h>
-#include <translatetransform.h>
-#include <lookattransform.h>
-#include <scaletransform.h>
-#include <quick3dtransform.h>
-#include <quick3dnode.h>
+#include "node.h"
#include <QDebug>
#include <QEventLoop>
#include <QThread>
#include <QWaitCondition>
#include <QWindow>
-#include <QtQml>
QT_BEGIN_NAMESPACE
@@ -108,18 +95,7 @@ void QAspectManager::shutdown()
void QAspectManager::registerCoreQmlComponents()
{
qDebug() << Q_FUNC_INFO;
- qmlRegisterUncreatableType<Qt3D::Node>("Qt3D", 2, 0, "Node_priv", "");
- qmlRegisterType<Qt3D::Component>("Qt3D", 2, 0, "Component");
- qmlRegisterType<Qt3D::Camera>("Qt3D", 2, 0, "Camera");
- qmlRegisterType<Qt3D::CameraLens>("Qt3D", 2, 0, "CameraLens");
- qmlRegisterType<Qt3D::MatrixTransform>("Qt3D", 2, 0, "MatrixTransform");
- qmlRegisterType<Qt3D::TranslateTransform>("Qt3D", 2, 0, "Translate");
- qmlRegisterType<Qt3D::RotateTransform>("Qt3D", 2, 0, "Rotate");
- qmlRegisterType<Qt3D::LookAtTransform>("Qt3D", 2, 0, "LookAt");
- qmlRegisterType<Qt3D::ScaleTransform>("Qt3D", 2, 0, "Scale");
- qmlRegisterType<Qt3D::Quick::Quick3DEntity>("Qt3D", 2, 0, "Entity");
- qmlRegisterType<Qt3D::Quick::Quick3DTransform>("Qt3D", 2, 0, "Transform");
- qmlRegisterType<Qt3D::Quick::Quick3DNode>("Qt3D", 2, 0, "Node");
+
}
diff --git a/src/core/core.pro b/src/core/core.pro
index b74e23d1d..edc09fd5b 100644
--- a/src/core/core.pro
+++ b/src/core/core.pro
@@ -1,6 +1,6 @@
TARGET = Qt3DCore
MODULE = 3dcore
-QT = core-private gui-private qml qml-private quick
+QT = core-private gui-private
load(qt_module)
diff --git a/src/core/nodes/nodes.pri b/src/core/nodes/nodes.pri
index 720471b94..9d950271e 100644
--- a/src/core/nodes/nodes.pri
+++ b/src/core/nodes/nodes.pri
@@ -5,8 +5,6 @@ HEADERS += \
$$PWD/nodevisitor.h \
$$PWD/component.h \
$$PWD/entity.h \
- $$PWD/quick3dentity.h \
- $$PWD/quick3dnode.h \
$$PWD/entitynode.h
SOURCES += \
@@ -14,6 +12,4 @@ SOURCES += \
$$PWD/nodevisitor.cpp \
$$PWD/component.cpp \
$$PWD/entity.cpp \
- $$PWD/quick3dentity.cpp \
- $$PWD/quick3dnode.cpp \
$$PWD/entitynode.cpp
diff --git a/src/core/transforms/transforms.pri b/src/core/transforms/transforms.pri
index 026a7d953..9c0baea89 100644
--- a/src/core/transforms/transforms.pri
+++ b/src/core/transforms/transforms.pri
@@ -6,8 +6,7 @@ SOURCES += \
$$PWD/rotatetransform.cpp \
$$PWD/translatetransform.cpp \
$$PWD/scaletransform.cpp \
- $$PWD/transform.cpp \
- $$PWD/quick3dtransform.cpp
+ $$PWD/transform.cpp
HEADERS += \
$$PWD/abstracttransform.h \
@@ -16,7 +15,6 @@ HEADERS += \
$$PWD/rotatetransform.h \
$$PWD/translatetransform.h \
$$PWD/scaletransform.h \
- $$PWD/transform.h \
- $$PWD/quick3dtransform.h
+ $$PWD/transform.h
INCLUDEPATH += $$PWD
diff --git a/src/quick3d/imports/core/core.pro b/src/quick3d/imports/core/core.pro
new file mode 100644
index 000000000..8d866c902
--- /dev/null
+++ b/src/quick3d/imports/core/core.pro
@@ -0,0 +1,15 @@
+CXX_MODULE = qml
+TARGET = quick3dcoreplugin
+TARGETPATH = Qt3D
+
+QT += qml 3dcore 3dquick
+
+HEADERS += \
+ qt3dquick3dcoreplugin.h
+
+SOURCES += \
+ qt3dquick3dcoreplugin.cpp
+
+OTHER_FILES += qmldir
+
+load(qml_plugin)
diff --git a/src/quick3d/imports/core/qmldir b/src/quick3d/imports/core/qmldir
new file mode 100644
index 000000000..0e3b76f75
--- /dev/null
+++ b/src/quick3d/imports/core/qmldir
@@ -0,0 +1,3 @@
+module Qt3D
+plugin quick3dcoreplugin
+classname Qt3DQuick3DCorePlugin
diff --git a/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp b/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp
new file mode 100644
index 000000000..640e06182
--- /dev/null
+++ b/src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtQml>
+#include "qt3dquick3dcoreplugin.h"
+#include <Qt3DQuick/quick3dentity.h>
+#include <Qt3DQuick/quick3dtransform.h>
+#include <Qt3DCore/cameralens.h>
+#include <Qt3DCore/camera.h>
+#include <Qt3DCore/scaletransform.h>
+#include <Qt3DCore/lookattransform.h>
+#include <Qt3DCore/matrixtransform.h>
+#include <Qt3DCore/translatetransform.h>
+#include <Qt3DCore/rotatetransform.h>
+
+QT_BEGIN_NAMESPACE
+
+void Qt3DQuick3DCorePlugin::registerTypes(const char *uri)
+{
+ qmlRegisterUncreatableType<Qt3D::Node>(uri, 2, 0, "Node_priv", "");
+ qmlRegisterType<Qt3D::Component>(uri, 2, 0, "Component");
+ qmlRegisterType<Qt3D::Camera>(uri, 2, 0, "Camera");
+ qmlRegisterType<Qt3D::CameraLens>(uri, 2, 0, "CameraLens");
+ qmlRegisterType<Qt3D::MatrixTransform>(uri, 2, 0, "MatrixTransform");
+ qmlRegisterType<Qt3D::TranslateTransform>(uri, 2, 0, "Translate");
+ qmlRegisterType<Qt3D::RotateTransform>(uri, 2, 0, "Rotate");
+ qmlRegisterType<Qt3D::LookAtTransform>(uri, 2, 0, "LookAt");
+ qmlRegisterType<Qt3D::ScaleTransform>(uri, 2, 0, "Scale");
+ qmlRegisterType<Qt3D::Quick::Quick3DEntity>(uri, 2, 0, "Entity");
+ qmlRegisterType<Qt3D::Quick::Quick3DTransform>(uri, 2, 0, "Transform");
+ qmlRegisterType<Qt3D::Quick::Quick3DNode>(uri, 2, 0, "Node");
+}
+
+QT_END_NAMESPACE
diff --git a/src/quick3d/imports/core/qt3dquick3dcoreplugin.h b/src/quick3d/imports/core/qt3dquick3dcoreplugin.h
new file mode 100644
index 000000000..f76fa5ac1
--- /dev/null
+++ b/src/quick3d/imports/core/qt3dquick3dcoreplugin.h
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DQUICK3DCOREPLUGIN_H
+#define QT3DQUICK3DCOREPLUGIN_H
+
+#include <QtQml/QQmlExtensionPlugin>
+
+QT_BEGIN_NAMESPACE
+
+class Qt3DQuick3DCorePlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
+public:
+ void registerTypes(const char *uri) Q_DECL_OVERRIDE;
+};
+
+QT_END_NAMESPACE
+
+#endif // QT3DQUICK3DCOREPLUGIN_H
diff --git a/src/quick3d/imports/imports.pro b/src/quick3d/imports/imports.pro
new file mode 100644
index 000000000..415f533d9
--- /dev/null
+++ b/src/quick3d/imports/imports.pro
@@ -0,0 +1,8 @@
+TEMPLATE=subdirs
+CONFIG += ordered
+
+qtHaveModule(3dcore) {
+SUBDIRS+= \
+ core \
+ render
+}
diff --git a/src/quick3d/imports/render/qmldir b/src/quick3d/imports/render/qmldir
new file mode 100644
index 000000000..6654a6a50
--- /dev/null
+++ b/src/quick3d/imports/render/qmldir
@@ -0,0 +1,3 @@
+module Qt3D.Render
+plugin quick3drenderplugin
+classname Qt3DQuick3DRenderPlugin
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
new file mode 100644
index 000000000..b5c6112e1
--- /dev/null
+++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtQml>
+#include "qt3dquick3drenderplugin.h"
+#include <Qt3DRenderer/scene.h>
+#include <Qt3DRenderer/effect.h>
+#include <Qt3DRenderer/technique.h>
+#include <Qt3DRenderer/tag.h>
+#include <Qt3DRenderer/mesh.h>
+#include <Qt3DRenderer/material.h>
+#include <Qt3DRenderer/renderpass.h>
+#include <Qt3DRenderer/shaderprogram.h>
+#include <Qt3DRenderer/viewport.h>
+#include <Qt3DRenderer/renderpassfilter.h>
+#include <Qt3DRenderer/techniquefilter.h>
+#include <Qt3DRenderer/rendertargetselector.h>
+#include <Qt3DRenderer/shape.h>
+#include <Qt3DRenderer/texture.h>
+#include <Qt3DRenderer/framegraph.h>
+#include <Qt3DQuickRenderer/quick3dcameraselector.h>
+#include <Qt3DQuickRenderer/quick3dtechniquefilter.h>
+#include <Qt3DQuickRenderer/quick3dviewport.h>
+#include <Qt3DQuickRenderer/quick3drenderpassfilter.h>
+#include <Qt3DQuickRenderer/quick3drendertargetselector.h>
+
+QT_BEGIN_NAMESPACE
+
+void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri)
+{
+ qmlRegisterType<Qt3D::Scene>(uri, 2, 0, "Scene");
+ qmlRegisterType<Qt3D::Effect>(uri, 2, 0, "Effect");
+ qmlRegisterType<Qt3D::Technique>(uri, 2, 0, "Technique");
+ qmlRegisterType<Qt3D::Tag>(uri, 2, 0, "Tag");
+ qmlRegisterType<Qt3D::Mesh>(uri, 2, 0, "Mesh");
+ qmlRegisterType<Qt3D::Material>(uri, 2, 0, "Material");
+ qmlRegisterType<Qt3D::RenderPass>(uri, 2, 0, "RenderPass");
+ qmlRegisterType<Qt3D::ShaderProgram>(uri, 2, 0, "ShaderProgram");
+ qmlRegisterType<Qt3D::Shape>(uri, 2, 0, "Shape");
+ qmlRegisterType<Qt3D::QmlTexture>(uri, 2, 0, "Texture");
+ // Framegraph components - TODO RenderTarget, RenderTargetSelector
+ qmlRegisterType<Qt3D::Render::Quick::Quick3DCameraSelector>(uri, 2, 0, "CameraSelector");
+ qmlRegisterType<Qt3D::Render::Quick::Quick3DRenderPassFilter>(uri, 2, 0, "RenderPassFilter");
+ qmlRegisterType<Qt3D::Render::Quick::Quick3DTechniqueFilter>(uri, 2, 0, "TechniqueFilter");
+ qmlRegisterType<Qt3D::Render::Quick::Quick3DViewport>(uri, 2, 0, "Viewport");
+// qmlRegisterType<Qt3D::FrameGraphItem>("Qt3D.Render", 2, 0, "FrameGraphNode");
+ qmlRegisterType<Qt3D::Render::Quick::Quick3DRenderTargetSelector>(uri, 2, 0, "RenderTargetSelector");
+ qmlRegisterType<Qt3D::FrameGraph>(uri, 2, 0, "FrameGraph");
+}
+
+QT_END_NAMESPACE
+
+
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.h b/src/quick3d/imports/render/qt3dquick3drenderplugin.h
new file mode 100644
index 000000000..a28916b51
--- /dev/null
+++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.h
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DQUICK3DRENDERPLUGIN_H
+#define QT3DQUICK3DRENDERPLUGIN_H
+
+#include <QtQml/QQmlExtensionPlugin>
+
+QT_BEGIN_NAMESPACE
+
+class Qt3DQuick3DRenderPlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
+public:
+ void registerTypes(const char *uri) Q_DECL_OVERRIDE;
+};
+
+QT_END_NAMESPACE
+
+#endif // QT3DQUICK3DRENDERPLUGIN_H
diff --git a/src/quick3d/imports/render/render.pro b/src/quick3d/imports/render/render.pro
new file mode 100644
index 000000000..f0df6916f
--- /dev/null
+++ b/src/quick3d/imports/render/render.pro
@@ -0,0 +1,15 @@
+CXX_MODULE = qml
+TARGET = quick3drenderplugin
+TARGETPATH = Qt3D/Render
+
+QT += qml 3dcore 3drenderer 3dquick 3dquickrenderer
+
+HEADERS += \
+ qt3dquick3drenderplugin.h
+
+SOURCES += \
+ qt3dquick3drenderplugin.cpp
+
+OTHER_FILES += qmldir
+
+load(qml_plugin)
diff --git a/src/quick3d/quick3d.pro b/src/quick3d/quick3d.pro
index b05fabd14..90204568d 100644
--- a/src/quick3d/quick3d.pro
+++ b/src/quick3d/quick3d.pro
@@ -1,30 +1,6 @@
-TARGET = Qt3DQuick
-
-QT += core-private gui-private qml qml-private quick 3dcore
-
-DEFINES += QT3DQUICK_LIBRARY
-
-MODULE = 3dquick
-
-load(qt_module)
-
-gcov {
- CONFIG += static
- QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
- QMAKE_LFLAGS += -fprofile-arcs -ftest-coverage
-} else {
- CONFIG += dll
-}
-
-HEADERS += $$PRIVATE_HEADERS \
- qt3dquick_global.h \
- quickwindow.h
-
-!contains(QT_CONFIG, egl):DEFINES += QT_NO_EGL
-
-# otherwise mingw headers do not declare common functions like ::strcasecmp
-win32-g++*:QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x
-
-SOURCES += \
- quickwindow.cpp
-
+TEMPLATE = subdirs
+CONFIG += ordered
+SUBDIRS += \
+ quick3d \
+ quick3drenderer \
+ imports
diff --git a/src/quick3d/quick3d/items/items.pri b/src/quick3d/quick3d/items/items.pri
new file mode 100644
index 000000000..19db4cb55
--- /dev/null
+++ b/src/quick3d/quick3d/items/items.pri
@@ -0,0 +1,11 @@
+HEADERS += \
+ $$PWD/quick3dnode.h \
+ $$PWD/quick3dentity.h \
+ $$PWD/quick3dtransform.h \
+
+SOURCES += \
+ $$PWD/quick3dnode.cpp \
+ $$PWD/quick3dentity.cpp \
+ $$PWD/quick3dtransform.cpp \
+
+INCLUDEPATH += $$PWD
diff --git a/src/core/nodes/quick3dentity.cpp b/src/quick3d/quick3d/items/quick3dentity.cpp
index ab49f14ec..227e8b542 100644
--- a/src/core/nodes/quick3dentity.cpp
+++ b/src/quick3d/quick3d/items/quick3dentity.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include "quick3dentity.h"
-#include "component.h"
+#include <Qt3DCore/component.h>
QT_BEGIN_NAMESPACE
diff --git a/src/core/nodes/quick3dentity.h b/src/quick3d/quick3d/items/quick3dentity.h
index 069692588..31c9387f9 100644
--- a/src/core/nodes/quick3dentity.h
+++ b/src/quick3d/quick3d/items/quick3dentity.h
@@ -43,8 +43,9 @@
#define QT3D_QUICK_QUICK3DENTITY_H
#include <Qt3DCore/entity.h>
-#include <Qt3DCore/quick3dnode.h>
#include <QQmlListProperty>
+#include <Qt3DQuick/quick3dnode.h>
+#include <Qt3DQuick/qt3dquick_global.h>
QT_BEGIN_NAMESPACE
@@ -54,7 +55,7 @@ class Component;
namespace Quick {
-class Quick3DEntity : public Quick3DNode, public Entity
+class QT3DQUICKSHARED_EXPORT Quick3DEntity : public Quick3DNode, public Entity
{
Q_OBJECT
Q_INTERFACES(Qt3D::Entity)
diff --git a/src/core/nodes/quick3dnode.cpp b/src/quick3d/quick3d/items/quick3dnode.cpp
index 9c1d9560f..9c1d9560f 100644
--- a/src/core/nodes/quick3dnode.cpp
+++ b/src/quick3d/quick3d/items/quick3dnode.cpp
diff --git a/src/core/nodes/quick3dnode.h b/src/quick3d/quick3d/items/quick3dnode.h
index a3d8badd8..9ab75668e 100644
--- a/src/core/nodes/quick3dnode.h
+++ b/src/quick3d/quick3d/items/quick3dnode.h
@@ -42,9 +42,9 @@
#ifndef QT3D_QUICK_QUICK3DNODE_H
#define QT3D_QUICK_QUICK3DNODE_H
-#include <Qt3DCore/node.h>
#include <QQmlListProperty>
-#include <Qt3DCore/qt3dcore_global.h>
+#include <Qt3DCore/node.h>
+#include <Qt3DQuick/qt3dquick_global.h>
QT_BEGIN_NAMESPACE
@@ -52,7 +52,7 @@ namespace Qt3D {
namespace Quick {
-class QT3DCORESHARED_EXPORT Quick3DNode : public Qt3D::Node
+class QT3DQUICKSHARED_EXPORT Quick3DNode : public Qt3D::Node
{
Q_OBJECT
Q_PROPERTY(QQmlListProperty<QObject> data READ data)
diff --git a/src/core/transforms/quick3dtransform.cpp b/src/quick3d/quick3d/items/quick3dtransform.cpp
index cc6ff3ee2..cc6ff3ee2 100644
--- a/src/core/transforms/quick3dtransform.cpp
+++ b/src/quick3d/quick3d/items/quick3dtransform.cpp
diff --git a/src/core/transforms/quick3dtransform.h b/src/quick3d/quick3d/items/quick3dtransform.h
index d6ef323ba..7df06cd89 100644
--- a/src/core/transforms/quick3dtransform.h
+++ b/src/quick3d/quick3d/items/quick3dtransform.h
@@ -45,6 +45,7 @@
#include <QtCore/QtGlobal>
#include <Qt3DCore/transform.h>
#include <QQmlListProperty>
+#include <Qt3DQuick/qt3dquick_global.h>
QT_BEGIN_NAMESPACE
@@ -52,7 +53,7 @@ namespace Qt3D {
namespace Quick {
-class Quick3DTransform : public Transform
+class QT3DQUICKSHARED_EXPORT Quick3DTransform : public Transform
{
Q_OBJECT
Q_PROPERTY(QQmlListProperty<Qt3D::AbstractTransform> transforms READ transformList)
diff --git a/src/quick3d/qt3dquick_global.h b/src/quick3d/quick3d/qt3dquick_global.h
index a3c45d7f0..a3c45d7f0 100644
--- a/src/quick3d/qt3dquick_global.h
+++ b/src/quick3d/quick3d/qt3dquick_global.h
diff --git a/src/quick3d/quick3d/quick3d.pro b/src/quick3d/quick3d/quick3d.pro
new file mode 100644
index 000000000..506725004
--- /dev/null
+++ b/src/quick3d/quick3d/quick3d.pro
@@ -0,0 +1,31 @@
+TARGET = Qt3DQuick
+
+QT += core-private gui-private qml qml-private quick 3dcore
+
+DEFINES += QT3DQUICK_LIBRARY
+
+MODULE = 3dquick
+
+load(qt_module)
+
+gcov {
+ CONFIG += static
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ QMAKE_LFLAGS += -fprofile-arcs -ftest-coverage
+} else {
+ CONFIG += dll
+}
+
+HEADERS += $$PRIVATE_HEADERS \
+ qt3dquick_global.h \
+ quickwindow.h
+
+SOURCES += quickwindow.cpp
+
+!contains(QT_CONFIG, egl):DEFINES += QT_NO_EGL
+
+# otherwise mingw headers do not declare common functions like ::strcasecmp
+win32-g++*:QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x
+
+include(./items/items.pri)
+
diff --git a/src/quick3d/quickwindow.cpp b/src/quick3d/quick3d/quickwindow.cpp
index 339084acf..339084acf 100644
--- a/src/quick3d/quickwindow.cpp
+++ b/src/quick3d/quick3d/quickwindow.cpp
diff --git a/src/quick3d/quickwindow.h b/src/quick3d/quick3d/quickwindow.h
index f104fe7c0..f104fe7c0 100644
--- a/src/quick3d/quickwindow.h
+++ b/src/quick3d/quick3d/quickwindow.h
diff --git a/src/quick3d/quick3drenderer/items/items.pri b/src/quick3d/quick3drenderer/items/items.pri
new file mode 100644
index 000000000..019b566f3
--- /dev/null
+++ b/src/quick3d/quick3drenderer/items/items.pri
@@ -0,0 +1,17 @@
+HEADERS += \
+ $$PWD/quick3dcameraselector.h \
+ $$PWD/quick3dframegraphitem.h \
+ $$PWD/quick3drenderpassfilter.h \
+ $$PWD/quick3drendertargetselector.h \
+ $$PWD/quick3dtechniquefilter.h \
+ $$PWD/quick3dviewport.h
+
+SOURCES += \
+ $$PWD/quick3dcameraselector.cpp \
+ $$PWD/quick3dframegraphitem.cpp \
+ $$PWD/quick3drenderpassfilter.cpp \
+ $$PWD/quick3drendertargetselector.cpp \
+ $$PWD/quick3dtechniquefilter.cpp \
+ $$PWD/quick3dviewport.cpp
+
+INCLUDEPATH += $$PWD
diff --git a/src/render/frontend/quick3dcameraselector.cpp b/src/quick3d/quick3drenderer/items/quick3dcameraselector.cpp
index 8fa8f2804..92015e268 100644
--- a/src/render/frontend/quick3dcameraselector.cpp
+++ b/src/quick3d/quick3drenderer/items/quick3dcameraselector.cpp
@@ -45,6 +45,8 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
Quick3DCameraSelector::Quick3DCameraSelector(Node *parent)
@@ -55,6 +57,8 @@ Quick3DCameraSelector::Quick3DCameraSelector(Node *parent)
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
diff --git a/src/render/frontend/quick3dcameraselector.h b/src/quick3d/quick3drenderer/items/quick3dcameraselector.h
index 3c80bdb9c..015831d83 100644
--- a/src/render/frontend/quick3dcameraselector.h
+++ b/src/quick3d/quick3drenderer/items/quick3dcameraselector.h
@@ -39,19 +39,21 @@
**
****************************************************************************/
-#ifndef QT3D_QUICK_QUICK3DCAMERASELECTOR_H
-#define QT3D_QUICK_QUICK3DCAMERASELECTOR_H
+#ifndef QT3D_RENDER_QUICK_QUICK3DCAMERASELECTOR_H
+#define QT3D_RENDER_QUICK_QUICK3DCAMERASELECTOR_H
-#include <Qt3DRenderer/quick3dframegraphitem.h>
+#include <Qt3DQuickRenderer/quick3dframegraphitem.h>
#include <Qt3DRenderer/cameraselector.h>
QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
-class Quick3DCameraSelector : public Quick3DFrameGraphItem, public virtual CameraSelector
+class QT3DQUICKRENDERERSHARED_EXPORT Quick3DCameraSelector : public Quick3DFrameGraphItem, public virtual CameraSelector
{
Q_OBJECT
Q_INTERFACES(Qt3D::CameraSelector)
@@ -65,8 +67,10 @@ Q_SIGNALS:
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
-#endif // QUICK3DCAMERASELECTOR_H
+#endif // QT3D_RENDER_QUICK_QUICK3DCAMERASELECTOR_H
diff --git a/src/render/frontend/quick3dframegraphitem.cpp b/src/quick3d/quick3drenderer/items/quick3dframegraphitem.cpp
index 42003274d..72c1110b8 100644
--- a/src/render/frontend/quick3dframegraphitem.cpp
+++ b/src/quick3d/quick3drenderer/items/quick3dframegraphitem.cpp
@@ -40,16 +40,17 @@
****************************************************************************/
#include "quick3dframegraphitem.h"
-#include "framegraphitem_p.h"
QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
Quick3DFrameGraphItem::Quick3DFrameGraphItem(Node *parent)
- : Quick3DNode(parent)
+ : Qt3D::Quick::Quick3DNode(parent)
, FrameGraphItem()
{
}
@@ -60,6 +61,8 @@ Quick3DFrameGraphItem::~Quick3DFrameGraphItem()
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
diff --git a/src/render/frontend/quick3dframegraphitem.h b/src/quick3d/quick3drenderer/items/quick3dframegraphitem.h
index 220a74a26..fb8210d8b 100644
--- a/src/render/frontend/quick3dframegraphitem.h
+++ b/src/quick3d/quick3drenderer/items/quick3dframegraphitem.h
@@ -39,21 +39,22 @@
**
****************************************************************************/
-#ifndef QT3D_QUICK_QUICK3DFRAMEGRAPHITEM_H
-#define QT3D_QUICK_QUICK3DFRAMEGRAPHITEM_H
+#ifndef QT3D_RENDER_QUICK_QUICK3DFRAMEGRAPHITEM_H
+#define QT3D_RENDER_QUICK_QUICK3DFRAMEGRAPHITEM_H
-#include <Qt3DCore/quick3dnode.h>
+#include <Qt3DQuickRenderer/qt3dquickrenderer_global.h>
+#include <Qt3DQuick/quick3dnode.h>
#include <Qt3DRenderer/framegraphitem.h>
QT_BEGIN_NAMESPACE
namespace Qt3D {
-class FrameGraphItemPrivate;
+namespace Render {
namespace Quick {
-class Quick3DFrameGraphItem : public Quick3DNode, public FrameGraphItem
+class QT3DQUICKRENDERERSHARED_EXPORT Quick3DFrameGraphItem : public Qt3D::Quick::Quick3DNode, public FrameGraphItem
{
Q_OBJECT
Q_INTERFACES(Qt3D::FrameGraphItem)
@@ -70,8 +71,10 @@ Q_SIGNALS:
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
-#endif // QT3D_QUICK_QUICK3DFRAMEGRAPHITEM_H
+#endif // QT3D_RENDER_QUICK_QUICK3DFRAMEGRAPHITEM_H
diff --git a/src/render/frontend/quick3drenderpassfilter.cpp b/src/quick3d/quick3drenderer/items/quick3drenderpassfilter.cpp
index 23dcf4784..fc935983d 100644
--- a/src/render/frontend/quick3drenderpassfilter.cpp
+++ b/src/quick3d/quick3drenderer/items/quick3drenderpassfilter.cpp
@@ -45,6 +45,8 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
Quick3DRenderPassFilter::Quick3DRenderPassFilter(Node *parent)
@@ -55,6 +57,8 @@ Quick3DRenderPassFilter::Quick3DRenderPassFilter(Node *parent)
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
diff --git a/src/render/frontend/quick3drenderpassfilter.h b/src/quick3d/quick3drenderer/items/quick3drenderpassfilter.h
index b925582fb..dead1314a 100644
--- a/src/render/frontend/quick3drenderpassfilter.h
+++ b/src/quick3d/quick3drenderer/items/quick3drenderpassfilter.h
@@ -39,19 +39,21 @@
**
****************************************************************************/
-#ifndef QT3D_QUICK_QUICK3DRENDERPASSFILTER_H
-#define QT3D_QUICK_QUICK3DRENDERPASSFILTER_H
+#ifndef QT3D_RENDER_QUICK_QUICK3DRENDERPASSFILTER_H
+#define QT3D_RENDER_QUICK_QUICK3DRENDERPASSFILTER_H
-#include <Qt3DRenderer/quick3dframegraphitem.h>
+#include <Qt3DQuickRenderer/quick3dframegraphitem.h>
#include <Qt3DRenderer/renderpassfilter.h>
QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
-class Quick3DRenderPassFilter : public Quick3DFrameGraphItem, public virtual RenderPassFilter
+class QT3DQUICKRENDERERSHARED_EXPORT Quick3DRenderPassFilter : public Quick3DFrameGraphItem, public virtual RenderPassFilter
{
Q_OBJECT
Q_INTERFACES(Qt3D::RenderPassFilter)
@@ -67,8 +69,10 @@ Q_SIGNALS:
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
-#endif // QT3D_QUICK_QUICK3DRENDERPASSFILTER_H
+#endif // QT3D_RENDER_QUICK_QUICK3DRENDERPASSFILTER_H
diff --git a/src/render/frontend/quick3drendertargetselector.cpp b/src/quick3d/quick3drenderer/items/quick3drendertargetselector.cpp
index f0aa1df95..bac614668 100644
--- a/src/render/frontend/quick3drendertargetselector.cpp
+++ b/src/quick3d/quick3drenderer/items/quick3drendertargetselector.cpp
@@ -45,6 +45,8 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
Quick3DRenderTargetSelector::Quick3DRenderTargetSelector(Node * parent)
@@ -55,6 +57,8 @@ Quick3DRenderTargetSelector::Quick3DRenderTargetSelector(Node * parent)
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
diff --git a/src/render/frontend/quick3drendertargetselector.h b/src/quick3d/quick3drenderer/items/quick3drendertargetselector.h
index ca24e7736..a3afbd852 100644
--- a/src/render/frontend/quick3drendertargetselector.h
+++ b/src/quick3d/quick3drenderer/items/quick3drendertargetselector.h
@@ -39,19 +39,21 @@
**
****************************************************************************/
-#ifndef QT3D_QUICK_QUICK3DRENDERTARGETSELECTOR_H
-#define QT3D_QUICK_QUICK3DRENDERTARGETSELECTOR_H
+#ifndef QT3D_RENDER_QUICK_QUICK3DRENDERTARGETSELECTOR_H
+#define QT3D_RENDER_QUICK_QUICK3DRENDERTARGETSELECTOR_H
-#include <Qt3DRenderer/quick3dframegraphitem.h>
+#include <Qt3DQuickRenderer/quick3dframegraphitem.h>
#include <Qt3DRenderer/rendertargetselector.h>
QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
-class Quick3DRenderTargetSelector : public Quick3DFrameGraphItem, public virtual RenderTargetSelector
+class QT3DQUICKRENDERERSHARED_EXPORT Quick3DRenderTargetSelector : public Quick3DFrameGraphItem, public virtual RenderTargetSelector
{
Q_OBJECT
Q_INTERFACES(Qt3D::RenderTargetSelector)
@@ -64,8 +66,10 @@ Q_SIGNALS:
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
-#endif // QT3D_QUICK_QUICK3DRENDERTARGETSELECTOR_H
+#endif // QT3D_RENDER_QUICK_QUICK3DRENDERTARGETSELECTOR_H
diff --git a/src/render/frontend/quick3dtechniquefilter.cpp b/src/quick3d/quick3drenderer/items/quick3dtechniquefilter.cpp
index a05ed33a0..bbe50dcb6 100644
--- a/src/render/frontend/quick3dtechniquefilter.cpp
+++ b/src/quick3d/quick3drenderer/items/quick3dtechniquefilter.cpp
@@ -45,6 +45,8 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
Quick3DTechniqueFilter::Quick3DTechniqueFilter(Node *parent)
@@ -98,6 +100,8 @@ void Quick3DTechniqueFilter::clearTags(QQmlListProperty<Tag> *list)
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
diff --git a/src/render/frontend/quick3dtechniquefilter.h b/src/quick3d/quick3drenderer/items/quick3dtechniquefilter.h
index 8e943a291..1ca6ce9b2 100644
--- a/src/render/frontend/quick3dtechniquefilter.h
+++ b/src/quick3d/quick3drenderer/items/quick3dtechniquefilter.h
@@ -39,10 +39,10 @@
**
****************************************************************************/
-#ifndef QT3D_QUICK_QUICK3DTECHNIQUEFILTER_H
-#define QT3D_QUICK_QUICK3DTECHNIQUEFILTER_H
+#ifndef QT3D_RENDER_QUICK_QUICK3DTECHNIQUEFILTER_H
+#define QT3D_RENDER_QUICK_QUICK3DTECHNIQUEFILTER_H
-#include <Qt3DRenderer/quick3dframegraphitem.h>
+#include <Qt3DQuickRenderer/quick3dframegraphitem.h>
#include <Qt3DRenderer/techniquefilter.h>
#include <QQmlListProperty>
@@ -50,11 +50,11 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
-class TechniqueFilterPrivate;
+namespace Render {
namespace Quick {
-class Quick3DTechniqueFilter : public Quick3DFrameGraphItem, public virtual TechniqueFilter
+class QT3DQUICKRENDERERSHARED_EXPORT Quick3DTechniqueFilter : public Quick3DFrameGraphItem, public virtual TechniqueFilter
{
Q_OBJECT
Q_INTERFACES(Qt3D::TechniqueFilter)
@@ -78,8 +78,10 @@ private:
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
-#endif // QT3D_QUICK_QUICK3DTECHNIQUEFILTER_H
+#endif // QT3D_RENDER_QUICK_QUICK3DTECHNIQUEFILTER_H
diff --git a/src/render/frontend/quick3dviewport.cpp b/src/quick3d/quick3drenderer/items/quick3dviewport.cpp
index afdb9abea..bf32b92d6 100644
--- a/src/render/frontend/quick3dviewport.cpp
+++ b/src/quick3d/quick3drenderer/items/quick3dviewport.cpp
@@ -45,6 +45,8 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
Quick3DViewport::Quick3DViewport(Node *parent)
@@ -55,6 +57,8 @@ Quick3DViewport::Quick3DViewport(Node *parent)
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
diff --git a/src/render/frontend/quick3dviewport.h b/src/quick3d/quick3drenderer/items/quick3dviewport.h
index 2833c0d25..0e488afa8 100644
--- a/src/render/frontend/quick3dviewport.h
+++ b/src/quick3d/quick3drenderer/items/quick3dviewport.h
@@ -39,19 +39,21 @@
**
****************************************************************************/
-#ifndef QT3D_QUICK_QUICK3DVIEWPORT_H
-#define QT3D_QUICK_QUICK3DVIEWPORT_H
+#ifndef QT3D_RENDER_QUICK_QUICK3DVIEWPORT_H
+#define QT3D_RENDER_QUICK_QUICK3DVIEWPORT_H
-#include <Qt3DRenderer/quick3dframegraphitem.h>
+#include <Qt3DQuickRenderer/quick3dframegraphitem.h>
#include <Qt3DRenderer/viewport.h>
QT_BEGIN_NAMESPACE
namespace Qt3D {
+namespace Render {
+
namespace Quick {
-class Quick3DViewport : public Quick3DFrameGraphItem, public virtual Viewport
+class QT3DQUICKRENDERERSHARED_EXPORT Quick3DViewport : public Quick3DFrameGraphItem, public virtual Viewport
{
Q_OBJECT
Q_INTERFACES(Qt3D::Viewport)
@@ -66,9 +68,11 @@ Q_SIGNALS:
} // Quick
+} // Render
+
} // Qt3D
QT_END_NAMESPACE
-#endif // QUICK3DVIEWPORT_H
+#endif // QT3D_RENDER_QUICK_QUICK3DVIEWPORT_H
diff --git a/src/quick3d/quick3drenderer/qt3dquickrenderer_global.h b/src/quick3d/quick3drenderer/qt3dquickrenderer_global.h
new file mode 100644
index 000000000..5b27ee82c
--- /dev/null
+++ b/src/quick3d/quick3drenderer/qt3dquickrenderer_global.h
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DQUICKRENDERER_GLOBAL_H
+#define QT3DQUICKRENDERER_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+QT_BEGIN_NAMESPACE
+
+#if defined(QT3DQUICKRENDERER_LIBRARY)
+# define QT3DQUICKRENDERERSHARED_EXPORT Q_DECL_EXPORT
+#else
+# define QT3DQUICKRENDERERSHARED_EXPORT Q_DECL_IMPORT
+#endif
+
+QT_END_NAMESPACE
+
+#endif // QT3DQUICKRENDERER_GLOBAL_H
diff --git a/src/quick3d/quick3drenderer/quick3drenderer.pro b/src/quick3d/quick3drenderer/quick3drenderer.pro
new file mode 100644
index 000000000..a96a8e363
--- /dev/null
+++ b/src/quick3d/quick3drenderer/quick3drenderer.pro
@@ -0,0 +1,28 @@
+TARGET = Qt3DQuickRenderer
+
+QT += core qml quick 3dcore 3drenderer 3dquick
+
+DEFINES += QT3DQUICKRENDERER_LIBRARY
+
+MODULE = 3dquickrenderer
+
+load(qt_module)
+
+gcov {
+ CONFIG += static
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ QMAKE_LFLAGS += -fprofile-arcs -ftest-coverage
+} else {
+ CONFIG += dll
+}
+
+HEADERS += $$PRIVATE_HEADERS \
+ qt3dquickrenderer_global.h
+
+!contains(QT_CONFIG, egl):DEFINES += QT_NO_EGL
+
+# otherwise mingw headers do not declare common functions like ::strcasecmp
+win32-g++*:QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x
+
+include(./items/items.pri)
+
diff --git a/src/render/backend/rendereraspect.cpp b/src/render/backend/rendereraspect.cpp
index 68079742c..9d63c9f68 100644
--- a/src/render/backend/rendereraspect.cpp
+++ b/src/render/backend/rendereraspect.cpp
@@ -55,29 +55,6 @@
#include <QThread>
#include <QWindow>
-#include <QtQml>
-
-#include "scene.h"
-#include "effect.h"
-#include "technique.h"
-#include "tag.h"
-#include "mesh.h"
-#include "material.h"
-#include "renderpass.h"
-#include "shaderprogram.h"
-#include "viewport.h"
-#include "quick3dcameraselector.h"
-#include "quick3dtechniquefilter.h"
-#include "quick3dviewport.h"
-#include "quick3drenderpassfilter.h"
-#include "quick3drendertargetselector.h"
-#include "renderpassfilter.h"
-#include "techniquefilter.h"
-#include "rendertargetselector.h"
-#include "shape.h"
-#include "texture.h"
-#include "framegraph.h"
-
QT_BEGIN_NAMESPACE
namespace Qt3D {
@@ -175,26 +152,6 @@ void RendererAspect::cleanupHelper()
*/
void RendererAspect::registerQmlComponents()
{
- qmlRegisterType<Qt3D::Scene>("Qt3D.Render", 2, 0, "Scene");
- qmlRegisterType<Qt3D::Effect>("Qt3D.Render", 2, 0, "Effect");
- qmlRegisterType<Qt3D::Technique>("Qt3D.Render", 2, 0, "Technique");
- qmlRegisterType<Qt3D::Tag>("Qt3D.Render", 2, 0, "Tag");
- qmlRegisterType<Qt3D::Mesh>("Qt3D.Render", 2, 0, "Mesh");
- qmlRegisterType<Qt3D::Material>("Qt3D.Render", 2, 0, "Material");
- qmlRegisterType<Qt3D::RenderPass>("Qt3D.Render", 2, 0, "RenderPass");
- qmlRegisterType<Qt3D::ShaderProgram>("Qt3D.Render", 2, 0, "ShaderProgram");
-
- qmlRegisterType<Qt3D::Shape>("Qt3D.Render", 2, 0, "Shape");
- qmlRegisterType<Qt3D::QmlTexture>("Qt3D.Render", 2, 0, "Texture");
-
- // Framegraph components - TODO RenderTarget, RenderTargetSelector
- qmlRegisterType<Qt3D::Quick::Quick3DCameraSelector>("Qt3D.Render", 2, 0, "CameraSelector");
- qmlRegisterType<Qt3D::Quick::Quick3DRenderPassFilter>("Qt3D.Render", 2, 0, "RenderPassFilter");
- qmlRegisterType<Qt3D::Quick::Quick3DTechniqueFilter>("Qt3D.Render", 2, 0, "TechniqueFilter");
- qmlRegisterType<Qt3D::Quick::Quick3DViewport>("Qt3D.Render", 2, 0, "Viewport");
-// qmlRegisterType<Qt3D::FrameGraphItem>("Qt3D.Render", 2, 0, "FrameGraphNode");
- qmlRegisterType<Qt3D::Quick::Quick3DRenderTargetSelector>("Qt3D.Render", 2, 0, "RenderTargetSelector");
- qmlRegisterType<Qt3D::FrameGraph>("Qt3D.Render", 2, 0, "FrameGraph");
}
}
diff --git a/src/render/frontend/render-frontend.pri b/src/render/frontend/render-frontend.pri
index 8c4658908..4c8d44515 100644
--- a/src/render/frontend/render-frontend.pri
+++ b/src/render/frontend/render-frontend.pri
@@ -25,13 +25,7 @@ HEADERS += \
$$PWD/cameraselectoritem.h \
$$PWD/renderpassfilteritem.h \
$$PWD/techniquefilteritem.h \
- $$PWD/rendertargetselectoritem.h \
- $$PWD/quick3dtechniquefilter.h \
- $$PWD/quick3dframegraphitem.h \
- $$PWD/quick3dviewport.h \
- $$PWD/quick3dcameraselector.h \
- $$PWD/quick3drenderpassfilter.h \
- $$PWD/quick3drendertargetselector.h
+ $$PWD/rendertargetselectoritem.h
SOURCES += \
$$PWD/effect.cpp \
@@ -51,10 +45,4 @@ SOURCES += \
$$PWD/cameraselectoritem.cpp \
$$PWD/techniquefilteritem.cpp \
$$PWD/renderpassfilteritem.cpp \
- $$PWD/rendertargetselectoritem.cpp \
- $$PWD/quick3dtechniquefilter.cpp \
- $$PWD/quick3dframegraphitem.cpp \
- $$PWD/quick3dviewport.cpp \
- $$PWD/quick3dcameraselector.cpp \
- $$PWD/quick3drenderpassfilter.cpp \
- $$PWD/quick3drendertargetselector.cpp
+ $$PWD/rendertargetselectoritem.cpp
diff --git a/src/render/render.pro b/src/render/render.pro
index ff1d30266..65e239696 100644
--- a/src/render/render.pro
+++ b/src/render/render.pro
@@ -1,6 +1,6 @@
TARGET = Qt3DRenderer
-QT += core-private gui-private qml qml-private quick 3dcore
+QT += core-private gui-private qml 3dcore
DEFINES += QT3DRENDERER_LIBRARY
diff --git a/sync.profile b/sync.profile
index 97e0ab4ad..9515e877e 100644
--- a/sync.profile
+++ b/sync.profile
@@ -1,7 +1,8 @@
%modules = ( # path to module name map
"Qt3DCore" => "$basedir/src/core",
"Qt3DRenderer" => "$basedir/src/render",
- "Qt3DQuick" => "$basedir/src/quick3d",
+ "Qt3DQuick" => "$basedir/src/quick3d/quick3d",
+ "Qt3DQuickRenderer" => "$basedir/src/quick3d/quick3drenderer",
);
%moduleheaders = ( # restrict the module headers to those found in relative path
);