110 return (
static_cast<std::uint32_t
>(
static_cast<unsigned char>(a)) << 24)
111 | (
static_cast<std::uint32_t
>(
static_cast<unsigned char>(b)) << 16)
112 | (
static_cast<std::uint32_t
>(
static_cast<unsigned char>(c)) << 8)
113 | (
static_cast<std::uint32_t
>(
static_cast<unsigned char>(d)));
124 return tag == other.tag &&
value == other.value;
142 return tag == other.tag &&
value == other.value;
172 std::uint64_t
id = 0;
263 std::size_t
hash() const noexcept;
278 return (std::hash<std::uint64_t>{}(
id.id) << 2)
279 ^ std::hash<std::uint8_t>{}(
static_cast<std::uint8_t
>(
id.kind));
Definition affine_transform.hpp:24
FontSlant
CSS-style slant.
Definition font_options.hpp:37
@ Oblique
Definition font_options.hpp:40
@ Italic
Definition font_options.hpp:39
@ Normal
Definition font_options.hpp:38
constexpr VariationAxisTag make_variation_axis_tag(char a, char b, char c, char d)
Definition font_options.hpp:133
std::uint32_t FontFeatureTag
OpenType four-byte tag (e.g.
Definition font_options.hpp:107
@ Default
Definition emoji_segmenter.hpp:42
BaseDirection
Logical text direction.
Definition font_options.hpp:45
@ Auto
Definition font_options.hpp:48
ColorFontMode
Color-font policy.
Definition font_options.hpp:95
@ Auto
Definition font_options.hpp:96
@ ForceMonochrome
Definition font_options.hpp:100
@ Bitmap
Definition font_options.hpp:97
@ SVG
Definition font_options.hpp:99
@ COLR
Definition font_options.hpp:98
constexpr FontFeatureTag make_font_feature_tag(char a, char b, char c, char d)
Definition font_options.hpp:109
@ Auto
Run UBA rule P2 (first strong character).
Definition bidi.hpp:43
@ LTR
Force paragraph level 0.
Definition bidi.hpp:44
@ RTL
Force paragraph level 1.
Definition bidi.hpp:45
HintingMode
CSS font-smoothing analogue.
Definition font_options.hpp:72
@ None
Definition font_options.hpp:73
@ PlatformDefault
Definition font_options.hpp:77
@ Slight
Definition font_options.hpp:74
@ Full
Definition font_options.hpp:76
AntiAliasMode
Default follows the existing inside_non_opaque_layer() heuristic for opacity-layer text edging.
Definition font_options.hpp:84
@ NoAA
Definition font_options.hpp:88
@ Default
Definition font_options.hpp:85
@ Grayscale
Definition font_options.hpp:87
@ LCD
Definition font_options.hpp:86
FallbackMode
Three fallback policies for the resolver cascade.
Definition font_options.hpp:64
@ Native
Definition font_options.hpp:66
@ Deterministic
Definition font_options.hpp:65
@ Hybrid
Definition font_options.hpp:67
std::uint32_t VariationAxisTag
Variation-axis tag + value.
Definition font_options.hpp:131
Definition analyzer_provider.hpp:12
OpenType feature record: tag + value.
Definition font_options.hpp:119
constexpr bool operator==(const FontFeature &other) const noexcept
Definition font_options.hpp:123
std::int32_t value
Definition font_options.hpp:121
FontFeatureTag tag
Definition font_options.hpp:120
The typed, hashable contract that replaces (family_string, size) throughout the font subsystem.
Definition font_options.hpp:190
std::vector< std::string > family_stack
Full CSS-style cascade.
Definition font_options.hpp:196
BaseDirection direction
Definition font_options.hpp:229
std::vector< FontFeature > features
Definition font_options.hpp:217
HintingMode hinting_mode
Definition font_options.hpp:239
FontSlant slant
Definition font_options.hpp:206
std::size_t hash() const noexcept
Hash combining all fields.
FallbackMode fallback_mode
Definition font_options.hpp:247
float width
CSS font-stretch scalar 50..200, also used as wdth axis value when present.
Definition font_options.hpp:204
float letter_spacing
Extra letter spacing in px (post-shaping, between clusters).
Definition font_options.hpp:234
float oblique_angle
Slant angle in degrees.
Definition font_options.hpp:209
FontSynthesisPolicy font_synthesis
Definition font_options.hpp:244
FontScopeId scope
Definition font_options.hpp:248
float weight
CSS scalar 100..900 (or variable-axis value when the resolved face has a wght axis).
Definition font_options.hpp:200
std::vector< VariationAxis > variation_axes
Each entry: (axis tag, value).
Definition font_options.hpp:223
std::uint64_t registry_generation
Set by the resolver before returning a ResolvedFont.
Definition font_options.hpp:256
std::string locale
BCP-47 language tag ("", "en", "ja-JP", "zh-Hans").
Definition font_options.hpp:228
float size
Pixel size at the canvas's current device scale.
Definition font_options.hpp:214
float word_spacing
Extra word spacing in px (applied at whitespace cluster boundaries).
Definition font_options.hpp:236
AntiAliasMode aa_mode
Definition font_options.hpp:240
ColorFontMode color_font_mode
Definition font_options.hpp:241
bool operator==(const FontOptions &) const =default
Opaque identifier for a FontScope (defined in font_scope.hpp).
Definition font_options.hpp:168
Kind
Definition font_options.hpp:169
@ Plugin
Definition font_options.hpp:169
@ View
Definition font_options.hpp:169
@ Global
Definition font_options.hpp:169
static constexpr FontScopeId global() noexcept
Definition font_options.hpp:174
static constexpr FontScopeId view(std::uint64_t view_id) noexcept
Definition font_options.hpp:178
Kind kind
Definition font_options.hpp:171
bool operator==(const FontScopeId &) const =default
static constexpr FontScopeId plugin(std::uint64_t plugin_id) noexcept
Definition font_options.hpp:175
Explicit policy for faux-bold / faux-italic / faux-width.
Definition font_options.hpp:153
bool slant
Definition font_options.hpp:155
bool operator==(const FontSynthesisPolicy &) const =default
bool weight
Definition font_options.hpp:154
bool width
Definition font_options.hpp:156
Definition font_options.hpp:137
float value
Definition font_options.hpp:139
bool operator==(const VariationAxis &other) const noexcept
Definition font_options.hpp:141
VariationAxisTag tag
Definition font_options.hpp:138
std::size_t operator()(const pulp::canvas::FontOptions &opts) const noexcept
Definition font_options.hpp:271
std::size_t operator()(const pulp::canvas::FontScopeId &id) const noexcept
Definition font_options.hpp:277