def ttf.component.place
gralha-truetype@0.1.0.1 · font.bend:316
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
316def ttf.component.place(+b: Bin.Bytes, +at: U32, +flags: U32) -> TTPlace:
317 +words = ttf.bit(flags, 1)
318 +xy = ttf.bit(flags, 2)
319 +a1 = U.choose(F32, words, U.choose(F32, xy, ttf.i16(b, (at + 4 : U32)), U32.to_f32(ttf.u16(b, (at + 4 : U32)))), U.choose(F32, xy, ttf.i8(b, (at + 4 : U32)), U32.to_f32(ttf.u8(b, (at + 4 : U32)))))
320 +a2 = U.choose(F32, words, U.choose(F32, xy, ttf.i16(b, (at + 6 : U32)), U32.to_f32(ttf.u16(b, (at + 6 : U32)))), U.choose(F32, xy, ttf.i8(b, (at + 5 : U32)), U32.to_f32(ttf.u8(b, (at + 5 : U32)))))
321 +at2 = (at + U.choose(U32, words, 8, 6) : U32)
322 +one = ttf.bit(flags, 8)
323 +two = ttf.bit(flags, 64)
324 +four = ttf.bit(flags, 128)
325 +sa = U.choose(F32, one || two || four, ttf.f2dot14(b, at2), 1.0)
326 TTPlace{xy, a1, a2, ttf.bit(flags, 2048), sa,
327 U.choose(F32, four, ttf.f2dot14(b, (at2 + 2 : U32)), 0.0),
328 U.choose(F32, four, ttf.f2dot14(b, (at2 + 4 : U32)), 0.0),
329 U.choose(F32, one, sa, U.choose(F32, two, ttf.f2dot14(b, (at2 + 2 : U32)), U.choose(F32, four, ttf.f2dot14(b, (at2 + 6 : U32)), 1.0)))}