tiny.filigree.font.lookups
Defined in font.
API (41)
Actions
Public operations.
VariationContext.normalizedCoordinateAtVariationContext.variationAxisCountbaseOffsetchildOffsetchildOffset32featureTableContainsLookupgposChildOffsetgposChildOffset32gposHasBytesgposLookupFiltergposOffsetgposReadI16gposReadU16gposReadU32gsubChildOffsetgsubChildOffset32gsubHasBytesgsubLookupFiltergsubOffsetgsubReadI16gsubReadU16gsubReadU32hasBytesinvalidlookupFilterSkipsGlyphslookupGlyphIgnoredmatchingFeatureSubstitutionOffsetreadI16readU16readU32scriptTagListContainssubstitutedFeatureOffset
Types and contracts
Public types and contracts.
Values and defaults
Public values and defaults.
ignore_base_glyphsignore_ligaturesignore_marksmark_attachment_typereserved_flagsuse_mark_filtering_set
Source
Source: lib/filigree/src/font/lookups.zig
zig
const std = @import("std");const gdef_table = @import("gdef.zig");const model = @import("model.zig");const FontError = model.FontError;const Gdef = gdef_table.Gdef;const LayoutSelection = model.LayoutSelection;const Tag = model.Tag;const VariationSetting = model.VariationSetting;pub const Kind = enum { gsub, gpos,};pub const VariationContext = struct { ptr: *const anyopaque, variation_axis_count: *const fn (*const anyopaque) u16, normalized_coordinate_at: *const fn (*const anyopaque, []const VariationSetting, usize) FontError!i16, pub fn variationAxisCount(self: VariationContext) u16 { return self.variation_axis_count(self.ptr); } pub fn normalizedCoordinateAt(self: VariationContext, settings: []const VariationSetting, axis_index: usize) FontError!i16 { return self.normalized_coordinate_at(self.ptr, settings, axis_index); }};pub const ignore_base_glyphs: u16 = 0x0002;pub const ignore_ligatures: u16 = 0x0004;pub const ignore_marks: u16 = 0x0008;pub const use_mark_filtering_set: u16 = 0x0010;pub const reserved_flags: u16 = 0x00e0;pub const mark_attachment_type: u16 = 0xff00;pub const LookupFilter = struct { flags: u16, mark_filtering_set: ?u16 = null,};pub fn matchingFeatureSubstitutionOffset(comptime kind: Kind, bytes: []const u8, feature_variations_offset: ?usize, face: anytype, selection: LayoutSelection) FontError!?usize { const offset = feature_variations_offset orelse return null; if (!hasBytes(kind, bytes, offset, 8)) return invalid(kind); if (try readU16(kind, bytes, offset) != 1 or try readU16(kind, bytes, offset + 2) != 0) return null; const record_count = try readU32(kind, bytes, offset + 4); if (@as(u64, record_count) * 8 > @as(u64, bytes.len - offset - 8)) return invalid(kind); for (0..record_count) |record_index| { const record_offset = offset + 8 + @as(usize, @intCast(record_index)) * 8; const condition_set_offset = try readU32(kind, bytes, record_offset); if (!try featureConditionSetMatches(kind, bytes, offset, condition_set_offset, face, selection)) continue; const substitution_relative = try readU32(kind, bytes, record_offset + 4); if (substitution_relative == 0) return null; const substitution_offset = try childOffset32(kind, bytes, offset, substitution_relative, 6); if (try readU16(kind, bytes, substitution_offset) == 1 and try readU16(kind, bytes, substitution_offset + 2) == 0) { return substitution_offset; } } return null;}fn featureConditionSetMatches(comptime kind: Kind, bytes: []const u8, feature_variations_offset: usize, relative_offset: u32, face: anytype, selection: LayoutSelection) FontError!bool { if (relative_offset == 0) return true; const offset = try childOffset32(kind, bytes, feature_variations_offset, relative_offset, 2); const condition_count = try readU16(kind, bytes, offset); if (@as(u64, condition_count) * 4 > @as(u64, bytes.len - offset - 2)) return invalid(kind); const condition_offsets = offset + 2; for (0..condition_count) |condition_index| { const condition_relative = try readU32(kind, bytes, condition_offsets + condition_index * 4); const condition_offset = try childOffset32(kind, bytes, offset, condition_relative, 2); if (!try featureConditionMatches(kind, bytes, condition_offset, face, selection)) return false; } return true;}fn featureConditionMatches(comptime kind: Kind, bytes: []const u8, condition_offset: usize, face: anytype, selection: LayoutSelection) FontError!bool { const format = try readU16(kind, bytes, condition_offset); if (format != 1) return false; if (!hasBytes(kind, bytes, condition_offset, 8)) return invalid(kind); const axis_index = try readU16(kind, bytes, condition_offset + 2); const min_value = try readI16(kind, bytes, condition_offset + 4); const max_value = try readI16(kind, bytes, condition_offset + 6); if (min_value > max_value) return false; const found_face = face orelse return false; if (axis_index >= found_face.variationAxisCount()) return false; const value = found_face.normalizedCoordinateAt(selection.variations, axis_index) catch return false; return value >= min_value and value <= max_value;}pub fn substitutedFeatureOffset(comptime kind: Kind, bytes: []const u8, substitution_offset: usize, feature_index: u16) FontError!?usize { if (try readU16(kind, bytes, substitution_offset) != 1 or try readU16(kind, bytes, substitution_offset + 2) != 0) return null; const substitution_count = try readU16(kind, bytes, substitution_offset + 4); if (@as(u64, substitution_count) * 6 > @as(u64, bytes.len - substitution_offset - 6)) return invalid(kind); const records = substitution_offset + 6; for (0..substitution_count) |record_index| { const record_offset = records + record_index * 6; const current_feature_index = try readU16(kind, bytes, record_offset); if (current_feature_index > feature_index) return null; if (current_feature_index != feature_index) continue; const alternate_relative = try readU32(kind, bytes, record_offset + 2); return try childOffset32(kind, bytes, substitution_offset, alternate_relative, 4); } return null;}pub fn featureTableContainsLookup(comptime kind: Kind, bytes: []const u8, feature_offset: usize, lookup_index: u16) FontError!bool { if (!hasBytes(kind, bytes, feature_offset, 4)) return invalid(kind); const lookup_index_count = try readU16(kind, bytes, feature_offset + 2); if (@as(u64, lookup_index_count) * 2 > @as(u64, bytes.len - feature_offset - 4)) return invalid(kind); for (0..lookup_index_count) |i| { if (try readU16(kind, bytes, feature_offset + 4 + i * 2) == lookup_index) return true; } return false;}pub fn baseOffset(comptime kind: Kind, data: []const u8, relative_offset: u16) FontError!usize { const relative: usize = relative_offset; if (relative == 0 or relative >= data.len) return invalid(kind); if (data.len - relative < 2) return invalid(kind); return relative;}pub fn childOffset(comptime kind: Kind, data: []const u8, base: usize, relative_offset: u16, min_len: usize) FontError!usize { const relative: usize = relative_offset; if (relative == 0 or base > data.len or relative > data.len - base) return invalid(kind); const child = base + relative; if (!hasBytes(kind, data, child, min_len)) return invalid(kind); return child;}pub fn childOffset32(comptime kind: Kind, data: []const u8, base: usize, relative_offset: u32, min_len: usize) FontError!usize { if (relative_offset == 0 or relative_offset > std.math.maxInt(usize)) return invalid(kind); const relative: usize = @intCast(relative_offset); if (base > data.len or relative > data.len - base) return invalid(kind); const child = base + relative; if (!hasBytes(kind, data, child, min_len)) return invalid(kind); return child;}pub fn hasBytes(comptime kind: Kind, data: []const u8, offset_value: usize, len: usize) bool { _ = kind; return offset_value <= data.len and len <= data.len - offset_value;}pub fn readU16(comptime kind: Kind, data: []const u8, offset_value: usize) FontError!u16 { if (!hasBytes(kind, data, offset_value, 2)) return invalid(kind); return std.mem.readInt(u16, data[offset_value..][0..2], .big);}pub fn readI16(comptime kind: Kind, data: []const u8, offset_value: usize) FontError!i16 { return @bitCast(try readU16(kind, data, offset_value));}pub fn readU32(comptime kind: Kind, data: []const u8, offset_value: usize) FontError!u32 { if (!hasBytes(kind, data, offset_value, 4)) return invalid(kind); return std.mem.readInt(u32, data[offset_value..][0..4], .big);}pub fn invalid(comptime kind: Kind) FontError { return switch (kind) { .gsub => error.InvalidGsub, .gpos => error.InvalidGpos, };}pub fn lookupFilterSkipsGlyphs(filter: LookupFilter) bool { return filter.flags != 0 or filter.mark_filtering_set != null;}pub fn gsubLookupFilter(data: []const u8, lookup_offset: usize) FontError!LookupFilter { const flags = try gsubReadU16(data, lookup_offset + 2); if ((flags & reserved_flags) != 0) return error.InvalidGsub; const subtable_count = try gsubReadU16(data, lookup_offset + 4); const mark_filtering_set_offset = lookup_offset + 6 + @as(usize, subtable_count) * 2; if ((flags & use_mark_filtering_set) == 0) { return .{ .flags = flags }; } if (!gsubHasBytes(data, mark_filtering_set_offset, 2)) return error.InvalidGsub; return .{ .flags = flags, .mark_filtering_set = try gsubReadU16(data, mark_filtering_set_offset), };}pub fn gposLookupFilter(data: []const u8, lookup_offset: usize) FontError!LookupFilter { const flags = try gposReadU16(data, lookup_offset + 2); if ((flags & reserved_flags) != 0) return error.InvalidGpos; const subtable_count = try gposReadU16(data, lookup_offset + 4); const mark_filtering_set_offset = lookup_offset + 6 + @as(usize, subtable_count) * 2; if ((flags & use_mark_filtering_set) == 0) { return .{ .flags = flags }; } if (!gposHasBytes(data, mark_filtering_set_offset, 2)) return error.InvalidGpos; return .{ .flags = flags, .mark_filtering_set = try gposReadU16(data, mark_filtering_set_offset), };}pub fn lookupGlyphIgnored(data: []const u8, gdef: ?Gdef, filter: LookupFilter, glyph_id: u16) FontError!bool { const needs_gdef = (filter.flags & (ignore_base_glyphs | ignore_ligatures | ignore_marks | mark_attachment_type)) != 0 or filter.mark_filtering_set != null; const definition = gdef orelse return needs_gdef; const class = try definition.glyphClass(data, glyph_id); if (class == .base and (filter.flags & ignore_base_glyphs) != 0) return true; if (class == .ligature and (filter.flags & ignore_ligatures) != 0) return true; if (class != .mark) return false; if ((filter.flags & ignore_marks) != 0) return true; if (filter.mark_filtering_set) |set_index| { return !try definition.markGlyphSetContains(data, set_index, glyph_id); } const attachment_type = (filter.flags & mark_attachment_type) >> 8; if (attachment_type == 0) return false; return try definition.markAttachmentClass(data, glyph_id) != attachment_type;}pub fn scriptTagListContains(script_tags: []const Tag, wanted: Tag) bool { for (script_tags) |script_tag| { if (script_tag == wanted) return true; } return false;}pub fn gsubOffset(data: []const u8, relative_offset: u16) FontError!usize { return baseOffset(.gsub, data, relative_offset);}pub fn gsubChildOffset(data: []const u8, base: usize, relative_offset: u16, min_len: usize) FontError!usize { return childOffset(.gsub, data, base, relative_offset, min_len);}pub fn gsubChildOffset32(data: []const u8, base: usize, relative_offset: u32, min_len: usize) FontError!usize { return childOffset32(.gsub, data, base, relative_offset, min_len);}pub fn gsubHasBytes(data: []const u8, offset_value: usize, len: usize) bool { return hasBytes(.gsub, data, offset_value, len);}pub fn gsubReadU16(data: []const u8, offset_value: usize) FontError!u16 { return readU16(.gsub, data, offset_value);}pub fn gsubReadI16(data: []const u8, offset_value: usize) FontError!i16 { return readI16(.gsub, data, offset_value);}pub fn gsubReadU32(data: []const u8, offset_value: usize) FontError!u32 { return readU32(.gsub, data, offset_value);}pub fn gposOffset(data: []const u8, relative_offset: u16) FontError!usize { return baseOffset(.gpos, data, relative_offset);}pub fn gposChildOffset(data: []const u8, base: usize, relative_offset: u16, min_len: usize) FontError!usize { return childOffset(.gpos, data, base, relative_offset, min_len);}pub fn gposChildOffset32(data: []const u8, base: usize, relative_offset: u32, min_len: usize) FontError!usize { return childOffset32(.gpos, data, base, relative_offset, min_len);}pub fn gposHasBytes(data: []const u8, offset_value: usize, len: usize) bool { return hasBytes(.gpos, data, offset_value, len);}pub fn gposReadU16(data: []const u8, offset_value: usize) FontError!u16 { return readU16(.gpos, data, offset_value);}pub fn gposReadI16(data: []const u8, offset_value: usize) FontError!i16 { return readI16(.gpos, data, offset_value);}pub fn gposReadU32(data: []const u8, offset_value: usize) FontError!u32 { return readU32(.gpos, data, offset_value);}Source: lib/filigree/src/font/root.zig:11
zig
pub const lookups = @import("lookups.zig");Complete caller list for font.lookups.gposChildOffset
41 direct callers.
lib.filigree.src.font.gpos.chainedContextualClassSetMatchImpl[method] — private source atlib/filigree/src/font/gpos.zig:757in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.chainedContextualMatchFormat1Impl[method] — private source atlib/filigree/src/font/gpos.zig:660in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.chainedContextualMatchFormat2Impl[method] — private source atlib/filigree/src/font/gpos.zig:675in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.chainedContextualPairAdjustmentFormat3Impl[method] — private source atlib/filigree/src/font/gpos.zig:620in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.chainedContextualRuleSetMatchImpl[method] — private source atlib/filigree/src/font/gpos.zig:699in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.chainedContextualSingleAdjustmentFormat3Impl[method] — private source atlib/filigree/src/font/gpos.zig:1048in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualPairAdjustmentClassSetImpl[method] — private source atlib/filigree/src/font/gpos.zig:855in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualPairAdjustmentFormat1Impl[method] — private source atlib/filigree/src/font/gpos.zig:549in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualPairAdjustmentFormat2Impl[method] — private source atlib/filigree/src/font/gpos.zig:564in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualPairAdjustmentFormat3Impl[method] — private source atlib/filigree/src/font/gpos.zig:582in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualPairAdjustmentRuleSetImpl[method] — private source atlib/filigree/src/font/gpos.zig:842in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualSingleAdjustmentClassSetImpl[method] — private source atlib/filigree/src/font/gpos.zig:1101in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualSingleAdjustmentFormat1Impl[method] — private source atlib/filigree/src/font/gpos.zig:977in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualSingleAdjustmentFormat2Impl[method] — private source atlib/filigree/src/font/gpos.zig:992in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualSingleAdjustmentFormat3Impl[method] — private source atlib/filigree/src/font/gpos.zig:1010in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.contextualSingleAdjustmentRuleSetImpl[method] — private source atlib/filigree/src/font/gpos.zig:1088in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.cursiveAttachmentSubtable[function] — private source atlib/filigree/src/font/gpos.zig:1430in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.featureOffsetImpl[method] — private source atlib/filigree/src/font/gpos.zig:1283in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.gposLangSysOffsetInScript[function] — private source atlib/filigree/src/font/gpos.zig:1366in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.gposScriptOffset[function] — private source atlib/filigree/src/font/gpos.zig:1355in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupContextualPairAdjustmentAtImpl[method] — private source atlib/filigree/src/font/gpos.zig:505in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupCursiveAttachmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1167in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupHasResolvedTypeImpl[method] — private source atlib/filigree/src/font/gpos.zig:426in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToBaseAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1187in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToLigatureAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1207in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToMarkAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1227in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupOffsetImpl[method] — private source atlib/filigree/src/font/gpos.zig:1247in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupPairAdjustmentBeforeImpl[method] — private source atlib/filigree/src/font/gpos.zig:461in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupPairAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:441in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupResolvedTypeImpl[method] — private source atlib/filigree/src/font/gpos.zig:187in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupSingleAdjustmentAtImpl[method] — private source atlib/filigree/src/font/gpos.zig:930in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.markToBaseAdjustmentSubtable[function] — private source atlib/filigree/src/font/gpos.zig:1529in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.markToLigatureAdjustmentSubtable[function] — private source atlib/filigree/src/font/gpos.zig:1571in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.markToMarkAdjustmentSubtable[function] — private source atlib/filigree/src/font/gpos.zig:1619in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.pairAdjustmentFormat1[function] — private source atlib/filigree/src/font/gpos.zig:1459in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.pairAdjustmentFormat2[function] — private source atlib/filigree/src/font/gpos.zig:1498in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.readGposAnchor[function] — private source atlib/filigree/src/font/gpos.zig:1666in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.readGposDeviceOrVariationIndex[function] — private source atlib/filigree/src/font/gpos.zig:1751in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.singleAdjustmentFormat1[function] — private source atlib/filigree/src/font/gpos.zig:1406in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.singleAdjustmentFormat2[function] — private source atlib/filigree/src/font/gpos.zig:1415in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.test_GPOS_child_offsets_stay_inside_table_data[function] — test source atlib/filigree/src/font/gpos.zig:1808in nearest public ownertiny.filigree.font.gpos
Complete caller list for font.lookups.gposLookupFilter
8 direct callers.
lib.filigree.src.font.gpos.lookupContextualPairAdjustmentAtImpl[method] — private source atlib/filigree/src/font/gpos.zig:505in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupCursiveAttachmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1167in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToBaseAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1187in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToLigatureAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1207in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToMarkAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1227in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupPairAdjustmentBeforeImpl[method] — private source atlib/filigree/src/font/gpos.zig:461in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupPairAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:441in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupSingleAdjustmentAtImpl[method] — private source atlib/filigree/src/font/gpos.zig:930in nearest public ownertiny.filigree.font.gpos
Complete caller list for font.lookups.gsubChildOffset
24 direct callers.
lib.filigree.src.font.gsub.alternateSubstitution[function] — private source atlib/filigree/src/font/gsub.zig:849in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.chainedContextualSubstitutionClassSetImpl[method] — private source atlib/filigree/src/font/gsub.zig:458in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.chainedContextualSubstitutionFormat1Impl[method] — private source atlib/filigree/src/font/gsub.zig:315in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.chainedContextualSubstitutionFormat2Impl[method] — private source atlib/filigree/src/font/gsub.zig:330in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.chainedContextualSubstitutionFormat3Impl[method] — private source atlib/filigree/src/font/gsub.zig:364in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.chainedContextualSubstitutionRuleSetImpl[method] — private source atlib/filigree/src/font/gsub.zig:405in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.contextualSubstitutionClassSetImpl[method] — private source atlib/filigree/src/font/gsub.zig:252in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.contextualSubstitutionFormat1Impl[method] — private source atlib/filigree/src/font/gsub.zig:188in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.contextualSubstitutionFormat2Impl[method] — private source atlib/filigree/src/font/gsub.zig:203in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.contextualSubstitutionFormat3Impl[method] — private source atlib/filigree/src/font/gsub.zig:221in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.contextualSubstitutionRuleSetImpl[method] — private source atlib/filigree/src/font/gsub.zig:239in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.featureOffsetImpl[method] — private source atlib/filigree/src/font/gsub.zig:688in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.gsubLangSysOffsetInScript[function] — private source atlib/filigree/src/font/gsub.zig:753in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.gsubScriptOffset[function] — private source atlib/filigree/src/font/gsub.zig:742in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.ligatureSubstitution[function] — private source atlib/filigree/src/font/gsub.zig:867in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.lookupIsReverseImpl[method] — private source atlib/filigree/src/font/gsub.zig:568in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.lookupOffsetImpl[method] — private source atlib/filigree/src/font/gsub.zig:704in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.lookupResolvesOnlyToTypeImpl[method] — private source atlib/filigree/src/font/gsub.zig:626in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.multipleSubstitution[function] — private source atlib/filigree/src/font/gsub.zig:824in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.reverseChainingSingleSubstitution[function] — private source atlib/filigree/src/font/gsub.zig:905in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.singleSubstitutionFormat1[function] — private source atlib/filigree/src/font/gsub.zig:803in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.singleSubstitutionFormat2[function] — private source atlib/filigree/src/font/gsub.zig:812in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.substitutionAtLookupImpl[method] — private source atlib/filigree/src/font/gsub.zig:118in nearest public ownertiny.filigree.font.gsublib.filigree.src.font.gsub.test_GSUB_child_offsets_stay_inside_table_data[function] — test source atlib/filigree/src/font/gsub.zig:997in nearest public ownertiny.filigree.font.gsub
Complete caller list for font.lookups.hasBytes
9 direct callers.
tiny.filigree.font.lookups.childOffset[function] atlib/filigree/src/font/lookups.zig:125tiny.filigree.font.lookups.childOffset32[function] atlib/filigree/src/font/lookups.zig:133lib.filigree.src.font.lookups.featureConditionMatches[function] — private source atlib/filigree/src/font/lookups.zig:78in nearest public ownertiny.filigree.font.lookupstiny.filigree.font.lookups.featureTableContainsLookup[function] atlib/filigree/src/font/lookups.zig:108tiny.filigree.font.lookups.gposHasBytes[function] atlib/filigree/src/font/lookups.zig:270tiny.filigree.font.lookups.gsubHasBytes[function] atlib/filigree/src/font/lookups.zig:242tiny.filigree.font.lookups.matchingFeatureSubstitutionOffset[function] atlib/filigree/src/font/lookups.zig:42tiny.filigree.font.lookups.readU16[function] atlib/filigree/src/font/lookups.zig:147tiny.filigree.font.lookups.readU32[function] atlib/filigree/src/font/lookups.zig:156
Complete caller list for font.lookups.invalid
10 direct callers.
tiny.filigree.font.lookups.baseOffset[function] atlib/filigree/src/font/lookups.zig:118tiny.filigree.font.lookups.childOffset[function] atlib/filigree/src/font/lookups.zig:125tiny.filigree.font.lookups.childOffset32[function] atlib/filigree/src/font/lookups.zig:133lib.filigree.src.font.lookups.featureConditionMatches[function] — private source atlib/filigree/src/font/lookups.zig:78in nearest public ownertiny.filigree.font.lookupslib.filigree.src.font.lookups.featureConditionSetMatches[function] — private source atlib/filigree/src/font/lookups.zig:64in nearest public ownertiny.filigree.font.lookupstiny.filigree.font.lookups.featureTableContainsLookup[function] atlib/filigree/src/font/lookups.zig:108tiny.filigree.font.lookups.matchingFeatureSubstitutionOffset[function] atlib/filigree/src/font/lookups.zig:42tiny.filigree.font.lookups.readU16[function] atlib/filigree/src/font/lookups.zig:147tiny.filigree.font.lookups.readU32[function] atlib/filigree/src/font/lookups.zig:156tiny.filigree.font.lookups.substitutedFeatureOffset[function] atlib/filigree/src/font/lookups.zig:92
Complete caller list for font.lookups.lookupGlyphIgnored
10 direct callers.
lib.filigree.src.font.face.test_lookup_filters_use_GDEF_mark_classes_and_mark_glyph_sets[function] — test source atlib/filigree/src/font/face.zig:2252in nearest public ownertiny.filigree.font.facelib.filigree.src.font.gpos.lookupCursiveAttachmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1167in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToBaseAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1187in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToLigatureAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1207in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupMarkToMarkAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:1227in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupPairAdjustmentBeforeImpl[method] — private source atlib/filigree/src/font/gpos.zig:461in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupPairAdjustmentImpl[method] — private source atlib/filigree/src/font/gpos.zig:441in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.lookupSingleAdjustmentAtImpl[method] — private source atlib/filigree/src/font/gpos.zig:930in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gpos.previousLookupGlyphIndexLocal[function] — private source atlib/filigree/src/font/gpos.zig:1317in nearest public ownertiny.filigree.font.gposlib.filigree.src.font.gsub.substitutionAtLookupImpl[method] — private source atlib/filigree/src/font/gsub.zig:118in nearest public ownertiny.filigree.font.gsub
Complete caller list for font.lookups.readU16
8 direct callers.
lib.filigree.src.font.lookups.featureConditionMatches[function] — private source atlib/filigree/src/font/lookups.zig:78in nearest public ownertiny.filigree.font.lookupslib.filigree.src.font.lookups.featureConditionSetMatches[function] — private source atlib/filigree/src/font/lookups.zig:64in nearest public ownertiny.filigree.font.lookupstiny.filigree.font.lookups.featureTableContainsLookup[function] atlib/filigree/src/font/lookups.zig:108tiny.filigree.font.lookups.gposReadU16[function] atlib/filigree/src/font/lookups.zig:274tiny.filigree.font.lookups.gsubReadU16[function] atlib/filigree/src/font/lookups.zig:246tiny.filigree.font.lookups.matchingFeatureSubstitutionOffset[function] atlib/filigree/src/font/lookups.zig:42tiny.filigree.font.lookups.readI16[function] atlib/filigree/src/font/lookups.zig:152tiny.filigree.font.lookups.substitutedFeatureOffset[function] atlib/filigree/src/font/lookups.zig:92
Audit
| Definitions | 42 |
|---|---|
| Public names | 42 |
| Members | 7 |
| Version | 26.7.0 |
| Revision | daab053ee433 |