20 if (*
length <
sizeof(leading)) {
24 memcpy(&leading, *srcPtr,
sizeof(leading));
25 *srcPtr +=
sizeof(leading);
26 *
length -=
sizeof(leading);
34 if (*
length <
sizeof(trailing)) {
38 memcpy(&trailing, *srcPtr,
sizeof(trailing));
43 *srcPtr +=
sizeof(trailing);
44 *
length -=
sizeof(trailing);
46 c = (c << 10) + c2 + (0x10000 - (0xD800 << 10) - 0xDC00);
67 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
68 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
69 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
70 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
71 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
72 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
73 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
74 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8,
75 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
76 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
77 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
78 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0xFB01, 0xFB02,
79 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
80 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
81 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
82 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
88 utf8.appendUnichar(macRoman[
i] < 0x80 ? macRoman[
i]
238 { 0x040a,
"es-ES_tradnl" },
270 { 0x0428,
"tg-Cyrl-TJ" },
274 { 0x042c,
"az-Latn-AZ" },
276 { 0x042e,
"hsb-DE" },
292 { 0x0443,
"uz-Latn-UZ" },
306 { 0x0450,
"mn-Cyrl" },
312 { 0x0457,
"kok-IN" },
313 { 0x045a,
"syr-SY" },
315 { 0x045d,
"iu-Cans-CA" },
320 { 0x0464,
"fil-PH" },
322 { 0x0468,
"ha-Latn-NG" },
324 { 0x046b,
"quz-BO" },
325 { 0x046c,
"nso-ZA" },
331 { 0x047a,
"arn-CL" },
332 { 0x047c,
"moh-CA" },
338 { 0x0484,
"gsw-FR" },
339 { 0x0485,
"sah-RU" },
340 { 0x0486,
"qut-GT" },
343 { 0x048c,
"prs-AF" },
346 { 0x0804,
"zh-Hans" },
355 { 0x081a,
"sr-Latn-CS" },
357 { 0x082c,
"az-Cyrl-AZ" },
358 { 0x082e,
"dsb-DE" },
363 { 0x0843,
"uz-Cyrl-UZ" },
365 { 0x0850,
"mn-Mong-CN" },
366 { 0x085d,
"iu-Latn-CA" },
367 { 0x085f,
"tzm-Latn-DZ" },
368 { 0x086b,
"quz-EC" },
370 { 0x0c04,
"zh-Hant" },
375 { 0x0c1a,
"sr-Cyrl-CS" },
377 { 0x0c6b,
"quz-PE" },
385 { 0x103b,
"smj-NO" },
392 { 0x141a,
"bs-Latn-BA" },
394 { 0x143b,
"smj-SE" },
400 { 0x181a,
"sr-Latn-BA" },
401 { 0x183b,
"sma-NO" },
405 { 0x1c1a,
"sr-Cyrl-BA" },
406 { 0x1c3b,
"sma-SE" },
411 { 0x201a,
"bs-Cyrl-BA" },
412 { 0x201a,
"bs-Cyrl" },
413 { 0x203b,
"sms-FI" },
416 { 0x2409,
"en-029" },
418 { 0x241a,
"sr-Latn-RS" },
419 { 0x243b,
"smn-FI" },
423 { 0x281a,
"sr-Cyrl-RS" },
427 { 0x2c1a,
"sr-Latn-ME" },
431 { 0x301a,
"sr-Cyrl-ME" },
453 return a.languageID <
b.languageID;
459 if (fNameTableSize <
sizeof(nameTable)) {
462 memcpy(&nameTable, fNameTable,
sizeof(nameTable));
464 const uint8_t* nameRecords = fNameTable +
sizeof(nameTable);
465 const size_t nameRecordsSize = fNameTableSize -
sizeof(nameTable);
468 if (fNameTableSize < stringTableOffset) {
471 const uint8_t* stringTable = fNameTable + stringTableOffset;
472 const size_t stringTableSize = fNameTableSize - stringTableOffset;
477 const size_t nameRecordsMax =
std::min(nameRecordsCount, nameRecordsSize /
sizeof(nameRecord));
479 if (fIndex >= nameRecordsMax) {
483 memcpy(&nameRecord, nameRecords +
sizeof(nameRecord)*fIndex,
sizeof(nameRecord));
492 if (stringTableSize <
nameOffset + nameLength) {
495 const uint8_t* nameString = stringTable +
nameOffset;
538 const uint16_t languageTagRecordIndex = languageID - 0x8000;
540 if (nameRecordsSize <
sizeof(nameRecord)*nameRecordsCount) {
543 const uint8_t* format1extData = nameRecords +
sizeof(nameRecord)*nameRecordsCount;
544 size_t format1extSize = nameRecordsSize -
sizeof(nameRecord)*nameRecordsCount;
546 if (format1extSize <
sizeof(format1ext)) {
549 memcpy(&format1ext, format1extData,
sizeof(format1ext));
551 const uint8_t* languageTagRecords = format1extData +
sizeof(format1ext);
552 size_t languageTagRecordsSize = format1extSize -
sizeof(format1ext);
555 if (languageTagRecordsSize <
sizeof(languageTagRecord)*(languageTagRecordIndex+1)) {
558 const uint8_t* languageTagData = languageTagRecords
559 +
sizeof(languageTagRecord)*languageTagRecordIndex;
560 memcpy(&languageTagRecord, languageTagData,
sizeof(languageTagRecord));
565 if (fNameTableSize < stringTableOffset + languageOffset + languageLength) {
568 const uint8_t* languageString = stringTable + languageOffset;
576 int languageIndex = SkTSearch<BCP47FromLanguageId, BCP47FromLanguageIdLess>(
578 if (languageIndex >= 0) {
#define SkEndian_SwapBE16(n)
static const struct BCP47FromLanguageId BCP47FromLanguageID[]
static const uint16_t UnicodeFromMacRoman[0x80]
static SkUnichar next_unichar_UTF16BE(const uint8_t **srcPtr, size_t *length)
static void SkStringFromMacRoman(const uint8_t *macRoman, size_t length, SkString &utf8)
static void SkString_from_UTF16BE(const uint8_t *utf16be, size_t length, SkString &utf8)
static float min(float r, float g, float b)
static bool IsTrailingSurrogateUTF16(uint16_t c)
static bool IsLeadingSurrogateUTF16(uint16_t c)
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
enum SkOTTableName::Record::EncodingID::Macintosh::Value value
enum SkOTTableName::Record::EncodingID::Windows::Value value
struct SkOTTableName::Record::PlatformID platformID
union SkOTTableName::Record::NameID nameID
union SkOTTableName::Record::LanguageID languageID
union SkOTTableName::Record::EncodingID encodingID
SK_OT_USHORT stringOffset
static const SK_OT_USHORT format_1
struct SkOTTableName::Record::EncodingID::Windows windows
struct SkOTTableName::Record::EncodingID::Macintosh macintosh
SK_OT_USHORT languageTagID
SK_OT_USHORT fontSpecific