You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/fontland/fontland/glyphrun.rkt

21 lines
627 B
Racket

#lang racket/base
(require "racket.rkt")
(require "bbox.rkt" (prefix-in Script- "script.rkt"))
(provide (all-defined-out))
#|
approximates
https://github.com/mbutterick/fontkit/blob/master/src/layout/GlyphRun.js
|#
;; Represents a run of Glyph and GlyphPosition objects.
;; Returned by the font layout method.
(define-subclass object% (GlyphRun
glyphs ; An array of Glyph objects in the run
positions) ; An array of GlyphPosition objects for each glyph in the run
(define/public (advanceWidth)
(for/sum ([pos (in-list positions)])
(· pos xAdvance))))