Pastebin URL (expires in 24 hours):
http://paste.fedoraproject.org/51638/61143313

--- 
diff --git a/src/quick/designer/designersupport.h b/src/quick/designer/designersupport.h
index 5139a65..41458ae 100644
--- a/src/quick/designer/designersupport.h
+++ b/src/quick/designer/designersupport.h
@@ -80,7 +80,7 @@ private:
 
 class QCursor;
 class QQuickItemLayer;
-class QQmlV8Function;
+class QQmlV4Function;
 class QQuickState;
 class QQuickAnchorLine;
 class QQuickTransition;
@@ -320,8 +320,8 @@ public:
 
     void polish();
 
-    Q_INVOKABLE void mapFromItem(QQmlV8Function*) const;
-    Q_INVOKABLE void mapToItem(QQmlV8Function*) const;
+    Q_INVOKABLE void mapFromItem(QQmlV4Function*) const;
+    Q_INVOKABLE void mapToItem(QQmlV4Function*) const;
     Q_INVOKABLE void forceActiveFocus();
     Q_INVOKABLE void forceActiveFocus(Qt::FocusReason reason);
     Q_REVISION(1) Q_INVOKABLE QQuickItem *nextItemInFocusChain(bool forward = true);
diff --git a/src/quick/items/qquickpainteditem.h b/src/quick/items/qquickpainteditem.h
index 8892400..0a332bf 100644
--- a/src/quick/items/qquickpainteditem.h
+++ b/src/quick/items/qquickpainteditem.h
@@ -47,24 +47,6 @@
 
 QT_BEGIN_NAMESPACE
 
-/*!
-    \class QQuickTextDocument
-    \since 5.1
-    \brief The QQuickTextDocument class provides access to the QTextDocument of QQuickTextEdit
-    \inmodule QtQuick
-
-    This class provides access to the QTextDocument of QQuickTextEdit elements.
-    This is provided to allow usage of the \l{Rich Text Processing} functionalities of Qt.
-    You are not allowed to modify the document, but it can be used to output content, for example with \l{QTextDocumentWriter}),
-    or provide additional formatting, for example with \l{QSyntaxHighlighter}.
-
-    The class has to be used from C++ directly, using the property of the \l TextEdit.
-
-    Warning: The QTextDocument provided is used internally by \l {Qt Quick} elements to provide text manipulation primitives.
-    You are not allowed to perform any modification of the internal state of the QTextDocument. If you do, the element
-    in question may stop functioning or crash.
-*/
-
 class QQuickTextDocumentPrivate;
 class Q_QUICK_EXPORT QQuickTextDocument : public QObject
 {
diff --git a/src/quick/items/qquickview.h b/src/quick/items/qquickview.h
index 3e8883d..66d5e34 100644
--- a/src/quick/items/qquickview.h
+++ b/src/quick/items/qquickview.h
@@ -72,7 +72,8 @@ public:
     enum CreateTextureOption {
         TextureHasAlphaChannel  = 0x0001,
         TextureHasMipmaps       = 0x0002,
-        TextureOwnsGLTexture    = 0x0004
+        TextureOwnsGLTexture    = 0x0004,
+        TextureCanUseAtlas      = 0x0008
     };
 
     Q_DECLARE_FLAGS(CreateTextureOptions, CreateTextureOption)
@@ -99,6 +100,8 @@ public:
     uint renderTargetId() const;
     QSize renderTargetSize() const;
 
+    void resetOpenGLState();
+
     QQmlIncubationController *incubationController() const;
 
 #ifndef QT_NO_ACCESSIBILITY
@@ -107,6 +110,7 @@ public:
 
     // Scene graph specific functions
     QSGTexture *createTextureFromImage(const QImage &image) const;
+    QSGTexture *createTextureFromImage(const QImage &image, CreateTextureOptions options) const;
     QSGTexture *createTextureFromId(uint id, const QSize &size, CreateTextureOptions options = CreateTextureOption(0)) const;
 
     void setClearBeforeRendering(bool enabled);
@@ -139,6 +143,7 @@ Q_SIGNALS:
 
 public Q_SLOTS:
     void update();
+    void forcePolish();
     void releaseResources();
 
 protected:
diff --git a/src/quick/qtquickglobal.h b/src/quick/qtquickglobal.h
index 4cbeb4a..bffdf19 100644
--- a/src/quick/qtquickglobal.h
+++ b/src/quick/qtquickglobal.h
@@ -151,10 +151,10 @@ public:
     static void updateTexturedRectGeometry(QSGGeometry *g, const QRectF &rect, const QRectF &sourceRect);
 
     void setIndexDataPattern(DataPattern p);
-    DataPattern indexDataPattern() const { return (DataPattern) m_index_usage_pattern; }
+    DataPattern indexDataPattern() const { return DataPattern(m_index_usage_pattern); }
 
     void setVertexDataPattern(DataPattern p);
-    DataPattern vertexDataPattern() const { return (DataPattern) m_vertex_usage_pattern; }
+    DataPattern vertexDataPattern() const { return DataPattern(m_vertex_usage_pattern); }
 
     void markIndexDataDirty();
     void markVertexDataDirty();
@@ -190,25 +190,25 @@ private:
 inline uint *QSGGeometry::indexDataAsUInt()
 {
     Q_ASSERT(m_index_type == GL_UNSIGNED_INT);
-    return (uint *) indexData();
+    return static_cast<uint *>(indexData());
 }
 
 inline quint16 *QSGGeometry::indexDataAsUShort()
 {
     Q_ASSERT(m_index_type == GL_UNSIGNED_SHORT);
-    return (quint16 *) indexData();
+    return static_cast<quint16 *>(indexData());
 }
 
 inline const uint *QSGGeometry::indexDataAsUInt() const
 {
     Q_ASSERT(m_index_type == GL_UNSIGNED_INT);
-    return (uint *) indexData();
+    return static_cast<const uint *>(indexData());
 }
 
 inline const quint16 *QSGGeometry::indexDataAsUShort() const
 {
     Q_ASSERT(m_index_type == GL_UNSIGNED_SHORT);
-    return (quint16 *) indexData();
+    return static_cast<const quint16 *>(indexData());
 }
 
 inline QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D()
@@ -218,7 +218,7 @@ inline QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D()
     Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
     Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
     Q_ASSERT(m_attributes.attributes[0].position == 0);
-    return (Point2D *) m_data;
+    return static_cast<Point2D *>(m_data);
 }
 
 inline QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D()
