diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/render/backend/backendnode.cpp | 11 | ||||
-rw-r--r-- | src/render/backend/backendnode_p.h | 4 | ||||
-rw-r--r-- | src/render/backend/nodemanagers.cpp | 7 | ||||
-rw-r--r-- | src/render/backend/nodemanagers_p.h | 6 |
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 |