summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/abstract3drenderer_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavis3d/engine/abstract3drenderer_p.h')
-rw-r--r--src/datavis3d/engine/abstract3drenderer_p.h31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/datavis3d/engine/abstract3drenderer_p.h b/src/datavis3d/engine/abstract3drenderer_p.h
index c7c90c90..b19ef101 100644
--- a/src/datavis3d/engine/abstract3drenderer_p.h
+++ b/src/datavis3d/engine/abstract3drenderer_p.h
@@ -35,6 +35,7 @@
#include "datavis3dglobal_p.h"
#include "abstract3dcontroller_p.h"
#include "axisrendercache_p.h"
+#include "qabstractdataproxy.h"
QT_DATAVIS3D_BEGIN_NAMESPACE
@@ -42,7 +43,7 @@ class Abstract3DRenderer : public QObject, protected QOpenGLFunctions
{
protected:
Abstract3DController *m_controller;
-
+ bool m_isInitialized;
bool m_hasNegativeValues;
QRect m_cachedBoundingRect;
QDataVis::ShadowQuality m_cachedShadowQuality;
@@ -51,15 +52,18 @@ protected:
QDataVis::LabelTransparency m_cachedLabelTransparency;
Drawer *m_drawer;
GLfloat m_autoScaleAdjustment;
+ QString m_cachedItemLabelFormat;
AxisRenderCache m_axisCacheX;
AxisRenderCache m_axisCacheY;
AxisRenderCache m_axisCacheZ;
Abstract3DRenderer(Abstract3DController *controller);
- virtual void initializePreOpenGL();
virtual void initializeOpenGL();
+public:
+ inline bool isInitialized() { return m_isInitialized; }
+
virtual void updateBoundingRect(const QRect boundingRect);
virtual void updatePosition(const QRect boundingRect);
virtual void handleResize();
@@ -70,13 +74,15 @@ protected:
virtual void handleShadowQualityChange();
- virtual void requestSelectionAtPoint(const QPoint &point)=0;
- virtual void updateTextures()=0;
- virtual void initSelectionBuffer()=0;
- virtual void updateDepthBuffer()=0;
- virtual void updateShadowQuality(QDataVis::ShadowQuality quality)=0;
- virtual void initShaders(const QString &vertexShader, const QString &fragmentShader)=0;
- virtual void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader)=0;
+ void updateDataModel(QAbstractDataProxy *dataProxy);
+ virtual QString itemLabelFormat() const;
+ virtual void requestSelectionAtPoint(const QPoint &point) = 0;
+ virtual void updateTextures() = 0;
+ virtual void initSelectionBuffer() = 0;
+ virtual void updateDepthBuffer() = 0;
+ virtual void updateShadowQuality(QDataVis::ShadowQuality quality) = 0;
+ virtual void initShaders(const QString &vertexShader, const QString &fragmentShader) = 0;
+ virtual void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader) = 0;
virtual void updateAxisType(QAbstractAxis::AxisOrientation orientation, QAbstractAxis::AxisType type);
virtual void updateAxisTitle(QAbstractAxis::AxisOrientation orientation, const QString &title);
virtual void updateAxisLabels(QAbstractAxis::AxisOrientation orientation, const QStringList &labels);
@@ -86,6 +92,13 @@ protected:
void initializeAxisCache(QAbstractAxis::AxisOrientation orientation, const QAbstractAxis *axis);
AxisRenderCache &axisCacheForOrientation(QAbstractAxis::AxisOrientation orientation);
+
+public:
+ /**
+ * @brief render Implements OpenGL rendering that occurs in the rendering thread.
+ * @param defaultFboHandle Defaults FBO handle (defaults to 0).
+ */
+ virtual void render(CameraHelper *camera, const GLuint defaultFboHandle) = 0;
};
QT_DATAVIS3D_END_NAMESPACE