@@ -231,7 +231,7 @@ inline QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D()
     Q_ASSERT(m_attributes.attributes[1].position == 1);
     Q_ASSERT(m_attributes.attributes[1].tupleSize == 2);
     Q_ASSERT(m_attributes.attributes[1].type == GL_FLOAT);
-    return (TexturedPoint2D *) m_data;
+    return static_cast<TexturedPoint2D *>(m_data);
 }
 
 inline QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D()
@@ -244,7 +244,7 @@ inline QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D()
     Q_ASSERT(m_attributes.attributes[1].position == 1);
     Q_ASSERT(m_attributes.attributes[1].tupleSize == 4);
     Q_ASSERT(m_attributes.attributes[1].type == GL_UNSIGNED_BYTE);
-    return (ColoredPoint2D *) m_data;
+    return static_cast<ColoredPoint2D *>(m_data);
 }
 
 inline const QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D() const
@@ -254,7 +254,7 @@ inline const QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D() const
     Q_ASSERT(m_attributes.attributes[0].tupleSize == 2);
     Q_ASSERT(m_attributes.attributes[0].type == GL_FLOAT);
     Q_ASSERT(m_attributes.attributes[0].position == 0);
-    return (const Point2D *) m_data;
+    return static_cast<const Point2D *>(m_data);
 }
 
 inline const QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D() const
@@ -267,7 +267,7 @@ inline const QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoin
     Q_ASSERT(m_attributes.attributes[1].position == 1);
     Q_ASSERT(m_attributes.attributes[1].tupleSize == 2);
     Q_ASSERT(m_attributes.attributes[1].type == GL_FLOAT);
-    return (const TexturedPoint2D *) m_data;
+    return static_cast<const TexturedPoint2D *>(m_data);
 }
 
 inline const QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D() const
@@ -280,7 +280,7 @@ inline const QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2
     Q_ASSERT(m_attributes.attributes[1].position == 1);
     Q_ASSERT(m_attributes.attributes[1].tupleSize == 4);
     Q_ASSERT(m_attributes.attributes[1].type == GL_UNSIGNED_BYTE);
-    return (const ColoredPoint2D *) m_data;
+    return static_cast<const ColoredPoint2D *>(m_data);
 }
 
 int QSGGeometry::sizeOfIndex() const
diff --git a/src/quick/scenegraph/coreapi/qsgmaterial.h b/src/quick/scenegraph/coreapi/qsgmaterial.h
index 20ab21a..f3ef62d 100644
--- a/src/quick/scenegraph/coreapi/qsgmaterial.h
+++ b/src/quick/scenegraph/coreapi/qsgmaterial.h
@@ -49,6 +49,10 @@ QT_BEGIN_NAMESPACE
 
 class QSGMaterial;
 
