summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/graphobjects
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@qt.io>2019-08-26 13:39:45 +0200
committerAndy Nichols <andy.nichols@qt.io>2019-08-29 07:51:48 +0200
commit9ea345e6372433217915a45b73acb81a81627bde (patch)
tree74e67716130df22dd9ecd7dad5722c272cdaf146 /src/runtimerender/graphobjects
parent0cce5a54b0f9971021fc0bd0c11198fbe7845ee8 (diff)
Add property to Camera to enable frustum culling when needed
By default frustum culling is disabled because for most scenes all items are always visible. There is a not insignificant cost to doing frustum culling, so it shouldn't be the default behavior. Change-Id: Ibc0c0a4bd1cf65a215256de9ec22ca1d97eb6de5 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/runtimerender/graphobjects')
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderCamera.cpp1
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderCamera.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/runtimerender/graphobjects/Qt3DSRenderCamera.cpp b/src/runtimerender/graphobjects/Qt3DSRenderCamera.cpp
index b9f9c20..71f74d7 100644
--- a/src/runtimerender/graphobjects/Qt3DSRenderCamera.cpp
+++ b/src/runtimerender/graphobjects/Qt3DSRenderCamera.cpp
@@ -159,6 +159,7 @@ SCamera::SCamera()
, m_ClipFar(10000)
, m_FOV(60)
, m_FOVHorizontal(false)
+ , m_EnableFrustumCulling(false)
, m_ScaleMode(CameraScaleModes::Fit)
, m_ScaleAnchor(CameraScaleAnchors::Center)
{
diff --git a/src/runtimerender/graphobjects/Qt3DSRenderCamera.h b/src/runtimerender/graphobjects/Qt3DSRenderCamera.h
index be8d53e..0ecfc83 100644
--- a/src/runtimerender/graphobjects/Qt3DSRenderCamera.h
+++ b/src/runtimerender/graphobjects/Qt3DSRenderCamera.h
@@ -110,6 +110,7 @@ namespace render {
// Record some values from creating the projection matrix
// to use during mouse picking.
QT3DSVec2 m_FrustumScale;
+ bool m_EnableFrustumCulling;
SCamera();