diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-11-04 17:40:24 +0100 |
---|---|---|
committer | Andy Nichols <andy.nichols@theqtcompany.com> | 2015-11-16 09:18:20 +0000 |
commit | bc38be69f9d5787640b6ca10fa115857f8f2dcf8 (patch) | |
tree | 43e29b2205cf2043a47929f1932bd439c7532abb /src/render/backend/entity.cpp | |
parent | 23df5c08c2ddc4abc4cf98d76fb6a37454e6db3b (diff) |
Entity: reorganize template functors for better readability
Change-Id: I404d35ff9e159d47c53660220cf5899b6df1cf89
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/render/backend/entity.cpp')
-rw-r--r-- | src/render/backend/entity.cpp | 91 |
1 files changed, 49 insertions, 42 deletions
diff --git a/src/render/backend/entity.cpp b/src/render/backend/entity.cpp index c76405fab..ddec3283e 100644 --- a/src/render/backend/entity.cpp +++ b/src/render/backend/entity.cpp @@ -297,6 +297,8 @@ void Entity::setEnabled(bool isEnabled) m_enabled = isEnabled; } +// Handles + template<> HMaterial Entity::componentHandle<Material>() const { @@ -304,75 +306,77 @@ HMaterial Entity::componentHandle<Material>() const } template<> -Material *Entity::renderComponent<Material>() const -{ - return m_renderer->materialManager()->lookupResource(m_materialComponent); -} - -template<> HCamera Entity::componentHandle<CameraLens>() const { return m_renderer->cameraManager()->lookupHandle(m_cameraComponent); } template<> -CameraLens *Entity::renderComponent<CameraLens>() const -{ - return m_renderer->cameraManager()->lookupResource(m_cameraComponent); -} - -template<> HTransform Entity::componentHandle<Transform>() const { return m_renderer->transformManager()->lookupHandle(m_transformComponent); } template<> -Transform *Entity::renderComponent<Transform>() const +HGeometryRenderer Entity::componentHandle<GeometryRenderer>() const { - return m_renderer->transformManager()->lookupResource(m_transformComponent); + return m_renderer->geometryRendererManager()->lookupHandle(m_geometryRendererComponent); } template<> -HGeometryRenderer Entity::componentHandle<GeometryRenderer>() const +HObjectPicker Entity::componentHandle<ObjectPicker>() const { - return m_renderer->geometryRendererManager()->lookupHandle(m_geometryRendererComponent); + return m_renderer->objectPickerManager()->lookupHandle(m_objectPickerComponent); } template<> -GeometryRenderer *Entity::renderComponent<GeometryRenderer>() const +QList<HLayer> Entity::componentsHandle<Layer>() const { - return m_renderer->geometryRendererManager()->lookupResource(m_geometryRendererComponent); + QList<HLayer> layerHandles; + Q_FOREACH (const QNodeId &id, m_layerComponents) + layerHandles.append(m_renderer->layerManager()->lookupHandle(id)); + return layerHandles; } template<> -HObjectPicker Entity::componentHandle<ObjectPicker>() const +QList<HShaderData> Entity::componentsHandle<ShaderData>() const { - return m_renderer->objectPickerManager()->lookupHandle(m_objectPickerComponent); + QList<HShaderData> shaderDataHandles; + Q_FOREACH (const QNodeId &id, m_shaderDataComponents) + shaderDataHandles.append(m_renderer->shaderDataManager()->lookupHandle(id)); + return shaderDataHandles; } +// Render components + template<> -ObjectPicker *Entity::renderComponent<ObjectPicker>() const +Material *Entity::renderComponent<Material>() const { - return m_renderer->objectPickerManager()->lookupResource(m_objectPickerComponent); + return m_renderer->materialManager()->lookupResource(m_materialComponent); } template<> -Qt3DCore::QNodeId Entity::componentUuid<Transform>() const { return m_transformComponent; } +CameraLens *Entity::renderComponent<CameraLens>() const +{ + return m_renderer->cameraManager()->lookupResource(m_cameraComponent); +} template<> -Qt3DCore::QNodeId Entity::componentUuid<CameraLens>() const { return m_cameraComponent; } +Transform *Entity::renderComponent<Transform>() const +{ + return m_renderer->transformManager()->lookupResource(m_transformComponent); +} template<> -Qt3DCore::QNodeId Entity::componentUuid<Material>() const { return m_materialComponent; } +GeometryRenderer *Entity::renderComponent<GeometryRenderer>() const +{ + return m_renderer->geometryRendererManager()->lookupResource(m_geometryRendererComponent); +} template<> -QList<HLayer> Entity::componentsHandle<Layer>() const +ObjectPicker *Entity::renderComponent<ObjectPicker>() const { - QList<HLayer> layerHandles; - Q_FOREACH (const QNodeId &id, m_layerComponents) - layerHandles.append(m_renderer->layerManager()->lookupHandle(id)); - return layerHandles; + return m_renderer->objectPickerManager()->lookupResource(m_objectPickerComponent); } template<> @@ -385,18 +389,6 @@ QList<Layer *> Entity::renderComponents<Layer>() const } template<> -QList<Qt3DCore::QNodeId> Entity::componentsUuid<Layer>() const { return m_layerComponents; } - -template<> -QList<HShaderData> Entity::componentsHandle<ShaderData>() const -{ - QList<HShaderData> shaderDataHandles; - Q_FOREACH (const QNodeId &id, m_shaderDataComponents) - shaderDataHandles.append(m_renderer->shaderDataManager()->lookupHandle(id)); - return shaderDataHandles; -} - -template<> QList<ShaderData *> Entity::renderComponents<ShaderData>() const { QList<ShaderData *> shaderDatas; @@ -405,6 +397,20 @@ QList<ShaderData *> Entity::renderComponents<ShaderData>() const return shaderDatas; } +// Uuid + +template<> +Qt3DCore::QNodeId Entity::componentUuid<Transform>() const { return m_transformComponent; } + +template<> +Qt3DCore::QNodeId Entity::componentUuid<CameraLens>() const { return m_cameraComponent; } + +template<> +Qt3DCore::QNodeId Entity::componentUuid<Material>() const { return m_materialComponent; } + +template<> +QList<Qt3DCore::QNodeId> Entity::componentsUuid<Layer>() const { return m_layerComponents; } + template<> QList<Qt3DCore::QNodeId> Entity::componentsUuid<ShaderData>() const { return m_shaderDataComponents; } @@ -414,6 +420,7 @@ Qt3DCore::QNodeId Entity::componentUuid<GeometryRenderer>() const { return m_geo template<> QNodeId Entity::componentUuid<ObjectPicker>() const { return m_objectPickerComponent; } + RenderEntityFunctor::RenderEntityFunctor(Renderer *renderer) : m_renderer(renderer) { |