def ttf.cmap4.gid
gralha-truetype@0.1.0.1 · font.bend:686
import gralha-truetype@0.1.0.1/font.bend as Font
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
import gralha-bytes@0.1.0.1/bytes.bend as Bin
686def ttf.cmap4.gid(+b: Bin.Bytes, +sub: U32, +cp: U32) -> U32:
687 +segX2 = ttf.u16(b, (sub + 6 : U32))
688 +count = U32.div(segX2, 2)
689 +i = ttf.cmap4.find(b, 20n, sub, 0, count, cp)
690 +start = ttf.u16(b, (sub + 16 + segX2 + i * 2 : U32))
691 +delta = ttf.u16(b, (sub + 16 + segX2 * 2 + i * 2 : U32))
692 +roAt = (sub + 16 + segX2 * 3 + i * 2 : U32)
693 U.branch(U32, U32.is_gt(cp, 65534) || U32.is_ge(i, count) || U32.is_lt(cp, start), _ => 0, _ => ttf.cmap4.glyph(b, cp, start, delta, roAt, ttf.u16(b, roAt)))