summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-12-09 11:07:49 +0100
committerPaul Lemire <paul.lemire@kdab.com>2016-01-13 14:03:38 +0000
commitfd74521e9284cc2feb1bb020f2dea7bd65338e1d (patch)
treeb84dc87c0c838a787a9b7b107905923ef49482ff
parent129daa5d24e6a7a960b29150c4c65693bb7b1f21 (diff)
ComputeJobManager added
Change-Id: Ia3d1c209ea06ce6a6fd3aa87f4034d3eeaeffdda Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/backend/handle_types_p.h2
-rw-r--r--src/render/backend/managers_p.h13
-rw-r--r--src/render/backend/nodemanagers.cpp7
-rw-r--r--src/render/backend/nodemanagers_p.h7
4 files changed, 29 insertions, 0 deletions
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<RenderAttachment, 16> HAttachment;
typedef Qt3DCore::QHandle<CameraLens, 8> HCamera;
@@ -116,6 +117,7 @@ typedef Qt3DCore::QHandle<GeometryRenderer, 16> HGeometryRenderer;
typedef Qt3DCore::QHandle<ObjectPicker, 16> HObjectPicker;
typedef Qt3DCore::QHandle<BoundingVolumeDebug, 16> HBoundingVolumeDebug;
typedef Qt3DCore::QHandle<Light, 16> HLight;
+typedef Qt3DCore::QHandle<ComputeJob, 16> 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 <Qt3DRender/private/boundingvolumedebug_p.h>
#include <Qt3DRender/private/openglvertexarrayobject_p.h>
#include <Qt3DRender/private/light_p.h>
+#include <Qt3DRender/private/computejob_p.h>
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<Light>() const Q_DECL_NOEXCEPT
return m_lightManager;
}
+template<>
+ComputeJobManager *NodeManagers::manager<ComputeJob>() 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<Light>() const Q_DECL_NOEXCEPT;
+template<>
+QT3DRENDERSHARED_PRIVATE_EXPORT ComputeJobManager *NodeManagers::manager<ComputeJob>() const Q_DECL_NOEXCEPT;
+
} // Render
} // Qt3DRender