lib/filigree/src/root.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 //! Text typography requires translating Unicode character sequences into positioned
2 //! font glyphs while respecting complex script substitution rules. Filigree parses
3 //! OpenType font tables directly from caller-owned byte slices without heap copying.
4 //!
5 //! Shaping passes execute glyph substitution and positioning while preserving
6 //! original cluster index associations. For multilingual text spanning multiple
7 //! typefaces, a bounded `FallbackWorkspace` partitions input runs across font
8 //! candidates within preallocated memory limits.
9
10 pub const caret = @import("caret.zig");
11 pub const font = @import("font/root.zig");
12 pub const fallback = @import("fallback/root.zig");
13 pub const layout = @import("layout/root.zig");
14 pub const render = @import("render/root.zig");
15 pub const shape = @import("shape/root.zig");
16 pub const unicode = @import("unicode");
17 pub const fixtures = @import("fixture/root.zig");
18
19 pub const Face = font.Face;
20 pub const Description = font.Description;
21 pub const describeAlloc = font.describeAlloc;
22 pub const describeAtAlloc = font.describeAtAlloc;
23 pub const Tag = font.Tag;
24 pub const FeatureRange = font.FeatureRange;
25 pub const FeatureSetting = font.FeatureSetting;
26 pub const VariationAxis = font.VariationAxis;
27 pub const VariationSetting = font.VariationSetting;
28 pub const NormalizedVariation = font.NormalizedVariation;
29 pub const LayoutSelection = font.LayoutSelection;
30 pub const defaultScriptTag = font.defaultScriptTag;
31 pub const MathConstants = font.MathConstants;
32 pub const MathGlyphAssembly = font.MathGlyphAssembly;
33 pub const MathGlyphAssemblyPart = font.MathGlyphAssemblyPart;
34 pub const MathGlyphVariant = font.MathGlyphVariant;
35 pub const MathValueRecord = font.MathValueRecord;
36 pub const ClassDef = layout.ClassDef;
37 pub const Coverage = layout.Coverage;
38 pub const Font = shape.Font;
39 pub const FallbackCandidate = fallback.Candidate;
40 pub const FallbackContext = fallback.Context;
41 pub const FallbackInput = fallback.Input;
42 pub const FallbackOptions = fallback.Options;
43 pub const FallbackSegment = fallback.Segment;
44 pub const FallbackWorkspace = fallback.Workspace;
45 pub const FallbackWorkspaceCapacity = fallback.WorkspaceCapacity;
46 pub const FallbackWorkspaceExhaustion = fallback.WorkspaceExhaustion;
47 pub const FallbackWorkspaceLimits = fallback.WorkspaceLimits;
48 pub const FallbackWorkspaceStatus = fallback.WorkspaceStatus;
49 pub const LineBreak = unicode.LineBreak;
50 pub const LineBreakAction = unicode.LineBreakAction;
51 pub const LineBreakState = unicode.LineBreakState;
52 pub const OpenTypeScriptTags = unicode.OpenTypeScriptTags;
53 pub const Script = unicode.Script;
54 pub const ScriptRun = unicode.ScriptRun;
55 pub const ScriptRunContext = unicode.ScriptRunContext;
56 pub const ScriptRunLimits = unicode.ScriptRunLimits;
57 pub const ScriptRunCapacity = unicode.ScriptRunCapacity;
58 pub const ScriptRunCapacityError = unicode.ScriptRunCapacityError;
59 pub const ScriptRunExhaustion = unicode.ScriptRunExhaustion;
60 pub const ScriptRunStatus = unicode.ScriptRunStatus;
61 pub const ScriptRunInput = unicode.ScriptRunInput;
62 pub const ScriptRunRange = unicode.ScriptRunRange;
63 pub const ScriptRunSource = unicode.ScriptRunSource;
64 pub const Cluster = shape.Cluster;
65 pub const ClusterMap = shape.ClusterMap;
66 pub const ClusterMode = shape.ClusterMode;
67 pub const Context = shape.Context;
68 pub const DefaultIgnorablePolicy = shape.DefaultIgnorablePolicy;
69 pub const Direction = shape.Direction;
70 pub const DottedCirclePolicy = shape.DottedCirclePolicy;
71 pub const GlyphClass = shape.GlyphClass;
72 pub const GlyphAttachmentKind = shape.GlyphAttachmentKind;
73 pub const GlyphAttachment = shape.GlyphAttachment;
74 pub const GlyphFlags = shape.GlyphFlags;
75 pub const GlyphRun = shape.GlyphRun;
76 pub const GlyphSpan = shape.GlyphSpan;
77 pub const JoiningType = shape.JoiningType;
78 pub const LigatureCaret = shape.LigatureCaret;
79 pub const MissingGlyphPolicy = shape.MissingGlyphPolicy;
80 pub const Input = shape.Input;
81 pub const Output = shape.Output;
82 pub const OutputOrder = shape.OutputOrder;
83 pub const ShapedGlyph = shape.ShapedGlyph;
84 pub const Source = shape.Source;
85 pub const SourceRange = shape.SourceRange;
86 pub const WritingMode = shape.WritingMode;
87 pub const GlyphOutline = font.GlyphOutline;
88 pub const GlyphOutlineBounds = font.GlyphOutlineBounds;
89 pub const GlyphOutlineContour = font.GlyphOutlineContour;
90 pub const GlyphOutlinePoint = font.GlyphOutlinePoint;
91 pub const GlyphBitmap = font.GlyphBitmap;
92 pub const GlyphAtlas = font.GlyphAtlas;
93 pub const GlyphAtlasGlyph = font.GlyphAtlasGlyph;
94 pub const GlyphAtlasRectangle = font.GlyphAtlasRectangle;
95 pub const LineBreakWorkspace = shape.LineBreakWorkspace;
96 pub const breakLinesInto = shape.breakLinesInto;
97 pub const joiningType = shape.joiningType;
98 pub const joiningTypesConnect = shape.joiningTypesConnect;
99 pub const lineBreak = unicode.lineBreak;
100 pub const scriptOpenTypeTag = unicode.scriptOpenTypeTag;
101 pub const scriptOpenTypeTags = unicode.scriptOpenTypeTags;
102 pub const tag = font.tag;
103 pub const featureEnabled = font.featureEnabled;
104 pub const fixed16ToFloat = font.fixed16ToFloat;
105 pub const glyphOutlineAlloc = font.glyphOutlineAlloc;
106 pub const glyphBitmapAlloc = font.glyphBitmapAlloc;
107 pub const glyphAtlasAlloc = font.glyphAtlasAlloc;
108 pub const drawGlyphRun = render.drawGlyphRun;
109 pub const drawFallbackUtf8 = render.drawFallbackUtf8;
110 pub const drawUtf8 = render.drawUtf8;
111 pub const measureFallbackUtf8 = render.measureFallbackUtf8;
112 pub const measureGlyphRun = render.measureGlyphRun;
113 pub const measureUtf8 = render.measureUtf8;