diff options
author | Oleg Yadrov <oleg.yadrov@qt.io> | 2017-02-27 13:15:52 -0800 |
---|---|---|
committer | Oleg Yadrov <oleg.yadrov@qt.io> | 2017-03-09 08:34:14 +0000 |
commit | 42e098fa0ad318a6b6fafadbadce21b974c29c4d (patch) | |
tree | caa778acd641afacb6efa6a1f9155d7c4bd632b6 /src/quick/scenegraph/qsgdefaultglyphnode_p.h | |
parent | e0add0b655941dcec483674594b63ce9775598be (diff) |
QtQuick scene graph: fix text native rendering
Only 65536 vertices (65536 / 4 = 16384 characters) can be drawn in one
draw call. This is why QSGDistanceFieldGlyphNode (renderType:
Text.QtRendering) creates subnodes if number of characters exceeds that
limit. QSGDefaultGlyphNode (renderType: Text.NativeRendering) missed
that logic for some reason.
Task-number: QTBUG-58852
Change-Id: I88b3fcdb8e56bc92622d3347cd638634d43df138
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/quick/scenegraph/qsgdefaultglyphnode_p.h')
-rw-r--r-- | src/quick/scenegraph/qsgdefaultglyphnode_p.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgdefaultglyphnode_p.h b/src/quick/scenegraph/qsgdefaultglyphnode_p.h index 0eb7a4e4bd..37a89c70b9 100644 --- a/src/quick/scenegraph/qsgdefaultglyphnode_p.h +++ b/src/quick/scenegraph/qsgdefaultglyphnode_p.h @@ -59,8 +59,31 @@ QT_BEGIN_NAMESPACE class QSGDefaultGlyphNode : public QSGBasicGlyphNode { public: + QSGDefaultGlyphNode(); + ~QSGDefaultGlyphNode(); void setMaterialColor(const QColor &color) override; + void setGlyphs(const QPointF &position, const QGlyphRun &glyphs) override; void update() override; + void preprocess() override; + void updateGeometry(); + +private: + enum DefaultGlyphNodeType { + RootGlyphNode, + SubGlyphNode + }; + + void setGlyphNodeType(DefaultGlyphNodeType type) { m_glyphNodeType = type; } + + DefaultGlyphNodeType m_glyphNodeType; + QLinkedList<QSGNode *> m_nodesToDelete; + + struct GlyphInfo { + QVector<quint32> indexes; + QVector<QPointF> positions; + }; + + uint m_dirtyGeometry: 1; }; QT_END_NAMESPACE |