From fd74521e9284cc2feb1bb020f2dea7bd65338e1d Mon Sep 17 00:00:00 2001 From: Paul Lemire Date: Wed, 9 Dec 2015 11:07:49 +0100 Subject: ComputeJobManager added Change-Id: Ia3d1c209ea06ce6a6fd3aa87f4034d3eeaeffdda Reviewed-by: Sean Harmer --- src/render/backend/handle_types_p.h | 2 ++ src/render/backend/managers_p.h | 13 +++++++++++++ src/render/backend/nodemanagers.cpp | 7 +++++++ src/render/backend/nodemanagers_p.h | 7 +++++++ 4 files changed, 29 insertions(+) (limited to 'src/render/backend') diff --git a/src/render/backend/handle_types_p.h b/src/render/backend/handle_types_p.h index 5e9c8fe85..f48bae2cc 100644 --- a/src/render/backend/handle_types_p.h +++ b/src/render/backend/handle_types_p.h @@ -87,6 +87,7 @@ class ObjectPicker; class BoundingVolumeDebug; class OpenGLVertexArrayObject; class Light; +class ComputeJob; typedef Qt3DCore::QHandle HAttachment; typedef Qt3DCore::QHandle HCamera; @@ -116,6 +117,7 @@ typedef Qt3DCore::QHandle HGeometryRenderer; typedef Qt3DCore::QHandle HObjectPicker; typedef Qt3DCore::QHandle HBoundingVolumeDebug; typedef Qt3DCore::QHandle HLight; +typedef Qt3DCore::QHandle HComputeJob; } // namespace Render diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h index 5df8345d0..927e6c5e9 100644 --- a/src/render/backend/managers_p.h +++ b/src/render/backend/managers_p.h @@ -74,6 +74,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -346,6 +347,17 @@ public: LightManager() {} }; +class ComputeJobManager : public Qt3DCore::QResourceManager< + ComputeJob, + Qt3DCore::QNodeId, + 16, + Qt3DCore::ArrayAllocatingPolicy, + Qt3DCore::ObjectLevelLockingPolicy> +{ +public: + ComputeJobManager() {} +}; + } // namespace Render } // namespace Qt3DRender @@ -365,6 +377,7 @@ Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::Attribute, Q_REQUIRES_CLEANUP) Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::Geometry, Q_REQUIRES_CLEANUP) Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::ObjectPicker, Q_REQUIRES_CLEANUP) Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::BoundingVolumeDebug, Q_REQUIRES_CLEANUP) +Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::ComputeJob, Q_REQUIRES_CLEANUP) QT_END_NAMESPACE diff --git a/src/render/backend/nodemanagers.cpp b/src/render/backend/nodemanagers.cpp index fca3d1198..cac7d2e5c 100644 --- a/src/render/backend/nodemanagers.cpp +++ b/src/render/backend/nodemanagers.cpp @@ -81,6 +81,7 @@ NodeManagers::NodeManagers() , m_objectPickerManager(new ObjectPickerManager()) , m_boundingVolumeDebugManager(new BoundingVolumeDebugManager()) , m_lightManager(new LightManager()) + , m_computeJobManager(new ComputeJobManager()) { } @@ -264,6 +265,12 @@ LightManager *NodeManagers::manager() const Q_DECL_NOEXCEPT return m_lightManager; } +template<> +ComputeJobManager *NodeManagers::manager() const Q_DECL_NOEXCEPT +{ + return m_computeJobManager; +} + } // Render } // Qt3DRender diff --git a/src/render/backend/nodemanagers_p.h b/src/render/backend/nodemanagers_p.h index 092a40156..22bceead3 100644 --- a/src/render/backend/nodemanagers_p.h +++ b/src/render/backend/nodemanagers_p.h @@ -92,6 +92,7 @@ class TextureManager; class TextureDataManager; class LayerManager; class LightManager; +class ComputeJobManager; class FrameGraphNode; class Annotation; @@ -122,6 +123,7 @@ class GeometryRenderer; class ObjectPicker; class BoundingVolumeDebug; class Light; +class ComputeJob; class QT3DRENDERSHARED_PRIVATE_EXPORT NodeManagers { @@ -192,6 +194,7 @@ public: inline ObjectPickerManager *objectPickerManager() const Q_DECL_NOEXCEPT { return m_objectPickerManager; } inline BoundingVolumeDebugManager *boundingVolumeDebugManager() const Q_DECL_NOEXCEPT { return m_boundingVolumeDebugManager; } inline LightManager *lightManager() const Q_DECL_NOEXCEPT { return m_lightManager; } + inline ComputeJobManager *computeJobManager() const Q_DECL_NOEXCEPT { return m_computeJobManager; } private: CameraManager *m_cameraManager; @@ -224,6 +227,7 @@ private: ObjectPickerManager *m_objectPickerManager; BoundingVolumeDebugManager *m_boundingVolumeDebugManager; LightManager *m_lightManager; + ComputeJobManager *m_computeJobManager; }; // Specializations @@ -318,6 +322,9 @@ QT3DRENDERSHARED_PRIVATE_EXPORT BoundingVolumeDebugManager *NodeManagers::manage template<> LightManager *NodeManagers::manager() const Q_DECL_NOEXCEPT; +template<> +QT3DRENDERSHARED_PRIVATE_EXPORT ComputeJobManager *NodeManagers::manager() const Q_DECL_NOEXCEPT; + } // Render } // Qt3DRender -- cgit v1.2.3