Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Variables
jbParser Namespace Reference

Variables

static const TagHandler fileHandler
 
static const TagHandler fileSetHandler
 
static const TagHandler nameHandler
 
static const TagHandler nameSetHandler
 
static const TagHandler familyHandler
 
static const TagHandler familySetHandler
 

Variable Documentation

◆ familyHandler

const TagHandler jbParser::familyHandler
static
Initial value:
= {
[](FamilyData* self, const char* tag, const char** attributes) {
self->fCurrentFamily = std::make_unique<FontFamily>(self->fBasePath, self->fIsFallback);
for (size_t i = 0; ATTS_NON_NULL(attributes, i); i += 2) {
const char* value = attributes[i+1];
parse_non_negative_integer(value, &self->fCurrentFamily->fOrder);
}
},
[](FamilyData* self, const char* tag) {
*self->fFamilies.append() = self->fCurrentFamily.release();
},
[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
size_t len = strlen(tag);
if (MEMEQ("nameset", tag, len)) {
return &nameSetHandler;
} else if (MEMEQ("fileset", tag, len)) {
return &fileSetHandler;
}
return nullptr;
},
nullptr,
}
#define ATTS_NON_NULL(a, i)
#define MEMEQ(c, s, n)
bool parse_non_negative_integer(const char *s, T *value)
uint8_t value
static const TagHandler nameSetHandler
static const TagHandler fileSetHandler

Definition at line 514 of file SkFontMgr_android_parser.cpp.

514 {
515 /*start*/[](FamilyData* self, const char* tag, const char** attributes) {
516 self->fCurrentFamily = std::make_unique<FontFamily>(self->fBasePath, self->fIsFallback);
517 // 'order' (non-negative integer) [default -1]
518 for (size_t i = 0; ATTS_NON_NULL(attributes, i); i += 2) {
519 const char* value = attributes[i+1];
520 parse_non_negative_integer(value, &self->fCurrentFamily->fOrder);
521 }
522 },
523 /*end*/[](FamilyData* self, const char* tag) {
524 *self->fFamilies.append() = self->fCurrentFamily.release();
525 },
526 /*tag*/[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
527 size_t len = strlen(tag);
528 if (MEMEQ("nameset", tag, len)) {
529 return &nameSetHandler;
530 } else if (MEMEQ("fileset", tag, len)) {
531 return &fileSetHandler;
532 }
533 return nullptr;
534 },
535 /*chars*/nullptr,
536};

◆ familySetHandler

const TagHandler jbParser::familySetHandler
static
Initial value:
= {
nullptr,
nullptr,
[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
size_t len = strlen(tag);
if (MEMEQ("family", tag, len)) {
return &familyHandler;
}
return nullptr;
},
nullptr,
}

Definition at line 538 of file SkFontMgr_android_parser.cpp.

538 {
539 /*start*/nullptr,
540 /*end*/nullptr,
541 /*tag*/[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
542 size_t len = strlen(tag);
543 if (MEMEQ("family", tag, len)) {
544 return &familyHandler;
545 }
546 return nullptr;
547 },
548 /*chars*/nullptr,
549};

◆ fileHandler

const TagHandler jbParser::fileHandler
static

Definition at line 414 of file SkFontMgr_android_parser.cpp.