+namespace QSGBatchRenderer {
+    class ShaderManager;
+}
+
 class Q_QUICK_EXPORT QSGMaterialShader
 {
 public:
@@ -95,8 +99,8 @@ public:
     inline QOpenGLShaderProgram *program() { return &m_program; }
 
 protected:
-
     friend class QSGContext;
+    friend class QSGBatchRenderer::ShaderManager;
 
     virtual void compile();
     virtual void initialize() { }
@@ -118,7 +122,9 @@ public:
         Blending            = 0x0001,
         RequiresDeterminant = 0x0002, // Allow precalculated translation and 2D rotation
         RequiresFullMatrixExceptTranslate = 0x0004 | RequiresDeterminant, // Allow precalculated translation
-        RequiresFullMatrix  = 0x0008 | RequiresFullMatrixExceptTranslate
+        RequiresFullMatrix  = 0x0008 | RequiresFullMatrixExceptTranslate,
+
+        CustomCompileStep   = 0x0010
     };
     Q_DECLARE_FLAGS(Flags, Flag)
 
@@ -133,7 +139,6 @@ public:
     void setFlag(Flags flags, bool on = true);
 
 private:
-    friend class QSGContext;
     Flags m_flags;
     void *m_reserved;
     Q_DISABLE_COPY(QSGMaterial)
diff --git a/src/quick/scenegraph/coreapi/qsgnode.h b/src/quick/scenegraph/coreapi/qsgnode.h
index 3fa2f7f..60e7652 100644
--- a/src/quick/scenegraph/coreapi/qsgnode.h
+++ b/src/quick/scenegraph/coreapi/qsgnode.h
@@ -49,7 +49,7 @@
 
 QT_BEGIN_NAMESPACE
 
-//#define QML_RUNTIME_TESTING
+// #define QSG_RUNTIME_DESCRIPTION
 
 class QSGRenderer;
 
@@ -58,6 +58,14 @@ class QSGRootNode;
 class QSGGeometryNode;
 class QSGTransformNode;
 class QSGClipNode;
+class QSGNodePrivate;
+class QSGBasicGeometryNodePrivate;
+class QSGGeometryNodePrivate;
+
+namespace QSGBatchRenderer {
+    class Renderer;
+    class Updater;
+}
 
 class Q_QUICK_EXPORT QSGNode
 {
@@ -79,16 +87,19 @@ public:
         OwnedByParent               = 0x0001,
         UsePreprocess               = 0x0002,
 
-        // Upper 16 bits reserved for node subclasses
+        // 0x00ff0000 bits reserved for node subclasses
 
         // QSGBasicGeometryNode
         OwnsGeometry                = 0x00010000,
         OwnsMaterial                = 0x00020000,
         OwnsOpaqueMaterial          = 0x00040000
+
+        // Uppermost 8 bits are reserved for internal use.
     };
     Q_DECLARE_FLAGS(Flags, Flag)
 
     enum DirtyStateBit {
+        DirtySubtreeBlocked         = 0x0080,
         DirtyMatrix                 = 0x0100,
         DirtyNodeAdded              = 0x0400,
         DirtyNodeRemoved            = 0x0800,
@@ -143,15 +154,13 @@ public:
 
     virtual void preprocess() { }
 
-#ifdef QML_RUNTIME_TESTING
-    QString description;
-#endif
-
 protected:
     QSGNode(NodeType type);
+    QSGNode(QSGNodePrivate &dd, NodeType type);
 
 private:
     friend class QSGRootNode;
+    friend class QSGBatchRenderer::Renderer;
 
     void init();
     void destroy();
@@ -165,11 +174,18 @@ private:
     int m_subtreeRenderableCount;
 
     Flags m_nodeFlags;
-    DirtyState m_dirtyState;
+    DirtyState m_dirtyState; // Obsolete, remove in Qt 6
+
+protected:
+    friend class QSGNodePrivate;
 
-    void *m_reserved;
+    QScopedPointer<QSGNodePrivate> d_ptr;
 };
 
