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
qfontenginemultifontconfig.cpp
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
4
#
include
"qfontenginemultifontconfig_p.h"
5
6
#
include
<
QtGui
/
private
/
qfontengine_ft_p
.
h
>
7
8
QT_BEGIN_NAMESPACE
9
10
QFontEngineMultiFontConfig::QFontEngineMultiFontConfig(QFontEngine *fe,
int
script)
11
: QFontEngineMulti(fe, script)
12
{
13
}
14
15
QFontEngineMultiFontConfig::~QFontEngineMultiFontConfig()
16
{
17
for
(FcPattern *pattern : std::as_const(cachedMatchPatterns)) {
18
if
(pattern)
19
FcPatternDestroy(pattern);
20
}
21
}
22
23
bool
QFontEngineMultiFontConfig::shouldLoadFontEngineForCharacter(
int
at, uint ucs4)
const
24
{
25
bool
charSetHasChar =
true
;
26
FcPattern *matchPattern = getMatchPatternForFallback(at - 1);
27
if
(matchPattern !=
nullptr
) {
28
FcCharSet *charSet =
nullptr
;
29
if
(FcPatternGetCharSet(matchPattern, FC_CHARSET, 0, &charSet) == FcResultMatch
30
&& charSet !=
nullptr
) {
31
charSetHasChar = FcCharSetHasChar(charSet, ucs4);
32
}
33
}
34
35
return
charSetHasChar;
36
}
37
38
39
FcPattern * QFontEngineMultiFontConfig::getMatchPatternForFallback(
int
fallBackIndex)
const
40
{
41
Q_ASSERT(fallBackIndex < fallbackFamilyCount());
42
if
(fallbackFamilyCount() > cachedMatchPatterns.size())
43
cachedMatchPatterns.resize(fallbackFamilyCount());
44
FcPattern *ret = cachedMatchPatterns.at(fallBackIndex);
45
if
(ret)
46
return
ret;
47
FcPattern *requestPattern = FcPatternCreate();
48
FcValue value;
49
value.type = FcTypeString;
50
QByteArray cs = fallbackFamilyAt(fallBackIndex).toUtf8();
51
value.u.s =
reinterpret_cast
<
const
FcChar8 *>(cs.data());
52
FcPatternAdd(requestPattern, FC_FAMILY, value,
true
);
53
FcResult result;
54
ret = FcFontMatch(
nullptr
, requestPattern, &result);
55
cachedMatchPatterns.insert(fallBackIndex, ret);
56
FcPatternDestroy(requestPattern);
57
return
ret;
58
}
59
60
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtbase
src
gui
text
unix
qfontenginemultifontconfig.cpp
Generated on
for Qt by
1.18.0