31template <
size_t R,
size_t D>
struct Format0NameTable {
37template <
size_t R,
size_t L,
size_t D>
struct Format1NameTable {
47typedef Format0NameTable<1, 9> SimpleFormat0NameTable;
48constexpr SimpleFormat0NameTable simpleFormat0NameTable = {
64 "\x0" "T" "\x0" "e" "\x0" "s" "\x0" "t",
67typedef Format1NameTable<1, 1, 19> SimpleFormat1NameTable;
68constexpr SimpleFormat1NameTable simpleFormat1NameTable = {
95 "\x0" "T" "\x0" "e" "\x0" "s" "\x0" "t"
96 "\x0" "e" "\x0" "n" "\x0" "-" "\x0" "U" "\x0" "S",
106 const char* language;
111 reinterpret_cast<const uint8_t*
>(&simpleFormat0NameTable),
112 sizeof(simpleFormat0NameTable),
120 reinterpret_cast<const uint8_t*
>(&simpleFormat1NameTable),
121 sizeof(simpleFormat1NameTable),
134 size_t nameIndex = 0;
135 while (nameIndex <
test.nameCount && iter.next(record)) {
137 strcmp(
test.names[nameIndex].name, record.
name.
c_str()) == 0,
138 "Name did not match.");
142 "Language did not match.");
157#define MAX_FAMILIES 1000
164 for (
int i = 0; i <
count; ++i) {
166 for (
int j = 0; j < set->count(); ++j) {
169 set->getStyle(j, &fs, &sname);
174 typeface->getFamilyName(&familyName);
180 typeface->createFamilyNameIterator());
182 while (familyNamesIter->next(&familyNameLocalized)) {
189 size_t nameTableSize = typeface->getTableSize(nameTag);
190 if (0 == nameTableSize) {
194 size_t copied = typeface->getTableData(nameTag, 0, nameTableSize, nameTableData.
get());
195 if (copied != nameTableSize) {
202 while (familyNameIter.
next(record)) {
206 "Requested family name, got something else.");
214 while (styleNameIter.
next(record)) {
218 "Requested subfamily name, got something else.");
233static DEFINE_bool(verboseFontNames,
false,
"verbose FontNames test.");
236 test_synthetic(
reporter, FLAGS_verboseFontNames);
237 test_systemfonts(
reporter, FLAGS_verboseFontNames);
#define DEFINE_bool(name, defaultValue, helpString)
#define SkASSERT_RELEASE(cond)
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
static constexpr SkFourByteTag SkSetFourByteTag(char a, char b, char c, char d)
#define DEF_TEST(name, reporter)
#define REPORTER_ASSERT(r, cond,...)
const char * c_str() const
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
static const SK_OT_USHORT format_0
static const SK_OT_USHORT format_1