diff options
Diffstat (limited to 'src/datavis3d/engine/abstract3drenderer.cpp')
-rw-r--r-- | src/datavis3d/engine/abstract3drenderer.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/datavis3d/engine/abstract3drenderer.cpp b/src/datavis3d/engine/abstract3drenderer.cpp index c3cc7b7e..9f64157a 100644 --- a/src/datavis3d/engine/abstract3drenderer.cpp +++ b/src/datavis3d/engine/abstract3drenderer.cpp @@ -20,6 +20,8 @@ #include "q3dvalueaxis.h" #include "texturehelper_p.h" #include "utils_p.h" +#include "q3dscene.h" +#include "q3dcamera.h" QT_DATAVIS3D_BEGIN_NAMESPACE @@ -34,10 +36,10 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller) m_cachedBoundingRect(QRect(0,0,0,0)), m_cachedShadowQuality(QDataVis::ShadowMedium), m_autoScaleAdjustment(1.0f), - m_cachedZoomLevel(100), m_cachedSelectionMode(QDataVis::ModeNone), m_cachedIsGridEnabled(false), - m_cachedIsBackgroundEnabled(false) + m_cachedIsBackgroundEnabled(false), + m_cachedScene(0) #ifdef DISPLAY_RENDER_SPEED , m_isFirstFrame(true), m_numFrames(0) @@ -51,6 +53,7 @@ Abstract3DRenderer::~Abstract3DRenderer() { delete m_drawer; delete m_textureHelper; + delete m_cachedScene; } void Abstract3DRenderer::initializeOpenGL() @@ -75,10 +78,8 @@ void Abstract3DRenderer::initializeOpenGL() axisCacheForOrientation(Q3DAbstractAxis::AxisOrientationZ).setDrawer(m_drawer); } -void Abstract3DRenderer::render(CameraHelper *camera, const GLuint defaultFboHandle) +void Abstract3DRenderer::render(const GLuint defaultFboHandle) { - Q_UNUSED(camera) - #ifdef DISPLAY_RENDER_SPEED // For speed computation if (m_isFirstFrame) { @@ -127,13 +128,13 @@ QString Abstract3DRenderer::itemLabelFormat() const return m_cachedItemLabelFormat; } -void Abstract3DRenderer::updateBoundingRect(const QRect boundingRect) +void Abstract3DRenderer::updateBoundingRect(const QRect &boundingRect) { m_cachedBoundingRect = boundingRect; handleResize(); } -void Abstract3DRenderer::updatePosition(const QRect boundingRect) +void Abstract3DRenderer::updatePosition(const QRect &boundingRect) { m_cachedBoundingRect = boundingRect; } @@ -147,6 +148,14 @@ void Abstract3DRenderer::updateTheme(Theme theme) handleShadowQualityChange(); } +void Abstract3DRenderer::updateScene(Q3DScene *scene) +{ + // Make a copy of the scene to renderer's cache. + Q3DScene *newScene = scene->clone(); + delete m_cachedScene; + m_cachedScene = newScene; +} + void Abstract3DRenderer::handleShadowQualityChange() { #if !defined(QT_OPENGL_ES_2) @@ -242,11 +251,6 @@ void Abstract3DRenderer::handleResize() #endif } -void Abstract3DRenderer::updateZoomLevel(int newZoomLevel) -{ - m_cachedZoomLevel = newZoomLevel; -} - void Abstract3DRenderer::updateAxisType(Q3DAbstractAxis::AxisOrientation orientation, Q3DAbstractAxis::AxisType type) { axisCacheForOrientation(orientation).setType(type); |