summaryrefslogtreecommitdiffstats
path: root/src/render/backend/nodemanagers_p.h
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2017-01-19 19:47:27 +0000
committerSean Harmer <sean.harmer@kdab.com>2017-01-23 21:45:24 +0000
commit45b5514ee1f816b24461f7523b779f65c6c93ea5 (patch)
tree53fd48ded880df657ee830ca61f64c69dde89847 /src/render/backend/nodemanagers_p.h
parenta6c5261671379da7e8fb78b10508fc00d3e7b16a (diff)
LevelOfDetail (LOD) node
Component to control complexity of entities based on either distance to camera or size on screen. Given a specific camera, the LevelOfDetail computes the distance to the observer, or the screen size of the entity. The currentIndex property is updated to identify which of the entries in the provided array of distance or size ranges contains the current value. A disabled LevelOfDetail component will act as a simple (user controlled) switch. Updates are not done on disabled sub trees since their bounding boxes may not be valid. Change-Id: Ifa4c088de6b80b6a6ed203070411761574686cdb Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/backend/nodemanagers_p.h')
-rw-r--r--src/render/backend/nodemanagers_p.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/render/backend/nodemanagers_p.h b/src/render/backend/nodemanagers_p.h
index e46e9355c..b1ea2a0de 100644
--- a/src/render/backend/nodemanagers_p.h
+++ b/src/render/backend/nodemanagers_p.h
@@ -94,6 +94,7 @@ class TextureManager;
class TextureDataManager;
class TextureImageDataManager;
class LayerManager;
+class LevelOfDetailManager;
class LightManager;
class ComputeCommandManager;
class RenderStateManager;
@@ -108,6 +109,7 @@ class Effect;
class RenderPass;
class Texture;
class Layer;
+class LevelOfDetail;
class FilterKey;
class FrameGraphNode;
class Transform;
@@ -183,6 +185,7 @@ public:
inline TextureDataManager *textureDataManager() const Q_DECL_NOEXCEPT { return m_textureDataManager; }
inline TextureImageDataManager *textureImageDataManager() const Q_DECL_NOEXCEPT { return m_textureImageDataManager; }
inline LayerManager *layerManager() const Q_DECL_NOEXCEPT { return m_layerManager; }
+ inline LevelOfDetailManager *levelOfDetailManager() const Q_DECL_NOEXCEPT { return m_levelOfDetailManager; }
inline FilterKeyManager *filterKeyManager() const Q_DECL_NOEXCEPT { return m_filterKeyManager; }
inline FrameGraphManager *frameGraphManager() const Q_DECL_NOEXCEPT { return m_frameGraphManager; }
inline TransformManager *transformManager() const Q_DECL_NOEXCEPT { return m_transformManager; }
@@ -219,6 +222,7 @@ private:
TextureImageDataManager *m_textureImageDataManager;
GLTextureManager *m_glTextureManager;
LayerManager *m_layerManager;
+ LevelOfDetailManager *m_levelOfDetailManager;
FilterKeyManager *m_filterKeyManager;
FrameGraphManager *m_frameGraphManager;
TransformManager *m_transformManager;
@@ -278,6 +282,9 @@ template<>
QT3DRENDERSHARED_PRIVATE_EXPORT LayerManager *NodeManagers::manager<Layer>() const Q_DECL_NOEXCEPT;
template<>
+QT3DRENDERSHARED_PRIVATE_EXPORT LevelOfDetailManager *NodeManagers::manager<LevelOfDetail>() const Q_DECL_NOEXCEPT;
+
+template<>
QT3DRENDERSHARED_PRIVATE_EXPORT FilterKeyManager *NodeManagers::manager<FilterKey>() const Q_DECL_NOEXCEPT;
template<>