def pixels.set

gralha-image@0.1.0.1 · image.bend:51

import gralha-image@0.1.0.1/image.bend as Image
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U

51def pixels.set(+pixels: Pixels, +depth: Nat, +x: U32, +y: U32, +col: Color) -> Pixels:
52  match pixels:
53    case Flat{c}:
54      match depth:
55        case 0n: Flat{col}
56        case 1n+d: pixels.set(Quad{Flat{c}, Flat{c}, Flat{c}, Flat{c}}, 1n+d, x, y, col)
57    case Quad{a, b, c, e}:
58      match depth:
59        case 0n: Flat{col}
60        case 1n+d:
61          +dd = d
62          +half = U32.shln(1, dd)
63          U.branch(Pixels, U32.is_lt(y, half),
64            _ => U.branch(Pixels, U32.is_lt(x, half), _ => pixels.join(pixels.set(a, dd, x, y, col), b, c, e), _ => pixels.join(a, pixels.set(b, dd, (x - half : U32), y, col), c, e)),
65            _ => U.branch(Pixels, U32.is_lt(x, half), _ => pixels.join(a, b, pixels.set(c, dd, x, (y - half : U32), col), e), _ => pixels.join(a, b, c, pixels.set(e, dd, (x - half : U32), (y - half : U32), col))))

Uses (9)

Used by (2)