414 {
415 /*start*/[](FamilyData* self, const char* tag, const char** attributes) {
416 // 'variant' ("elegant", "compact") [default "default"]
417 // 'lang' (string) [default ""]
418 // 'index' (non-negative integer) [default 0]
419 // The character data should be a filename.
420 FontFamily& currentFamily = *self->fCurrentFamily;
421 FontFileInfo& newFileInfo = currentFamily.fFonts.push_back();
422 if (attributes) {
423 for (size_t i = 0; ATTS_NON_NULL(attributes, i); i += 2) {
424 const char* name = attributes[i];
425 const char* value = attributes[i+1];
426 size_t nameLen = strlen(name);
427 size_t valueLen = strlen(value);
428 if (MEMEQ("variant", name, nameLen)) {
429 const FontVariant prevVariant = currentFamily.fVariant;
430 if (MEMEQ("elegant", value, valueLen)) {
431 currentFamily.fVariant = kElegant_FontVariant;
432 } else if (MEMEQ("compact", value, valueLen)) {
433 currentFamily.fVariant = kCompact_FontVariant;
434 }
435 if (currentFamily.fFonts.size() > 1 && currentFamily.fVariant != prevVariant) {
436 SK_FONTCONFIGPARSER_WARNING("'%s' unexpected variant found\n"
437 "Note: Every font file within a family must have identical variants.",
438 value);
439 }
440
441 } else if (MEMEQ("lang", name, nameLen)) {
442 SkLanguage currentLanguage = SkLanguage(value, valueLen);
443 bool showWarning = false;
444 if (currentFamily.fLanguages.empty()) {
445 showWarning = (currentFamily.fFonts.size() > 1);
446 currentFamily.fLanguages.push_back(std::move(currentLanguage));
447 } else if (currentFamily.fLanguages[0] != currentLanguage) {
448 showWarning = true;
449 currentFamily.fLanguages[0] = std::move(currentLanguage);
450 }
451 if (showWarning) {
452 SK_FONTCONFIGPARSER_WARNING("'%s' unexpected language found\n"
453 "Note: Every font file within a family must have identical languages.",
454 value);
455 }
456
457 } else if (MEMEQ("index", name, nameLen)) {
458 if (!parse_non_negative_integer(value, &newFileInfo.fIndex)) {
459 SK_FONTCONFIGPARSER_WARNING("'%s' is an invalid index", value);
460 }
461 }
462 }
463 }
464 self->fCurrentFontInfo = &newFileInfo;
465 },
466 /*end*/nullptr,
467 /*tag*/nullptr,
468 /*chars*/[](void* data, const char* s, int len) {
469 FamilyData* self = static_cast<FamilyData*>(data);
471 }
472};
#define SK_FONTCONFIGPARSER_WARNING(message,...)
uint32_t FontVariant
@ kCompact_FontVariant
@ kElegant_FontVariant
void append(const char text[])
Definition SkString.h:203
bool empty() const
Definition SkTArray.h:194
int size() const
Definition SkTArray.h:416
struct MyStruct s
const char * name
Definition fuchsia.cc:50
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
Definition switches.h:41
FontFileInfo * fCurrentFontInfo
skia_private::TArray< SkLanguage, true > fLanguages
skia_private::TArray< FontFileInfo, true > fFonts

◆ fileSetHandler

const TagHandler jbParser::fileSetHandler
static
Initial value:
= {
nullptr,
nullptr,
[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
size_t len = strlen(tag);
if (MEMEQ("file", tag, len)) {
return &fileHandler;
}
return nullptr;
},
nullptr,
}
static const TagHandler fileHandler

Definition at line 474 of file SkFontMgr_android_parser.cpp.

474 {
475 /*start*/nullptr,
476 /*end*/nullptr,
477 /*tag*/[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
478 size_t len = strlen(tag);
479 if (MEMEQ("file", tag, len)) {
480 return &fileHandler;
481 }
482 return nullptr;
483 },
484 /*chars*/nullptr,
485};

◆ nameHandler

const TagHandler jbParser::nameHandler
static
Initial value:
= {
[](FamilyData* self, const char* tag, const char** attributes) {
self->fCurrentFamily->fNames.push_back();
},
nullptr,
nullptr,
[](void* data, const char* s, int len) {
FamilyData* self = static_cast<FamilyData*>(data);
SkAutoAsciiToLC tolc(s, len);
self->fCurrentFamily->fNames.back().append(tolc.lc(), len);
}
}

Definition at line 487 of file SkFontMgr_android_parser.cpp.

487 {
488 /*start*/[](FamilyData* self, const char* tag, const char** attributes) {
489 // The character data should be a name for the font.
490 self->fCurrentFamily->fNames.push_back();
491 },
492 /*end*/nullptr,
493 /*tag*/nullptr,
494 /*chars*/[](void* data, const char* s, int len) {
495 FamilyData* self = static_cast<FamilyData*>(data);
496 SkAutoAsciiToLC tolc(s, len);
497 self->fCurrentFamily->fNames.back().append(tolc.lc(), len);
498 }
499};

◆ nameSetHandler

const TagHandler jbParser::nameSetHandler
static
Initial value:
= {
nullptr,
nullptr,
[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
size_t len = strlen(tag);
if (MEMEQ("name", tag, len)) {
return &nameHandler;
}
return nullptr;
},
nullptr,
}
static const TagHandler nameHandler

Definition at line 501 of file SkFontMgr_android_parser.cpp.

501 {
502 /*start*/nullptr,
503 /*end*/nullptr,
504 /*tag*/[](FamilyData* self, const char* tag, const char** attributes) -> const TagHandler* {
505 size_t len = strlen(tag);
506 if (MEMEQ("name", tag, len)) {
507 return &nameHandler;
508 }
509 return nullptr;
510 },
511 /*chars*/nullptr,
512};