summaryrefslogtreecommitdiffstats
path: root/src/render/backend/entity.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-11-04 17:40:24 +0100
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-11-16 09:18:20 +0000
commitbc38be69f9d5787640b6ca10fa115857f8f2dcf8 (patch)
tree43e29b2205cf2043a47929f1932bd439c7532abb /src/render/backend/entity.cpp
parent23df5c08c2ddc4abc4cf98d76fb6a37454e6db3b (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.cpp91
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)
{