diff options
author | Keränen Pasi <pasi.keranen@digia.com> | 2013-08-23 16:17:29 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@digia.com> | 2013-09-10 09:46:55 +0300 |
commit | f3e38983d77c72f3121c33a149a58fdf9c64158c (patch) | |
tree | d7aebaed7e6e8b4570f8d96f195d1dca42c56f03 /src/datavis3d/engine/abstract3drenderer.cpp | |
parent | a88d9cacf7465ea0a1b5eb642f6c2f9cc7ad971d (diff) |
New 3D scene for lights and camera setup for input handlers.
Change-Id: Ib909bd818364c1646615df7c543d57b07b920a83
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
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); |