+#ifdef QSG_RUNTIME_DESCRIPTION
+void Q_QUICK_EXPORT qsgnode_set_description(QSGNode *node, const QString &description);
+#endif
+
 class Q_QUICK_EXPORT QSGBasicGeometryNode : public QSGNode
 {
 public:
@@ -184,9 +200,12 @@ public:
 
 protected:
     QSGBasicGeometryNode(NodeType type);
+    QSGBasicGeometryNode(QSGBasicGeometryNodePrivate &dd, NodeType type);
 
 private:
     friend class QSGNodeUpdater;
+    friend class QSGBatchRenderer::Updater;
+
     QSGGeometry *m_geometry;
 
     int m_reserved_start_index;
@@ -218,6 +237,9 @@ public:
     void setInheritedOpacity(qreal opacity);
     qreal inheritedOpacity() const { return m_opacity; }
 
+protected:
+    QSGGeometryNode(QSGGeometryNodePrivate &dd);
+
 private:
     friend class QSGNodeUpdater;
 
diff --git a/src/quick/scenegraph/util/qsgflatcolormaterial.h b/src/quick/scenegraph/util/qsgflatcolormaterial.h
index 12a37f2..2c802cc 100644
--- a/src/quick/scenegraph/util/qsgflatcolormaterial.h
+++ b/src/quick/scenegraph/util/qsgflatcolormaterial.h
@@ -48,6 +48,8 @@
 
 QT_BEGIN_NAMESPACE
 
+class QSGSimpleTextureNodePrivate;
+
 class Q_QUICK_EXPORT QSGSimpleTextureNode : public QSGGeometryNode
 {
 public:
@@ -63,14 +65,28 @@ public:
     void setFiltering(QSGTexture::Filtering filtering);
     QSGTexture::Filtering filtering() const;
 
+    enum TextureCoordinatesTransformFlag {
+        NoTransform        = 0x00,
+        MirrorHorizontally = 0x01,
+        MirrorVertically   = 0x02
+    };
+    Q_DECLARE_FLAGS(TextureCoordinatesTransformMode, TextureCoordinatesTransformFlag)
+
+    void setTextureCoordinatesTransform(TextureCoordinatesTransformMode mode);
+    TextureCoordinatesTransformMode textureCoordinatesTransform() const;
+
 private:
     QSGGeometry m_geometry;
     QSGOpaqueTextureMaterial m_opaque_material;
     QSGTextureMaterial m_material;
 
     QRectF m_rect;
+
+    Q_DECLARE_PRIVATE(QSGSimpleTextureNode)
 };
 
+Q_DECLARE_OPERATORS_FOR_FLAGS(QSGSimpleTextureNode::TextureCoordinatesTransformMode)
+
 QT_END_NAMESPACE
 
 #endif // QSGSIMPLETEXTURENODE_H
diff --git a/src/quick/scenegraph/util/qsgtexture.h b/src/quick/scenegraph/util/qsgtexture.h
index 299ffc2..5bc7095 100644
--- a/src/quick/scenegraph/util/qsgtexture.h
+++ b/src/quick/scenegraph/util/qsgtexture.h
@@ -60,16 +60,16 @@ public:
     QSGTexture *texture() const { return m_texture; }
 
     void setMipmapFiltering(QSGTexture::Filtering filteringType) { m_mipmap_filtering = filteringType; }
-    QSGTexture::Filtering mipmapFiltering() const { return (QSGTexture::Filtering) m_mipmap_filtering; }
+    QSGTexture::Filtering mipmapFiltering() const { return QSGTexture::Filtering(m_mipmap_filtering); }
 
     void setFiltering(QSGTexture::Filtering filteringType) { m_filtering = filteringType; }
-    QSGTexture::Filtering filtering() const { return (QSGTexture::Filtering)  m_filtering; }
+    QSGTexture::Filtering filtering() const { return QSGTexture::Filtering(m_filtering); }
 
     void setHorizontalWrapMode(QSGTexture::WrapMode mode) { m_horizontal_wrap = mode; }
-    QSGTexture::WrapMode horizontalWrapMode() const { return (QSGTexture::WrapMode) m_horizontal_wrap; }
+    QSGTexture::WrapMode horizontalWrapMode() const { return QSGTexture::WrapMode(m_horizontal_wrap); }
 
     void setVerticalWrapMode(QSGTexture::WrapMode mode) { m_vertical_wrap = mode; }
-    QSGTexture::WrapMode verticalWrapMode() const { return (QSGTexture::WrapMode) m_vertical_wrap; }
+    QSGTexture::WrapMode verticalWrapMode() const { return QSGTexture::WrapMode(m_vertical_wrap); }
 
 protected:
     QSGTexture *m_texture;
diff --git a/src/quick/scenegraph/util/qsgtextureprovider.h b/src/quick/scenegraph/util/qsgtextureprovider.h
index 608b3c6..892f0e5 100644
--- a/src/quick/scenegraph/util/qsgtextureprovider.h
+++ b/src/quick/scenegraph/util/qsgtextureprovider.h
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to