Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qsgdistancefieldglyphnode_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QSGDISTANCEFIELDGLYPHNODE_P_H
6
#
define
QSGDISTANCEFIELDGLYPHNODE_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
private
/
qsgadaptationlayer_p
.
h
>
20
#
include
<
QtQuick
/
qsgtexture
.
h
>
21
22
#
include
<
QtQuick
/
private
/
qquicktext_p
.
h
>
23
24
QT_BEGIN_NAMESPACE
25
26
Q_DECLARE_LOGGING_CATEGORY
(
lcSgText
)
27
28
class
QSGRenderContext;
29
class
QSGDistanceFieldTextMaterial;
30
31
class
QSGDistanceFieldGlyphNode
:
public
QSGGlyphNode
,
public
QSGDistanceFieldGlyphConsumer
32
{
33
public
:
34
QSGDistanceFieldGlyphNode
(QSGRenderContext *context);
35
~
QSGDistanceFieldGlyphNode
();
36
37
QPointF
baseLine
()
const
override
{
return
m_baseLine; }
38
void
setGlyphs
(
const
QPointF &position,
const
QGlyphRun &glyphs)
override
;
39
void
setColor
(
const
QColor &color)
override
;
40
41
void
setPreferredAntialiasingMode
(AntialiasingMode mode)
override
;
42
void
setRenderTypeQuality
(
int
renderTypeQuality)
override
;
43
44
void
setStyle
(QQuickText::TextStyle style)
override
;
45
void
setStyleColor
(
const
QColor &color)
override
;
46
47
void
update
()
override
;
48
void
preprocess
()
override
;
49
50
void
invalidateGlyphs
(
const
QList<quint32> &glyphs)
override
;
51
52
void
updateGeometry
();
53
54
void
recycle
()
override
;
55
56
private
:
57
enum
DistanceFieldGlyphNodeType {
58
RootGlyphNode,
59
SubGlyphNode
60
};
61
62
void
cleanup();
63
void
setGlyphNodeType(DistanceFieldGlyphNodeType type) { m_glyphNodeType = type; }
64
void
updateMaterial();
65
66
DistanceFieldGlyphNodeType m_glyphNodeType;
67
QColor m_color;
68
QPointF m_baseLine;
69
QSGRenderContext *m_context;
70
QSGDistanceFieldTextMaterial *m_material;
71
QPointF m_originalPosition;
72
QPointF m_position;
73
QGlyphRun m_glyphs;
74
QSGDistanceFieldGlyphCache *m_glyph_cache;
75
QSGGeometry m_geometry;
76
QQuickText::TextStyle m_style;
77
QColor m_styleColor;
78
AntialiasingMode m_antialiasingMode;
79
QRectF m_boundingRect;
80
const
QSGDistanceFieldGlyphCache::Texture *m_texture;
81
int
m_renderTypeQuality;
82
83
struct
GlyphInfo {
84
QList<quint32> indexes;
85
QList<QPointF> positions;
86
};
87
QSet<quint32> m_allGlyphIndexesLookup;
88
// m_glyphs holds pointers to the GlyphInfo.indexes and positions arrays, so we need to hold on to them
89
QHash<
const
QSGDistanceFieldGlyphCache::Texture *, GlyphInfo> m_glyphsInOtherTextures;
90
91
uint m_dirtyGeometry: 1;
92
uint m_dirtyMaterial: 1;
93
};
94
95
QT_END_NAMESPACE
96
97
#
endif
QSGDistanceFieldGlyphNode
Definition
qsgdistancefieldglyphnode_p.h:32
QSGDistanceFieldGlyphNode::invalidateGlyphs
void invalidateGlyphs(const QList< quint32 > &glyphs) override
Definition
qsgdistancefieldglyphnode.cpp:173
QSGDistanceFieldGlyphNode::baseLine
QPointF baseLine() const override
Definition
qsgdistancefieldglyphnode_p.h:37
QSGDistanceFieldGlyphNode::QSGDistanceFieldGlyphNode
QSGDistanceFieldGlyphNode(QSGRenderContext *context)
Definition
qsgdistancefieldglyphnode.cpp:16
QSGDistanceFieldGlyphNode::setStyleColor
void setStyleColor(const QColor &color) override
Definition
qsgdistancefieldglyphnode.cpp:151
QSGDistanceFieldGlyphNode::updateGeometry
void updateGeometry()
Definition
qsgdistancefieldglyphnode.cpp:187
QSGDistanceFieldGlyphNode::setStyle
void setStyle(QQuickText::TextStyle style) override
Definition
qsgdistancefieldglyphnode.cpp:143
QSGDistanceFieldGlyphNode::recycle
void recycle() override
Definition
qsgdistancefieldglyphnode.cpp:58
QSGDistanceFieldGlyphNode::update
void update() override
Definition
qsgdistancefieldglyphnode.cpp:159
QSGDistanceFieldGlyphNode::setRenderTypeQuality
void setRenderTypeQuality(int renderTypeQuality) override
Definition
qsgdistancefieldglyphnode.cpp:88
QSGDistanceFieldGlyphNode::setColor
void setColor(const QColor &color) override
Definition
qsgdistancefieldglyphnode.cpp:77
QSGDistanceFieldGlyphNode::setPreferredAntialiasingMode
void setPreferredAntialiasingMode(AntialiasingMode mode) override
Definition
qsgdistancefieldglyphnode.cpp:96
QSGDistanceFieldGlyphNode::~QSGDistanceFieldGlyphNode
~QSGDistanceFieldGlyphNode()
Definition
qsgdistancefieldglyphnode.cpp:37
QSGDistanceFieldGlyphNode::preprocess
void preprocess() override
Override this function to do processing on the node before it is rendered.
Definition
qsgdistancefieldglyphnode.cpp:165
QSGDistanceFieldGlyphNode::setGlyphs
void setGlyphs(const QPointF &position, const QGlyphRun &glyphs) override
Definition
qsgdistancefieldglyphnode.cpp:104
QSGDistanceFieldStyledTextMaterial
Definition
qsgdistancefieldglyphnode_p_p.h:66
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
Q_DECLARE_LOGGING_CATEGORY
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcQIORing)
qtdeclarative
src
quick
scenegraph
qsgdistancefieldglyphnode_p.h
Generated on
for Qt by
1.18.0