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
166 for (
int j = 0; j <
set->count(); ++j) {
169 set->getStyle(j, &fs, &sname);
182 while (familyNamesIter->next(&familyNameLocalized)) {
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);
DEF_TEST(FontNames, reporter)
static DEFINE_bool(verboseFontNames, false, "verbose FontNames test.")
#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 REPORTER_ASSERT(r, cond,...)
sk_sp< SkFontStyleSet > createStyleSet(int index) const
int countFamilies() const
const char * c_str() const
LocalizedStrings * createFamilyNameIterator() const
void getFamilyName(SkString *name) const
size_t getTableSize(SkFontTableTag) const
size_t getTableData(SkFontTableTag tag, size_t offset, size_t length, void *data) const
static float min(float r, float g, float b)
static const char *const names[]
DEF_SWITCHES_START aot vmservice shared library name
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
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not set
static const char header[]
static const SK_OT_USHORT format_0
static const SK_OT_USHORT format_1
std::shared_ptr< const fml::Mapping > data