summaryrefslogtreecommitdiffstats
path: root/src/render/backend
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-06-04 06:33:13 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-06-05 10:30:44 +0200
commit73177e934cb07de9d1bf7fbb0b72bb765b7bd5e1 (patch)
treebc214f9f68399decc9818683224dab3dab346220 /src/render/backend
parentdad524256b61ef17e5f9843167cdfa757ac4e184 (diff)
Register QShaderImage in QRenderAspect
And add required ShaderImageManager Change-Id: I4b3347d6dc4b70690abea0486c933f5a508b057f Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'src/render/backend')
-rw-r--r--src/render/backend/handle_types_p.h2
-rw-r--r--src/render/backend/managers_p.h11
-rw-r--r--src/render/backend/nodemanagers.cpp8
-rw-r--r--src/render/backend/nodemanagers_p.h7
4 files changed, 28 insertions, 0 deletions
diff --git a/src/render/backend/handle_types_p.h b/src/render/backend/handle_types_p.h
index 124e6db74..195fc2cc6 100644
--- a/src/render/backend/handle_types_p.h
+++ b/src/render/backend/handle_types_p.h
@@ -99,6 +99,7 @@ class RenderStateNode;
class Armature;
class Skeleton;
class Joint;
+class ShaderImage;
typedef Qt3DCore::QHandle<RenderTargetOutput> HAttachment;
typedef Qt3DCore::QHandle<CameraLens> HCamera;
@@ -138,6 +139,7 @@ typedef Qt3DCore::QHandle<RenderStateNode> HRenderState;
typedef Qt3DCore::QHandle<Armature> HArmature;
typedef Qt3DCore::QHandle<Skeleton> HSkeleton;
typedef Qt3DCore::QHandle<Joint> HJoint;
+typedef Qt3DCore::QHandle<ShaderImage> HShaderImage;
} // namespace Render
diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h
index eb219fd1e..89b02b86f 100644
--- a/src/render/backend/managers_p.h
+++ b/src/render/backend/managers_p.h
@@ -86,6 +86,7 @@
#include <Qt3DRender/private/armature_p.h>
#include <Qt3DRender/private/skeleton_p.h>
#include <Qt3DRender/private/joint_p.h>
+#include <Qt3DRender/private/shaderimage_p.h>
QT_BEGIN_NAMESPACE
@@ -302,6 +303,15 @@ public:
ParameterManager() {}
};
+class ShaderImageManager : public Qt3DCore::QResourceManager<
+ ShaderImage,
+ Qt3DCore::QNodeId,
+ Qt3DCore::NonLockingPolicy>
+{
+public:
+ ShaderImageManager() {}
+};
+
class ShaderDataManager : public Qt3DCore::QResourceManager<
ShaderData,
Qt3DCore::QNodeId,
@@ -465,6 +475,7 @@ Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::Armature, Q_REQUIRES_CLEANUP)
Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::Skeleton, Q_REQUIRES_CLEANUP)
Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::Joint, Q_REQUIRES_CLEANUP)
Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::ShaderBuilder, Q_REQUIRES_CLEANUP)
+Q_DECLARE_RESOURCE_INFO(Qt3DRender::Render::ShaderImage, Q_REQUIRES_CLEANUP)
QT_END_NAMESPACE
diff --git a/src/render/backend/nodemanagers.cpp b/src/render/backend/nodemanagers.cpp
index dd82b1a69..98791fcd6 100644
--- a/src/render/backend/nodemanagers.cpp
+++ b/src/render/backend/nodemanagers.cpp
@@ -97,6 +97,7 @@ NodeManagers::NodeManagers()
, m_armatureManager(new ArmatureManager())
, m_skeletonManager(new SkeletonManager())
, m_jointManager(new JointManager())
+ , m_shaderImageManager(new ShaderImageManager())
, m_resourceAccessor(new ResourceAccessor(this))
{
}
@@ -145,6 +146,7 @@ NodeManagers::~NodeManagers()
delete m_armatureManager;
delete m_skeletonManager;
delete m_jointManager;
+ delete m_shaderImageManager;
}
QSharedPointer<ResourceAccessor> NodeManagers::resourceAccessor()
@@ -374,6 +376,12 @@ JointManager *NodeManagers::manager<Joint>() const Q_DECL_NOTHROW
return m_jointManager;
}
+template<>
+ShaderImageManager *NodeManagers::manager<ShaderImage>() const Q_DECL_NOTHROW
+{
+ return m_shaderImageManager;
+}
+
} // Render
} // Qt3DRender
diff --git a/src/render/backend/nodemanagers_p.h b/src/render/backend/nodemanagers_p.h
index 46e7b60f1..7cc1f2ac2 100644
--- a/src/render/backend/nodemanagers_p.h
+++ b/src/render/backend/nodemanagers_p.h
@@ -105,6 +105,7 @@ class RenderStateManager;
class ArmatureManager;
class SkeletonManager;
class JointManager;
+class ShaderImageManager;
class FrameGraphNode;
class Entity;
@@ -143,6 +144,7 @@ class Armature;
class Skeleton;
class Joint;
class OpenGLVertexArrayObject;
+class ShaderImage;
class ResourceAccessor;
@@ -225,6 +227,7 @@ public:
inline ArmatureManager *armatureManager() const Q_DECL_NOEXCEPT { return m_armatureManager; }
inline SkeletonManager *skeletonManager() const Q_DECL_NOEXCEPT { return m_skeletonManager; }
inline JointManager *jointManager() const Q_DECL_NOEXCEPT { return m_jointManager; }
+ inline ShaderImageManager *shaderImageManager() const Q_DECL_NOEXCEPT { return m_shaderImageManager; }
QSharedPointer<ResourceAccessor> resourceAccessor();
@@ -268,6 +271,7 @@ private:
ArmatureManager *m_armatureManager;
SkeletonManager *m_skeletonManager;
JointManager *m_jointManager;
+ ShaderImageManager *m_shaderImageManager;
QSharedPointer<ResourceAccessor> m_resourceAccessor;
};
@@ -385,6 +389,9 @@ Q_3DRENDERSHARED_PRIVATE_EXPORT SkeletonManager *NodeManagers::manager<Skeleton>
template<>
Q_3DRENDERSHARED_PRIVATE_EXPORT JointManager *NodeManagers::manager<Joint>() const Q_DECL_NOEXCEPT;
+template<>
+Q_3DRENDERSHARED_PRIVATE_EXPORT ShaderImageManager *NodeManagers::manager<ShaderImage>() const Q_DECL_NOEXCEPT;
+
} // Render
} // Qt3DRender