diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2014-10-16 14:50:46 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2014-10-17 21:16:23 +0200 |
commit | dbe217b871e11820279d62964d8df2f16d57778c (patch) | |
tree | 20d6104255fc89836ffeb667c8c56a43d4a40596 | |
parent | fd312e42c2bc52c1dfa546b9e4393bc729aa73b9 (diff) |
Separate handle definition from Manager declaration
All handles typedefs are defined in a dedicated small header file that can
easily be included.
Those typedefs must be used when referencing a certain type of handles to
avoid errors.
All raw QHandle uses or redefinitions of typedefs have been removed.
Change-Id: Ia6c006ede0db3be22e58dad9b3cc104029023056
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | src/render/backend/framegraph/framegraphnode_p.h | 7 | ||||
-rw-r--r-- | src/render/backend/framegraph/renderpassfilternode_p.h | 5 | ||||
-rw-r--r-- | src/render/backend/framegraph/techniquefilternode_p.h | 6 | ||||
-rw-r--r-- | src/render/backend/handle_types_p.h | 107 | ||||
-rw-r--r-- | src/render/backend/jobs/loadmeshdatajob.h | 4 | ||||
-rw-r--r-- | src/render/backend/managers_p.h | 26 | ||||
-rw-r--r-- | src/render/backend/meshdatamanager.cpp | 9 | ||||
-rw-r--r-- | src/render/backend/meshdatamanager_p.h | 10 | ||||
-rw-r--r-- | src/render/backend/render-backend.pri | 3 | ||||
-rw-r--r-- | src/render/backend/rendercommand_p.h | 14 | ||||
-rw-r--r-- | src/render/backend/rendereffect_p.h | 11 | ||||
-rw-r--r-- | src/render/backend/renderentity.cpp | 1 | ||||
-rw-r--r-- | src/render/backend/renderentity_p.h | 17 | ||||
-rw-r--r-- | src/render/backend/renderer_p.h | 7 | ||||
-rw-r--r-- | src/render/backend/rendermesh_p.h | 4 | ||||
-rw-r--r-- | src/render/backend/renderview_p.h | 15 | ||||
-rw-r--r-- | src/render/backend/texturedatamanager.cpp | 9 | ||||
-rw-r--r-- | src/render/backend/texturedatamanager_p.h | 5 |
18 files changed, 123 insertions, 137 deletions
diff --git a/src/render/backend/framegraph/framegraphnode_p.h b/src/render/backend/framegraph/framegraphnode_p.h index 2c69f9a71..1637fce68 100644 --- a/src/render/backend/framegraph/framegraphnode_p.h +++ b/src/render/backend/framegraph/framegraphnode_p.h @@ -55,15 +55,8 @@ QT_BEGIN_NAMESPACE namespace Qt3D { -template<typename T, int INDEXBITS> -class QHandle; - namespace Render { -class FrameGraphNode; - -typedef QHandle<FrameGraphNode *, 8> HFrameGraphNode; - class FrameGraphNode : public QBackendNode { public: diff --git a/src/render/backend/framegraph/renderpassfilternode_p.h b/src/render/backend/framegraph/renderpassfilternode_p.h index 28bed1360..530044cbd 100644 --- a/src/render/backend/framegraph/renderpassfilternode_p.h +++ b/src/render/backend/framegraph/renderpassfilternode_p.h @@ -57,11 +57,6 @@ class QHandle; namespace Render { -class Renderer; -class RenderCriterion; - -typedef QHandle<RenderCriterion, 16> HCriterion; - class RenderPassFilter : public Render::FrameGraphNode { diff --git a/src/render/backend/framegraph/techniquefilternode_p.h b/src/render/backend/framegraph/techniquefilternode_p.h index 3da113d72..73b809c9a 100644 --- a/src/render/backend/framegraph/techniquefilternode_p.h +++ b/src/render/backend/framegraph/techniquefilternode_p.h @@ -61,12 +61,6 @@ class QHandle; namespace Render { -class Renderer; -class RenderCriterion; - -typedef QHandle<RenderCriterion, 16> HCriterion; - - class TechniqueFilter : public FrameGraphNode { diff --git a/src/render/backend/handle_types_p.h b/src/render/backend/handle_types_p.h new file mode 100644 index 000000000..d6f6cd367 --- /dev/null +++ b/src/render/backend/handle_types_p.h @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** 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 QT3D_RENDER_HANDLE_TYPES_P_H +#define QT3D_RENDER_HANDLE_TYPES_P_H + +#include <Qt3DRenderer/qt3drenderer_global.h> +#include <Qt3DCore/qhandle.h> + +QT_BEGIN_NAMESPACE + +class QMatrix4x4; +class QOpenGLVertexArrayObject; + +namespace Qt3D { + +class QMeshData; +class TexImageData; + +namespace Render { + +class RenderAttachment; +class RenderCameraLens; +class RenderCriterion; +class RenderEffect; +class RenderEntity; +class RenderShader; +class FrameGraphNode; +class RenderLayer; +class RenderLight; +class RenderMaterial; +class SortCriterion; +class RenderTechnique; +class RenderTexture; +class RenderTransform; +class RenderMesh; +class RenderTarget; +class RenderRenderPass; + +typedef QHandle<RenderAttachment, 16> HAttachment; +typedef QHandle<RenderCameraLens, 8> HCamera; +typedef QHandle<RenderCriterion, 16> HCriterion; +typedef QHandle<RenderEffect, 16> HEffect; +typedef QHandle<RenderEntity, 16> HEntity; +typedef QHandle<FrameGraphNode *, 8> HFrameGraphNode; +typedef QHandle<RenderLayer, 16> HLayer; +typedef QHandle<RenderLight, 16> HLight; +typedef QHandle<RenderMaterial, 16> HMaterial; +typedef QHandle<QMatrix4x4, 16> HMatrix; +typedef QHandle<RenderShader, 16> HShader; +typedef QHandle<QOpenGLVertexArrayObject*, 16> HVao; +typedef QHandle<QMeshData, 16> HMeshData; +typedef QHandle<RenderShader, 16> HShader; +typedef QHandle<SortCriterion, 8> HSortCriterion; +typedef QHandle<RenderTechnique, 16> HTechnique; +typedef QHandle<RenderTexture, 16> HTexture; +typedef QHandle<RenderTransform, 16> HTransform; +typedef QHandle<RenderMesh, 16> HMesh; +typedef QHandle<RenderTarget, 8> HTarget; +typedef QHandle<RenderRenderPass, 16> HRenderPass; +typedef QHandle<TexImageData, 16> HTextureData; + +} // Render + +} // Qt3D + +QT_END_NAMESPACE + +#endif // QT3D_RENDER_HANDLE_TYPES_P_H diff --git a/src/render/backend/jobs/loadmeshdatajob.h b/src/render/backend/jobs/loadmeshdatajob.h index e4f871a10..63dafe1ec 100644 --- a/src/render/backend/jobs/loadmeshdatajob.h +++ b/src/render/backend/jobs/loadmeshdatajob.h @@ -53,13 +53,9 @@ QT_BEGIN_NAMESPACE namespace Qt3D { -typedef QHandle<QMeshData, 16> HMeshData; - namespace Render { class Renderer; -class RenderMesh; -typedef QHandle<RenderMesh, 16> HMesh; class LoadMeshDataJob : public Qt3D::QJob { diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h index 27719c675..f8e9efa22 100644 --- a/src/render/backend/managers_p.h +++ b/src/render/backend/managers_p.h @@ -59,6 +59,7 @@ #include <Qt3DRenderer/private/rendertransform_p.h> #include <Qt3DRenderer/private/rendertarget_p.h> #include <Qt3DRenderer/private/renderrenderpass_p.h> +#include <Qt3DRenderer/private/handle_types_p.h> QT_BEGIN_NAMESPACE @@ -68,31 +69,6 @@ class QMeshData; namespace Render { -class RenderShader; -class FrameGraphNode; - -typedef QHandle<RenderAttachment, 16> HAttachment; -typedef QHandle<RenderCameraLens, 8> HCamera; -typedef QHandle<RenderCriterion, 16> HCriterion; -typedef QHandle<RenderEffect, 16> HEffect; -typedef QHandle<RenderEntity, 16> HEntity; -typedef QHandle<FrameGraphNode *, 8> HFrameGraphNode; -typedef QHandle<RenderLayer, 16> HLayer; -typedef QHandle<RenderLight, 16> HLight; -typedef QHandle<RenderMaterial, 16> HMaterial; -typedef QHandle<QMatrix4x4, 16> HMatrix; -typedef QHandle<RenderShader, 16> HShader; -typedef QHandle<QOpenGLVertexArrayObject*, 16> HVao; -typedef QHandle<QMeshData, 16> HMeshData; -typedef QHandle<RenderShader, 16> HShader; -typedef QHandle<SortCriterion, 8> HSortCriterion; -typedef QHandle<RenderTechnique, 16> HTechnique; -typedef QHandle<RenderTexture, 16> HTexture; -typedef QHandle<RenderTransform, 16> HTransform; -typedef QHandle<RenderMesh, 16> HMesh; -typedef QHandle<RenderTarget, 8> HTarget; -typedef QHandle<RenderRenderPass, 16> HRenderPass; - class AttachmentManager : public QResourcesManager< RenderAttachment, QUuid, diff --git a/src/render/backend/meshdatamanager.cpp b/src/render/backend/meshdatamanager.cpp index 199a8f53c..4b9266955 100644 --- a/src/render/backend/meshdatamanager.cpp +++ b/src/render/backend/meshdatamanager.cpp @@ -46,15 +46,6 @@ QT_BEGIN_NAMESPACE namespace Qt3D { namespace Render { -MeshDataManager::MeshDataManager() - : QResourcesManager<QMeshData, - QUuid, - 16, - Qt3D::ListAllocatingPolicy, - Qt3D::ObjectLevelLockingPolicy>() -{ -} - // Called by aspect thread when RenderMesh receive a new functor in syncChanges void MeshDataManager::addMeshData(QAbstractMeshFunctorPtr functor, const QUuid &meshUuid) { diff --git a/src/render/backend/meshdatamanager_p.h b/src/render/backend/meshdatamanager_p.h index 17620cb51..9d7195bf6 100644 --- a/src/render/backend/meshdatamanager_p.h +++ b/src/render/backend/meshdatamanager_p.h @@ -46,6 +46,7 @@ #include <Qt3DCore/qresourcesmanager.h> #include <Qt3DRenderer/qmeshdata.h> #include <Qt3DRenderer/private/rendermesh_p.h> +#include <Qt3DRenderer/private/handle_types_p.h> #include <QHash> #include <QPair> @@ -57,9 +58,6 @@ QT_BEGIN_NAMESPACE namespace Qt3D { namespace Render { -typedef QHandle<QMeshData, 16> HMeshData; -typedef QHandle<RenderMesh, 16> HMesh; - class MeshDataManager : public QResourcesManager<QMeshData, QUuid, 16, @@ -67,11 +65,7 @@ class MeshDataManager : public QResourcesManager<QMeshData, Qt3D::ObjectLevelLockingPolicy> { public: - MeshDataManager(); - - inline bool hasMeshData(const QUuid &id) { return contains(id); } - inline QMeshData* getOrCreateMeshData(const QUuid &id) { return getOrCreateResource(id); } - inline QMeshData* meshData(const QUuid &id) { return lookupResource(id); } + MeshDataManager() {} void addMeshData(QAbstractMeshFunctorPtr functor, const QUuid &meshUuid); QHash<QUuid, QAbstractMeshFunctorPtr> meshesPending(); diff --git a/src/render/backend/render-backend.pri b/src/render/backend/render-backend.pri index bd4993847..e74977c6e 100644 --- a/src/render/backend/render-backend.pri +++ b/src/render/backend/render-backend.pri @@ -46,7 +46,8 @@ HEADERS += \ $$PWD/shadervariables_p.h \ $$PWD/qgraphicsutils_p.h \ $$PWD/rendernodefunctor_p.h \ - $$PWD/managers_p.h + $$PWD/managers_p.h \ + $$PWD/handle_types_p.h SOURCES += \ $$PWD/rendereraspect.cpp \ diff --git a/src/render/backend/rendercommand_p.h b/src/render/backend/rendercommand_p.h index 395bc98da..1875b697a 100644 --- a/src/render/backend/rendercommand_p.h +++ b/src/render/backend/rendercommand_p.h @@ -46,7 +46,7 @@ #include <qglobal.h> #include <Qt3DRenderer/private/quniformvalue_p.h> #include <Qt3DRenderer/private/qmeshdata_p.h> -#include <Qt3DCore/qhandle.h> +#include <Qt3DRenderer/private/handle_types_p.h> #include <QOpenGLShaderProgram> #include <QOpenGLTexture> #include <QMatrix4x4> @@ -59,20 +59,8 @@ namespace Qt3D { namespace Render { -class RenderTarget; -class RenderMaterial; -class RenderMesh; -class RenderShader; -class RenderTechnique; class RenderStateSet; -typedef QHandle<QOpenGLVertexArrayObject*, 16> HVao; -typedef QHandle<RenderMaterial, 16> HMaterial; -typedef QHandle<RenderMesh, 16> HMesh; -typedef QHandle<RenderShader, 16> HShader; -typedef QHandle<QMeshData, 16> HMeshData; -typedef QHandle<RenderTechnique, 16> HTechnique; - class RenderCommand { public: diff --git a/src/render/backend/rendereffect_p.h b/src/render/backend/rendereffect_p.h index e968d7679..2a484ac6d 100644 --- a/src/render/backend/rendereffect_p.h +++ b/src/render/backend/rendereffect_p.h @@ -44,7 +44,6 @@ #include <Qt3DRenderer/qt3drenderer_global.h> #include <Qt3DRenderer/private/parameterpack_p.h> -#include <Qt3DCore/private/qobserverinterface_p.h> #include <Qt3DCore/qbackendnode.h> #include <QList> #include <QUuid> @@ -54,19 +53,9 @@ QT_BEGIN_NAMESPACE namespace Qt3D { class QTechnique; -class QEffect; - -template <typename T, int INDEXBITS> -class QHandle; namespace Render { -class RenderTechnique; - -typedef QHandle<RenderTechnique, 16> HTechnique; - -class EffectManager; - class RenderEffect : public QBackendNode { diff --git a/src/render/backend/renderentity.cpp b/src/render/backend/renderentity.cpp index d6d76417e..484a1d83f 100644 --- a/src/render/backend/renderentity.cpp +++ b/src/render/backend/renderentity.cpp @@ -41,6 +41,7 @@ #include "renderentity_p.h" #include <Qt3DRenderer/private/meshdatamanager_p.h> +#include <Qt3DRenderer/private/managers_p.h> #include <Qt3DRenderer/private/renderer_p.h> #include <Qt3DRenderer/qabstractlight.h> #include <Qt3DRenderer/qlayer.h> diff --git a/src/render/backend/renderentity_p.h b/src/render/backend/renderentity_p.h index 7dd763c0d..b7a426ca8 100644 --- a/src/render/backend/renderentity_p.h +++ b/src/render/backend/renderentity_p.h @@ -44,7 +44,8 @@ #define QT3D_RENDER_RENDERNODE_H #include <Qt3DRenderer/private/renderer_p.h> -#include <Qt3DRenderer/private/managers_p.h> +#include <Qt3DRenderer/private/handle_types_p.h> +#include <Qt3DCore/qbackendnode.h> #include <Qt3DCore/qhandle.h> #include <QVector> #include <QUuid> @@ -64,20 +65,6 @@ class QComponent; namespace Render { class Renderer; -class EntityManager; -class RenderLight; -class RenderEntity; -class RenderLayer; -class RenderMesh; -class RenderTransform; - -typedef QHandle<RenderCameraLens, 8> HCamera; -typedef QHandle<RenderEntity, 16> HEntity; -typedef QHandle<RenderLayer, 16> HLayer; -typedef QHandle<RenderLight, 16> HLight; -typedef QHandle<QMatrix4x4, 16> HMatrix; -typedef QHandle<RenderTransform, 16> HTransform; -typedef QHandle<RenderMesh, 16> HMesh; class RenderEntity : public QBackendNode { diff --git a/src/render/backend/renderer_p.h b/src/render/backend/renderer_p.h index 92507ff53..131e25310 100644 --- a/src/render/backend/renderer_p.h +++ b/src/render/backend/renderer_p.h @@ -45,8 +45,8 @@ #include <Qt3DRenderer/qtechnique.h> #include <Qt3DRenderer/private/quniformvalue_p.h> +#include <Qt3DRenderer/private/handle_types_p.h> #include <Qt3DCore/qjob.h> -#include <Qt3DCore/qhandle.h> #include <QHash> #include <QMatrix4x4> @@ -123,11 +123,6 @@ class SceneManager; class AttachmentManager; class SortCriterionManager; -typedef QHandle<RenderMaterial, 16> HMaterial; -typedef QHandle<RenderEffect, 16> HEffect; -typedef QHandle<RenderRenderPass, 16> HRenderPass; -typedef QHandle<RenderTechnique, 16> HTechnique; - class Renderer { public: diff --git a/src/render/backend/rendermesh_p.h b/src/render/backend/rendermesh_p.h index 5e9f5852c..0dc60964d 100644 --- a/src/render/backend/rendermesh_p.h +++ b/src/render/backend/rendermesh_p.h @@ -43,8 +43,7 @@ #define QT3D_RENDER_RENDERMESH_H #include <Qt3DCore/axisalignedboundingbox.h> -#include <Qt3DCore/qhandle.h> -#include <Qt3DCore/private/qobserverinterface_p.h> +#include <Qt3DRenderer/private/handle_types_p.h> #include <Qt3DCore/qbackendnode.h> #include <QUuid> @@ -60,7 +59,6 @@ class QRenderPass; class QMeshData; typedef QSharedPointer<QAbstractMeshFunctor> QAbstractMeshFunctorPtr; -typedef QHandle<QMeshData, 16> HMeshData; namespace Render { diff --git a/src/render/backend/renderview_p.h b/src/render/backend/renderview_p.h index 9f389ede8..14d9235dc 100644 --- a/src/render/backend/renderview_p.h +++ b/src/render/backend/renderview_p.h @@ -43,12 +43,12 @@ #ifndef QT3D_RENDER_RENDERVIEW_H #define QT3D_RENDER_RENDERVIEW_H +#include <Qt3DRenderer/qparameter.h> +#include <Qt3DRenderer/qclearbuffer.h> #include <Qt3DRenderer/private/renderer_p.h> #include <Qt3DRenderer/private/rendercameralens_p.h> -#include <Qt3DRenderer/qparameter.h> -#include <Qt3DCore/qhandle.h> #include <Qt3DRenderer/private/attachmentpack_p.h> -#include <Qt3DRenderer/qclearbuffer.h> +#include <Qt3DRenderer/private/handle_types_p.h> #include <QVector> #include <QMutex> #include <QColor> @@ -67,17 +67,8 @@ class RenderCommand; class RenderPassFilter; class TechniqueFilter; class ViewportNode; -class RenderMesh; class RenderEffect; class RenderRenderPass; -class RenderLight; -class RenderTarget; - -typedef QHandle<RenderMesh, 16> HMesh; -typedef QHandle<RenderMaterial, 16> HMaterial; -typedef QHandle<RenderTechnique, 16> HTechnique; -typedef QHandle<RenderLight, 16> HLight; -typedef QHandle<RenderTarget, 8> HTarget; typedef QPair<HLight, QMatrix4x4> LightPair; diff --git a/src/render/backend/texturedatamanager.cpp b/src/render/backend/texturedatamanager.cpp index 8059d9dda..e72fe64af 100644 --- a/src/render/backend/texturedatamanager.cpp +++ b/src/render/backend/texturedatamanager.cpp @@ -47,15 +47,6 @@ namespace Qt3D { namespace Render { -TextureDataManager::TextureDataManager() - : QResourcesManager<TexImageData, - QUuid, - 16, - Qt3D::ListAllocatingPolicy, - Qt3D::ObjectLevelLockingPolicy>() -{ -} - void Qt3D::Render::TextureDataManager::addTextureData(Qt3D::QTexture *texture) { if (!contains(texture->uuid()) && !m_texturesPending.contains(texture)) diff --git a/src/render/backend/texturedatamanager_p.h b/src/render/backend/texturedatamanager_p.h index 4d78ad1be..ceafef542 100644 --- a/src/render/backend/texturedatamanager_p.h +++ b/src/render/backend/texturedatamanager_p.h @@ -45,6 +45,7 @@ #include <Qt3DCore/QResourcesManager> #include <Qt3DRenderer/qtexture.h> #include <Qt3DRenderer/texturedata.h> +#include <Qt3DRenderer/private/handle_types_p.h> #include <QUuid> @@ -54,8 +55,6 @@ namespace Qt3D { namespace Render { -typedef QHandle<TexImageData, 16> HTextureData; - class TextureDataManager : public QResourcesManager<TexImageData, QUuid, 16, @@ -63,7 +62,7 @@ class TextureDataManager : public QResourcesManager<TexImageData, Qt3D::ObjectLevelLockingPolicy> { public: - TextureDataManager(); + TextureDataManager() {} void addTextureData(QTexture *texture); |