summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/backend/backendnode.cpp11
-rw-r--r--src/render/backend/backendnode_p.h4
-rw-r--r--src/render/backend/nodemanagers.cpp7
-rw-r--r--src/render/backend/nodemanagers_p.h6
4 files changed, 27 insertions, 1 deletions
diff --git a/src/render/backend/backendnode.cpp b/src/render/backend/backendnode.cpp
index 606016092..0dc8da237 100644
--- a/src/render/backend/backendnode.cpp
+++ b/src/render/backend/backendnode.cpp
@@ -37,7 +37,10 @@
**
****************************************************************************/
-#include "backendnode_p.h"
+#include <private/backendnode_p.h>
+#include <private/renderer_p.h>
+#include <private/resourceaccessor_p.h>
+#include <private/nodemanagers_p.h>
QT_BEGIN_NAMESPACE
@@ -72,6 +75,12 @@ void BackendNode::markDirty(AbstractRenderer::BackendNodeDirtySet changes)
m_renderer->markDirty(changes, this);
}
+QSharedPointer<RenderBackendResourceAccessor> BackendNode::resourceAccessor()
+{
+ Render::Renderer *r = static_cast<Render::Renderer *>(renderer());
+ return r->nodeManagers()->resourceAccessor();
+}
+
} // namespace Render
} // namespace Qt3DRender
diff --git a/src/render/backend/backendnode_p.h b/src/render/backend/backendnode_p.h
index 1273144a4..05bea3266 100644
--- a/src/render/backend/backendnode_p.h
+++ b/src/render/backend/backendnode_p.h
@@ -61,6 +61,8 @@ namespace Qt3DRender {
namespace Render {
+class RenderBackendResourceAccessor;
+
class Q_AUTOTEST_EXPORT BackendNode : public Qt3DCore::QBackendNode
{
public:
@@ -70,6 +72,8 @@ public:
void setRenderer(AbstractRenderer *renderer);
AbstractRenderer *renderer() const;
+ QSharedPointer<RenderBackendResourceAccessor> resourceAccessor();
+
protected:
void markDirty(AbstractRenderer::BackendNodeDirtySet changes);
AbstractRenderer *m_renderer;
diff --git a/src/render/backend/nodemanagers.cpp b/src/render/backend/nodemanagers.cpp
index 0234db979..534bb4b9f 100644
--- a/src/render/backend/nodemanagers.cpp
+++ b/src/render/backend/nodemanagers.cpp
@@ -46,6 +46,7 @@
#include <Qt3DRender/private/texturedatamanager_p.h>
#include <Qt3DRender/private/geometryrenderermanager_p.h>
#include <Qt3DRender/private/techniquemanager_p.h>
+#include <private/resourceaccessor_p.h>
#include <QOpenGLVertexArrayObject>
@@ -89,6 +90,7 @@ NodeManagers::NodeManagers()
, m_lightManager(new LightManager())
, m_computeJobManager(new ComputeCommandManager())
, m_renderStateManager(new RenderStateManager())
+ , m_resourceAccessor(new ResourceAccessor(this))
{
}
@@ -129,6 +131,11 @@ NodeManagers::~NodeManagers()
delete m_renderNodesManager;
}
+QSharedPointer<ResourceAccessor> NodeManagers::resourceAccessor()
+{
+ return m_resourceAccessor;
+}
+
template<>
CameraManager *NodeManagers::manager<CameraLens>() const Q_DECL_NOTHROW
{
diff --git a/src/render/backend/nodemanagers_p.h b/src/render/backend/nodemanagers_p.h
index 7e1259a1d..a57628607 100644
--- a/src/render/backend/nodemanagers_p.h
+++ b/src/render/backend/nodemanagers_p.h
@@ -129,6 +129,8 @@ class Light;
class ComputeCommand;
class RenderStateNode;
+class ResourceAccessor;
+
class QT3DRENDERSHARED_PRIVATE_EXPORT NodeManagers
{
public:
@@ -203,6 +205,8 @@ public:
inline ComputeCommandManager *computeJobManager() const Q_DECL_NOEXCEPT { return m_computeJobManager; }
inline RenderStateManager *renderStateManager() const Q_DECL_NOEXCEPT { return m_renderStateManager; }
+ QSharedPointer<ResourceAccessor> resourceAccessor();
+
private:
CameraManager *m_cameraManager;
EntityManager *m_renderNodesManager;
@@ -237,6 +241,8 @@ private:
LightManager *m_lightManager;
ComputeCommandManager *m_computeJobManager;
RenderStateManager *m_renderStateManager;
+
+ QSharedPointer<ResourceAccessor> m_resourceAccessor;
};
// Specializations