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.h234
1 files changed, 0 insertions, 234 deletions
diff --git a/src/declarative/scenegraph/coreapi/qsgrenderer_p.h b/src/declarative/scenegraph/coreapi/qsgrenderer_p.h
deleted file mode 100644
index 05fb9b42fd..0000000000
--- a/src/declarative/scenegraph/coreapi/qsgrenderer_p.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef RENDERER_H
-#define RENDERER_H
-
-#include <qset.h>
-#include <qhash.h>
-
-#include <qcolor.h>
-#include <qopenglfunctions.h>
-#include <qopenglshaderprogram.h>
-
-#include "qsgnode.h"
-#include "qsgmaterial.h"
-#include "qsgtexture.h"
-
-#include <private/qsgcontext_p.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Declarative)
-
-class QSGMaterialShader;
-struct QSGMaterialType;
-class QOpenGLFramebufferObject;
-class TextureReference;
-class QSGBindable;
-class QSGNodeUpdater;
-
-class Q_DECLARATIVE_EXPORT QSGRenderer : public QObject, public QOpenGLFunctions
-{
- Q_OBJECT
-public:
- enum ClipType
- {
- NoClip,
- ScissorClip,
- StencilClip
- };
-
- enum ClearModeBit
- {
- ClearColorBuffer = 0x0001,
- ClearDepthBuffer = 0x0002,
- ClearStencilBuffer = 0x0004
- };
- Q_DECLARE_FLAGS(ClearMode, ClearModeBit)
-
- QSGRenderer(QSGContext *context);
- virtual ~QSGRenderer();
-
- void setRootNode(QSGRootNode *node);
- QSGRootNode *rootNode() const { return m_root_node; }
-
- void setDeviceRect(const QRect &rect) { m_device_rect = rect; }
- inline void setDeviceRect(const QSize &size) { setDeviceRect(QRect(QPoint(), size)); }
- QRect deviceRect() const { return m_device_rect; }
-
- void setViewportRect(const QRect &rect) { m_viewport_rect = rect; }
- inline void setViewportRect(const QSize &size) { setViewportRect(QRect(QPoint(), size)); }
- QRect viewportRect() const { return m_viewport_rect; }
-
- // Accessed by QSGMaterialShader::RenderState.
- QMatrix4x4 currentProjectionMatrix() const { return m_current_projection_matrix; }
- QMatrix4x4 currentModelViewMatrix() const { return m_current_model_view_matrix; }
- QMatrix4x4 currentCombinedMatrix() const { return m_current_projection_matrix * m_current_model_view_matrix; }
- qreal currentOpacity() const { return m_current_opacity; }
-
- void setProjectionMatrixToDeviceRect();
- void setProjectionMatrixToRect(const QRectF &rect);
- void setProjectionMatrix(const QMatrix4x4 &matrix);
- QMatrix4x4 projectionMatrix() const { return m_projection_matrix; }
- bool isMirrored() const { return m_mirrored; }
-
- void setClearColor(const QColor &color);
- QColor clearColor() const { return m_clear_color; }
-
- QOpenGLContext *glContext() const { Q_ASSERT(m_context); return m_context->glContext(); }
-
- QSGContext *context();
-
- void renderScene();
- void renderScene(const QSGBindable &bindable);
- virtual void nodeChanged(QSGNode *node, QSGNode::DirtyFlags flags);
- virtual void materialChanged(QSGGeometryNode *node, QSGMaterial *from, QSGMaterial *to);
-
- QSGNodeUpdater *nodeUpdater() const;
- void setNodeUpdater(QSGNodeUpdater *updater);
-
- inline QSGMaterialShader::RenderState state(QSGMaterialShader::RenderState::DirtyStates dirty) const;
-
- void setClearMode(ClearMode mode) { m_clear_mode = mode; }
- ClearMode clearMode() const { return m_clear_mode; }
-
-signals:
- void sceneGraphChanged(); // Add, remove, ChangeFlags changes...
-
-protected:
- void draw(const QSGMaterialShader *material, const QSGGeometry *g);
-
- virtual void render() = 0;
- QSGRenderer::ClipType updateStencilClip(const QSGClipNode *clip);
-
- const QSGBindable *bindable() const { return m_bindable; }
-
- virtual void preprocess();
-
- void addNodesToPreprocess(QSGNode *node);
- void removeNodesToPreprocess(QSGNode *node);
-
-
- QColor m_clear_color;
- ClearMode m_clear_mode;
- QMatrix4x4 m_current_projection_matrix;
- QMatrix4x4 m_current_model_view_matrix;
- qreal m_current_opacity;
-
- QSGContext *m_context;
-
-private:
- QSGRootNode *m_root_node;
- QSGNodeUpdater *m_node_updater;
-
- QRect m_device_rect;
- QRect m_viewport_rect;
-
- QSet<QSGNode *> m_nodes_to_preprocess;
-
- QMatrix4x4 m_projection_matrix;
- QOpenGLShaderProgram m_clip_program;
- int m_clip_matrix_id;
-
- const QSGBindable *m_bindable;
-
- 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)
-
-class Q_DECLARATIVE_EXPORT QSGBindable
-{
-public:
- virtual ~QSGBindable() { }
- virtual void bind() const = 0;
- virtual void clear(QSGRenderer::ClearMode mode) const;
- virtual void reactivate() const;
-};
-
-class QSGBindableFbo : public QSGBindable
-{
-public:
- QSGBindableFbo(QOpenGLFramebufferObject *fbo);
- virtual void bind() const;
-private:
- QOpenGLFramebufferObject *m_fbo;
-};
-
-
-
-QSGMaterialShader::RenderState QSGRenderer::state(QSGMaterialShader::RenderState::DirtyStates dirty) const
-{
- QSGMaterialShader::RenderState s;
- s.m_dirty = dirty;
- s.m_data = this;
- return s;
-}
-
-
-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
-
-#endif // RENDERER_H