Revision control
++ // Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
++
++ #include "nodemanagers_p.h"
++
++ #include <Qt3DRender/private/managers_p.h>
++ #include <Qt3DRender/private/scenemanager_p.h>
++ #include <Qt3DRender/private/buffermanager_p.h>
++ #include <Qt3DRender/private/geometryrenderermanager_p.h>
++ #include <Qt3DRender/private/techniquemanager_p.h>
++ #include <Qt3DRender/private/armature_p.h>
++ #include <Qt3DRender/private/skeleton_p.h>
++
++
++ QT_BEGIN_NAMESPACE
++
++ namespace Qt3DRender {
++
++ namespace Render {
++
++ NodeManagers::NodeManagers()
++ : m_cameraManager(new CameraManager())
++ , m_renderNodesManager(new EntityManager())
++ , m_materialManager(new MaterialManager())
++ , m_worldMatrixManager(new MatrixManager())
++ , m_shaderManager(new ShaderManager())
++ , m_shaderBuilderManager(new ShaderBuilderManager())
++ , m_techniqueManager(new TechniqueManager())
++ , m_effectManager(new EffectManager())
++ , m_renderPassManager(new RenderPassManager())
++ , m_textureManager(new TextureManager())
++ , m_textureImageManager(new TextureImageManager())
++ , m_layerManager(new LayerManager())
++ , m_levelOfDetailManager(new LevelOfDetailManager())
++ , m_filterKeyManager(new FilterKeyManager())
++ , m_frameGraphManager(new FrameGraphManager())
++ , m_transformManager(new TransformManager())
++ , m_renderTargetManager(new RenderTargetManager())
++ , m_sceneManager(new SceneManager())
++ , m_attachmentManager(new AttachmentManager())
++ , m_parameterManager(new ParameterManager())
++ , m_shaderDataManager(new ShaderDataManager())
++ , m_bufferManager(new BufferManager())
++ , m_attributeManager(new AttributeManager())
++ , m_geometryManager(new GeometryManager())
++ , m_geometryRendererManager(new GeometryRendererManager)
++ , m_objectPickerManager(new ObjectPickerManager())
++ , m_rayCasterManager(new RayCasterManager())
++ // , m_boundingVolumeDebugManager(new BoundingVolumeDebugManager())
++ , m_lightManager(new LightManager())
++ , m_environmentLightManager(new EnvironmentLightManager())
++ , m_computeJobManager(new ComputeCommandManager())
++ , m_renderStateManager(new RenderStateManager())
++ , m_armatureManager(new ArmatureManager())
++ , m_skeletonManager(new SkeletonManager())
++ , m_jointManager(new JointManager())
++ , m_shaderImageManager(new ShaderImageManager())
++ , m_pickingProxyManager(new PickingProxyManager())
++ {
++ }
++
++ NodeManagers::~NodeManagers()
++ {
++ delete m_cameraManager;
++ delete m_materialManager;
++ delete m_worldMatrixManager;
++ delete m_shaderManager;
++ delete m_shaderBuilderManager;
++ delete m_techniqueManager;
++ delete m_effectManager;
++ delete m_renderPassManager;
++ delete m_textureManager;
++ delete m_layerManager;
++ delete m_levelOfDetailManager;
++ delete m_filterKeyManager;
++ delete m_transformManager;
++ delete m_renderTargetManager;
++ delete m_sceneManager;
++ delete m_attachmentManager;
++ delete m_parameterManager;
++ delete m_shaderDataManager;
++ delete m_textureImageManager;
++ delete m_bufferManager;
++ delete m_attributeManager;
++ delete m_geometryManager;
++ delete m_geometryRendererManager;
++ delete m_objectPickerManager;
++ delete m_rayCasterManager;
++
++ // Delete after m_objectPickerManager as that manager's shutdown needs to access
++ // the frame graph manager still.
++ delete m_frameGraphManager;
++ // delete m_boundingVolumeDebugManager;
++ delete m_lightManager;
++ delete m_environmentLightManager;
++ delete m_computeJobManager;
++ delete m_renderStateManager;
++ delete m_renderNodesManager;
++ delete m_armatureManager;
++ delete m_skeletonManager;
++ delete m_jointManager;
++ delete m_shaderImageManager;
++ delete m_pickingProxyManager;
++ }
++
++ template<>
++ CameraManager *NodeManagers::manager<CameraLens>() const noexcept
++ {
++ return m_cameraManager;
++ }
++
++ template<>
++ EntityManager *NodeManagers::manager<Entity>() const noexcept
++ {
++ return m_renderNodesManager;
++ }
++
++ template<>
++ MaterialManager *NodeManagers::manager<Material>() const noexcept
++ {
++ return m_materialManager;
++ }
++
++ template<>
++ MatrixManager *NodeManagers::manager<Matrix4x4>() const noexcept
++ {
++ return m_worldMatrixManager;
++ }
++
++ template<>
++ ShaderManager *NodeManagers::manager<Shader>() const noexcept
++ {
++ return m_shaderManager;
++ }
++
++ template<>
++ ShaderBuilderManager *NodeManagers::manager<ShaderBuilder>() const noexcept
++ {
++ return m_shaderBuilderManager;
++ }
++
++ template<>
++ TechniqueManager *NodeManagers::manager<Technique>() const noexcept
++ {
++ return m_techniqueManager;
++ }
++
++ template<>
++ EffectManager *NodeManagers::manager<Effect>() const noexcept
++ {
++ return m_effectManager;
++ }
++
++ template<>
++ RenderPassManager *NodeManagers::manager<RenderPass>() const noexcept
++ {
++ return m_renderPassManager;
++ }
++
++ template<>
++ TextureManager *NodeManagers::manager<Texture>() const noexcept
++ {
++ return m_textureManager;
++ }
++
++ template<>
++ LayerManager *NodeManagers::manager<Layer>() const noexcept
++ {
++ return m_layerManager;
++ }
++
++ template<>
++ LevelOfDetailManager *NodeManagers::manager<LevelOfDetail>() const noexcept
++ {
++ return m_levelOfDetailManager;
++ }
++
++ template<>
++ FilterKeyManager *NodeManagers::manager<FilterKey>() const noexcept
++ {
++ return m_filterKeyManager;
++ }
++
++ template<>
++ FrameGraphManager *NodeManagers::manager<FrameGraphNode*>() const noexcept
++ {
++ return m_frameGraphManager;
++ }
++
++ template<>
++ TransformManager *NodeManagers::manager<Transform>() const noexcept
++ {
++ return m_transformManager;
++ }
++
++ template<>
++ RenderTargetManager *NodeManagers::manager<RenderTarget>() const noexcept
++ {
++ return m_renderTargetManager;
++ }
++
++ template<>
++ SceneManager *NodeManagers::manager<Scene>() const noexcept
++ {
++ return m_sceneManager;
++ }
++
++ template<>
++ AttachmentManager *NodeManagers::manager<RenderTargetOutput>() const noexcept
++ {
++ return m_attachmentManager;
++ }
++
++ template<>
++ ParameterManager *NodeManagers::manager<Parameter>() const noexcept
++ {
++ return m_parameterManager;
++ }
++
++ template<>
++ ShaderDataManager *NodeManagers::manager<ShaderData>() const noexcept
++ {
++ return m_shaderDataManager;
++ }
++
++ template<>
++ TextureImageManager *NodeManagers::manager<TextureImage>() const noexcept
++ {
++ return m_textureImageManager;
++ }
++
++ template<>
++ BufferManager *NodeManagers::manager<Buffer>() const noexcept
++ {
++ return m_bufferManager;
++ }
++
++ template<>
++ AttributeManager *NodeManagers::manager<Attribute>() const noexcept
++ {
++ return m_attributeManager;
++ }
++
++ template<>
++ GeometryManager *NodeManagers::manager<Geometry>() const noexcept
++ {
++ return m_geometryManager;
++ }
++
++ template<>
++ GeometryRendererManager *NodeManagers::manager<GeometryRenderer>() const noexcept
++ {
++ return m_geometryRendererManager;
++ }
++
++ template<>
++ ObjectPickerManager *NodeManagers::manager<ObjectPicker>() const noexcept
++ {
++ return m_objectPickerManager;
++ }
++
++ template<>
++ PickingProxyManager *NodeManagers::manager<PickingProxy>() const noexcept
++ {
++ return m_pickingProxyManager;
++ }
++
++ template<>
++ RayCasterManager *NodeManagers::manager<RayCaster>() const noexcept
++ {
++ return m_rayCasterManager;
++ }
++
++ //template<>
++ //BoundingVolumeDebugManager *NodeManagers::manager<BoundingVolumeDebug>() const noexcept
++ //{
++ // return m_boundingVolumeDebugManager;
++ //}
++
++ template<>
++ LightManager *NodeManagers::manager<Light>() const noexcept
++ {
++ return m_lightManager;
++ }
++
++ template<>
++ EnvironmentLightManager *NodeManagers::manager<EnvironmentLight>() const noexcept
++ {
++ return m_environmentLightManager;
++ }
++
++ template<>
++ ComputeCommandManager *NodeManagers::manager<ComputeCommand>() const noexcept
++ {
++ return m_computeJobManager;
++ }
++
++ template<>
++ RenderStateManager *NodeManagers::manager<RenderStateNode>() const noexcept
++ {
++ return m_renderStateManager;
++ }
++
++ template<>
++ ArmatureManager *NodeManagers::manager<Armature>() const noexcept
++ {
++ return m_armatureManager;
++ }
++
++ template<>
++ SkeletonManager *NodeManagers::manager<Skeleton>() const noexcept
++ {
++ return m_skeletonManager;
++ }
++
++ template<>
++ JointManager *NodeManagers::manager<Joint>() const noexcept
++ {
++ return m_jointManager;
++ }
++
++ template<>
++ ShaderImageManager *NodeManagers::manager<ShaderImage>() const noexcept
++ {
++ return m_shaderImageManager;
++ }
++
++ } // Render
++
++ } // Qt3DRender
++
++ QT_END_NAMESPACE