aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/scenegraph/coreapi/qsgrenderer_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/scenegraph/coreapi/qsgrenderer_p.h')
-rw-r--r--src/declarative/scenegraph/coreapi/qsgrenderer_p.h45
1 files changed, 31 insertions, 14 deletions
diff --git a/src/declarative/scenegraph/coreapi/qsgrenderer_p.h b/src/declarative/scenegraph/coreapi/qsgrenderer_p.h
index 3fdcf06a08..05fb9b42fd 100644
--- a/src/declarative/scenegraph/coreapi/qsgrenderer_p.h
+++ b/src/declarative/scenegraph/coreapi/qsgrenderer_p.h
@@ -45,8 +45,9 @@
#include <qset.h>
#include <qhash.h>
-#include <qglfunctions.h>
-#include <qglshaderprogram.h>
+#include <qcolor.h>
+#include <qopenglfunctions.h>
+#include <qopenglshaderprogram.h>
#include "qsgnode.h"
#include "qsgmaterial.h"
@@ -62,13 +63,12 @@ QT_MODULE(Declarative)
class QSGMaterialShader;
struct QSGMaterialType;
-class QGLFramebufferObject;
+class QOpenGLFramebufferObject;
class TextureReference;
class QSGBindable;
class QSGNodeUpdater;
-
-class Q_DECLARATIVE_EXPORT QSGRenderer : public QObject, public QGLFunctions
+class Q_DECLARATIVE_EXPORT QSGRenderer : public QObject, public QOpenGLFunctions
{
Q_OBJECT
public:
@@ -116,7 +116,7 @@ public:
void setClearColor(const QColor &color);
QColor clearColor() const { return m_clear_color; }
- const QGLContext *glContext() const { Q_ASSERT(m_context); return m_context->glContext(); }
+ QOpenGLContext *glContext() const { Q_ASSERT(m_context); return m_context->glContext(); }
QSGContext *context();
@@ -137,8 +137,7 @@ signals:
void sceneGraphChanged(); // Add, remove, ChangeFlags changes...
protected:
- void draw(const QSGBasicGeometryNode *geometry);
- void bindGeometry(QSGMaterialShader *material, const QSGGeometry *g);
+ void draw(const QSGMaterialShader *material, const QSGGeometry *g);
virtual void render() = 0;
QSGRenderer::ClipType updateStencilClip(const QSGClipNode *clip);
@@ -169,14 +168,17 @@ private:
QSet<QSGNode *> m_nodes_to_preprocess;
QMatrix4x4 m_projection_matrix;
- QGLShaderProgram m_clip_program;
+ QOpenGLShaderProgram m_clip_program;
int m_clip_matrix_id;
const QSGBindable *m_bindable;
- bool m_changed_emitted : 1;
- bool m_mirrored : 1;
- bool m_is_rendering : 1;
+ uint m_changed_emitted : 1;
+ uint m_mirrored : 1;
+ uint m_is_rendering : 1;
+
+ uint m_vertex_buffer_bound : 1;
+ uint m_index_buffer_bound : 1;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QSGRenderer::ClearMode)
@@ -193,10 +195,10 @@ public:
class QSGBindableFbo : public QSGBindable
{
public:
- QSGBindableFbo(QGLFramebufferObject *fbo);
+ QSGBindableFbo(QOpenGLFramebufferObject *fbo);
virtual void bind() const;
private:
- QGLFramebufferObject *m_fbo;
+ QOpenGLFramebufferObject *m_fbo;
};
@@ -210,6 +212,21 @@ QSGMaterialShader::RenderState QSGRenderer::state(QSGMaterialShader::RenderState
}
+class Q_DECLARATIVE_EXPORT QSGNodeDumper : public QSGNodeVisitor {
+
+public:
+ static void dump(QSGNode *n);
+
+ QSGNodeDumper() : m_indent(0) {}
+ void visitNode(QSGNode *n);
+ void visitChildren(QSGNode *n);
+
+private:
+ int m_indent;
+};
+
+
+
QT_END_NAMESPACE
QT_END_HEADER