gralha-truetype Releases (2): 0.1.0.1 0xfda746bab180ec022a2db21d512cc32c indexed https://jend.leeeet.dev/files.txt?path=gralha-truetype@0.1.0.1 0.1.0.0 0x4aebc9c35d542fdd4ecdfb1af73440f8 invalid https://jend.leeeet.dev/files.txt?path=gralha-truetype@0.1.0.0 expected a package named gralha-bytes@0.1.0.0 on https://hub.bend-lang.com At https://jend.leeeet.dev/read.txt?path=gralha-truetype@0.1.0.0/font.bend&start_line=4. Files that do not load: font.bend. Definitions (141, 1 to 100 shown): Font.TTFont (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTFont) type TTFont is Data: TTFont{glyf: U32, loca: U32, long: Bool, hmtx: U32, metrics: U32, glyphs: U32, units: F32} Font.TTPairs (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTPairs) type TTPairs is Data: TTPairs{specific: List<&2, U32>, classes: U32, coverage: U32, class1: U32, class2: U32} Font.TTFace (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTFace) # A TrueType face stays as its bytes plus table offsets; glyphs and kerning # are read from it on demand (see font.glyph and font.kern at the end). type TTFace is Data: TTFace{bytes: Bin.Bytes, font: TTFont, pairs: TTPairs, cmap: U32} Font.FontGlyph (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=FontGlyph) type FontGlyph is Data: FontGlyph{advance: F32, outline: String, glyph: U32, leftClass: U32, rightClass: U32} Font.FontBook (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=FontBook) # The glyph, kerning and metric maps hold text-format fonts (font.parse) and # every face's metrics; faces holds the lazily read TrueType faces by number. type FontBook is Data: FontBook{glyphs: Map<&2, FontGlyph>, kerning: Map<&2, F32>, metrics: Map<&2, F32>, faces: Map<&2, TTFace>} Font.font.empty (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.empty) def font.empty() -> FontBook: Font.font.missing (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.missing) def font.missing() -> FontGlyph: Font.font.glyph.result (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.glyph.result) def font.glyph.result(got: Map<&2, FontGlyph> & FontGlyph) -> FontGlyph: Font.font.number.result (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.number.result) def font.number.result(got: Map<&2, F32> & F32) -> F32: Font.font.metric (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.metric) def font.metric(book: FontBook, face: U32, name: String, fallback: F32) -> F32: Font.font.glyph.map (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.glyph.map) def font.glyph.map(+glyphs: Map<&2, FontGlyph>, +face: U32, ch: U32) -> FontGlyph: Font.font.kern.value (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.kern.value) def font.kern.value(+specific: F32, fallback: Unit -> F32) -> F32: Font.font.kern.map (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.kern.map) def font.kern.map(+kerning: Map<&2, F32>, +face: U32, left: U32, leftClass: U32, right: U32, rightClass: U32) -> F32: Font.font.parse.glyph (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.parse.glyph) def font.parse.glyph(key: String, scan: U.Scan, book: FontBook) -> FontBook: Font.font.parse.record (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.parse.record) def font.parse.record(kind: String, +scan: U.Scan, +book: FontBook) -> FontBook: Font.font.parse.row (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.parse.row) def font.parse.row(scan: U.Scan, book: FontBook) -> FontBook: Font.font.parse.line (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.parse.line) def font.parse.line(scan: U.Scan, book: FontBook, next: String -> FontBook -> FontBook) -> FontBook: Font.font.parse (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=font.parse) def font.parse(s: String, book: FontBook) -> FontBook: Font.ttf.u8 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.u8) def ttf.u8(+b: Bin.Bytes, +at: U32) -> U32: Font.ttf.u16 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.u16) def ttf.u16(+b: Bin.Bytes, +at: U32) -> U32: Font.ttf.u32 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.u32) def ttf.u32(+b: Bin.Bytes, +at: U32) -> U32: Font.ttf.i16 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.i16) def ttf.i16(+b: Bin.Bytes, +at: U32) -> F32: Font.ttf.i8 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.i8) def ttf.i8(+b: Bin.Bytes, +at: U32) -> F32: Font.ttf.f2dot14 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.f2dot14) def ttf.f2dot14(+b: Bin.Bytes, +at: U32) -> F32: Font.ttf.bit (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.bit) def ttf.bit(+flags: U32, +mask: U32) -> Bool: Font.ttf.table.find (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.table.find) def ttf.table.find(+b: Bin.Bytes, n: Nat, +at: U32, +tag: U32) -> U32: Font.ttf.table (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.table) # Table offset by tag, read as a big-endian word; 0 when absent. def ttf.table(+b: Bin.Bytes, +tag: U32) -> U32: Font.ttf.font (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.font) def ttf.font(+b: Bin.Bytes) -> TTFont: Font.ttf.valid (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.valid) def ttf.valid(+f: TTFont) -> Bool: Font.ttf.units (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.units) def ttf.units(+f: TTFont) -> F32: Font.ttf.glyf (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.glyf) def ttf.glyf(+f: TTFont) -> U32: Font.ttf.advance (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.advance) def ttf.advance(+b: Bin.Bytes, +f: TTFont, +gid: U32) -> F32: Font.ttf.location (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.location) # Absolute offset of a glyph's data and its byte length (0 for empty or invalid glyphs). def ttf.location(+b: Bin.Bytes, +f: TTFont, +gid: U32) -> U32 & U32: Font.TTPoint (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTPoint) type TTPoint is Data: TTPoint{x: F32, y: F32, on: Bool} Font.TTGlyph (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTGlyph) # Flat point list with the last point index of every contour. type TTGlyph is Data: TTGlyph{points: List<&2, TTPoint>, ends: List<&2, U32>, count: U32} Font.ttf.glyph.empty (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.glyph.empty) def ttf.glyph.empty() -> TTGlyph: Font.ttf.glyph.points (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.glyph.points) def ttf.glyph.points(+g: TTGlyph) -> List<&2, TTPoint>: Font.ttf.ends (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.ends) def ttf.ends(+b: Bin.Bytes, n: Nat, +at: U32) -> List<&2, U32>: Font.ttf.last (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.last) def ttf.last(xs: List<&2, U32>, +fallback: U32) -> U32: Font.ttf.after.flag (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.after.flag) def ttf.after.flag(+f: U32, got: List<&2, U32> & U32) -> List<&2, U32> & U32: Font.ttf.flags (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.flags) # Point flags with repeat counts expanded; returns the flags and the next byte offset. def ttf.flags(+b: Bin.Bytes, n: Nat, +at: U32, +pending: U32, +last: U32) -> List<&2, U32> & U32: Font.ttf.after.coord (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.after.coord) def ttf.after.coord(+v: F32, got: List<&2, F32> & U32) -> List<&2, F32> & U32: Font.ttf.coords (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.coords) # One coordinate axis: short bytes with a sign flag, repeated values, or signed word deltas. def ttf.coords(+b: Bin.Bytes, flags: List<&2, U32>, +at: U32, +prev: F32, +short: U32, +same: U32) -> List<&2, F32> & U32: Font.ttf.points (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.points) def ttf.points(flags: List<&2, U32>, xs: List<&2, F32>, ys: List<&2, F32>) -> List<&2, TTPoint>: Font.ttf.simple.y (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.simple.y) def ttf.simple.y(flags: List<&2, U32>, xs: List<&2, F32>, ends: List<&2, U32>, +count: U32, got: List<&2, F32> & U32) -> TTGlyph: Font.ttf.simple.x (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.simple.x) def ttf.simple.x(+b: Bin.Bytes, +flags: List<&2, U32>, ends: List<&2, U32>, +count: U32, got: List<&2, F32> & U32) -> TTGlyph: Font.ttf.simple.flags (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.simple.flags) def ttf.simple.flags(+b: Bin.Bytes, ends: List<&2, U32>, +count: U32, got: List<&2, U32> & U32) -> TTGlyph: Font.ttf.simple (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.simple) # A simple glyph at absolute offset g with the given contour count. def ttf.simple(+b: Bin.Bytes, +g: U32, +contours: U32) -> TTGlyph: Font.ttf.point (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.point) def ttf.point(pts: List<&2, TTPoint>, i: Nat) -> TTPoint: Font.ttf.transform (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.transform) def ttf.transform(pts: List<&2, TTPoint>, +a: F32, +bb: F32, +c: F32, +d: F32, +dx: F32, +dy: F32) -> List<&2, TTPoint>: Font.ttf.append.points (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.append.points) def ttf.append.points(xs: List<&2, TTPoint>, ys: List<&2, TTPoint>) -> List<&2, TTPoint>: Font.ttf.shift.ends (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.shift.ends) def ttf.shift.ends(ys: List<&2, U32>, +offset: U32) -> List<&2, U32>: Font.ttf.append.ends (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.append.ends) def ttf.append.ends(xs: List<&2, U32>, ys: List<&2, U32>, +offset: U32) -> List<&2, U32>: Font.ttf.merge (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.merge) def ttf.merge(parent: TTGlyph, child: TTGlyph) -> TTGlyph: Font.ttf.xy (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.xy) def ttf.xy(p: TTPoint) -> F32 & F32: Font.ttf.matched (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.matched) def ttf.matched(pp: F32 & F32, cp: F32 & F32) -> F32 & F32: Font.TTPlace (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTPlace) # A component's placement: an affine 2x2 with either an explicit offset or two # matched point indices (parent point a1 meets child point a2). type TTPlace is Data: TTPlace{xy: Bool, a1: F32, a2: F32, scaledOffset: Bool, a: F32, b: F32, c: F32, d: F32} Font.ttf.place.identity (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.place.identity) def ttf.place.identity() -> TTPlace: Font.ttf.place.offset (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.place.offset) def ttf.place.offset(+parent: TTGlyph, +child: TTGlyph, +place: TTPlace) -> F32 & F32: Font.ttf.place.scaled (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.place.scaled) def ttf.place.scaled(child: TTGlyph, +place: TTPlace) -> TTGlyph: Font.ttf.place.shifted (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.place.shifted) def ttf.place.shifted(child: TTGlyph, off: F32 & F32) -> TTGlyph: Font.ttf.place (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.place) # Scale the child, then offset it (explicitly or by point matching) and append it to the parent. def ttf.place(+parent: TTGlyph, +child: TTGlyph, +place: TTPlace) -> TTGlyph: Font.TTFrame (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=TTFrame) # A composite being assembled: the next component offset (0 once all are read), # the points so far and how the finished glyph is placed into its parent. type TTFrame is Data: TTFrame{at: U32, acc: TTGlyph, place: TTPlace} Font.ttf.component.place (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.component.place) def ttf.component.place(+b: Bin.Bytes, +at: U32, +flags: U32) -> TTPlace: Font.ttf.component.next (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.component.next) # Byte offset of the component after the one at `at`, or 0 when it was the last. def ttf.component.next(+at: U32, +flags: U32) -> U32: Font.ttf.frame.at (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.frame.at) def ttf.frame.at(+frame: TTFrame) -> U32: Font.ttf.frame.acc (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.frame.acc) def ttf.frame.acc(+frame: TTFrame) -> TTGlyph: Font.ttf.assemble.pop (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.assemble.pop) # Pop a finished frame into its parent frame. def ttf.assemble.pop(frame: TTFrame, parents: List<&2, TTFrame>) -> List<&2, TTFrame>: Font.ttf.assemble.child (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.assemble.child) def ttf.assemble.child(+b: Bin.Bytes, +f: TTFont, frame: TTFrame, parents: List<&2, TTFrame>, loc: U32 & U32, +place: TTPlace, +next: U32) -> List<&2, TTFrame>: Font.ttf.assemble.step (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.assemble.step) # Read the component at the frame's offset: a simple child is placed at once, a # composite child opens a new frame above the advanced parent. def ttf.assemble.step(+b: Bin.Bytes, +f: TTFont, frame: TTFrame, parents: List<&2, TTFrame>) -> List<&2, TTFrame>: Font.ttf.assemble.next (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.assemble.next) def ttf.assemble.next(+b: Bin.Bytes, +f: TTFont, stack: List<&2, TTFrame>) -> List<&2, TTFrame>: Font.ttf.stack.top (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.stack.top) def ttf.stack.top(stack: List<&2, TTFrame>) -> TTGlyph: Font.ttf.stack.done (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.stack.done) def ttf.stack.done(stack: List<&2, TTFrame>) -> Bool: Font.ttf.assemble (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.assemble) # Iterative composite assembly over an explicit frame stack; fuel bounds the component count. def ttf.assemble(+b: Bin.Bytes, +f: TTFont, fuel: Nat, +stack: List<&2, TTFrame>) -> TTGlyph: Font.ttf.glyph.at (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.glyph.at) def ttf.glyph.at(+b: Bin.Bytes, +f: TTFont, loc: U32 & U32) -> TTGlyph: Font.ttf.glyph (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.glyph) def ttf.glyph(+b: Bin.Bytes, +f: TTFont, +gid: U32) -> TTGlyph: Font.ttf.pair (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pair) def ttf.pair(p: TTPoint) -> String: Font.ttf.mid (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.mid) def ttf.mid(a: TTPoint, b: TTPoint) -> TTPoint: Font.ttf.walk.on (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.walk.on) def ttf.walk.on(p: TTPoint, pending: Maybe<&2, TTPoint>) -> String: Font.ttf.walk.between (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.walk.between) def ttf.walk.between(c: TTPoint, p: TTPoint) -> String: Font.ttf.walk.off (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.walk.off) # An off-curve point after another emits the implied on-curve midpoint between them. def ttf.walk.off(p: TTPoint, pending: Maybe<&2, TTPoint>) -> String: Font.ttf.walk.close (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.walk.close) def ttf.walk.close(pending: Maybe<&2, TTPoint>, +start: TTPoint) -> String: Font.ttf.walk (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.walk) def ttf.walk(pts: List<&2, TTPoint>, +pending: Maybe<&2, TTPoint>, +start: TTPoint) -> String: Font.ttf.init (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.init) def ttf.init(pts: List<&2, TTPoint>) -> List<&2, TTPoint>: Font.ttf.last.point (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.last.point) def ttf.last.point(pts: List<&2, TTPoint>, fallback: TTPoint) -> TTPoint: Font.ttf.contour.implied (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.contour.implied) def ttf.contour.implied(+start: TTPoint, first: TTPoint, rest: List<&2, TTPoint>) -> String: Font.ttf.contour.last (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.contour.last) # A contour starts at its first on-curve point; when the first point is off-curve, # the last point starts it if on-curve, else the implied midpoint between last and first. def ttf.contour.last(+first: TTPoint, +rest: List<&2, TTPoint>, last: TTPoint) -> String: Font.ttf.contour.off (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.contour.off) def ttf.contour.off(+first: TTPoint, +rest: List<&2, TTPoint>) -> String: Font.ttf.contour (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.contour) def ttf.contour(pts: List<&2, TTPoint>) -> String: Font.ttf.take (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.take) def ttf.take(n: Nat, pts: List<&2, TTPoint>) -> List<&2, TTPoint>: Font.ttf.drop (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.drop) def ttf.drop(n: Nat, pts: List<&2, TTPoint>) -> List<&2, TTPoint>: Font.ttf.contours (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.contours) def ttf.contours(+pts: List<&2, TTPoint>, ends: List<&2, U32>, +index: U32) -> String: Font.ttf.outline (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.outline) def ttf.outline(g: TTGlyph) -> String: Font.ttf.pairs.empty (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.empty) # Format 1 subtables list specific glyph pairs; the first format 2 subtable supplies classes. def ttf.pairs.empty() -> TTPairs: Font.ttf.pairs.add1 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.add1) def ttf.pairs.add1(+sub: U32, acc: TTPairs) -> TTPairs: Font.ttf.pairs.add2 (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.add2) def ttf.pairs.add2(+b: Bin.Bytes, +sub: U32, acc: TTPairs) -> TTPairs: Font.ttf.pairs.unclassed (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.unclassed) def ttf.pairs.unclassed(+acc: TTPairs) -> Bool: Font.ttf.pairs.add (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.add) def ttf.pairs.add(+b: Bin.Bytes, +sub: U32, +acc: TTPairs) -> TTPairs: Font.ttf.pairs.any.list (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.any.list) def ttf.pairs.any.list(specific: List<&2, U32>, +classes: U32) -> Bool: Font.ttf.pairs.any (https://jend.leeeet.dev/definition.txt?path=gralha-truetype@0.1.0.1/font.bend&name=ttf.pairs.any) def ttf.pairs.any(+p: TTPairs) -> Bool: More: https://jend.leeeet.dev/packages/gralha-truetype.txt?definitions_offset=100