Using Metal (the Apple graphics API) in its raw form for the first time, and wow, I’d repressed just how mind-bogglingly clumsy low-level graphics APIs are. Currently trying to pass a constant int to a vertex shader, which apparently requires a sequence of operations that would make Rube Goldberg blush.
This is all doubly painful because I’m doing it in Swift, and just flushing 40 years of memory and type safety straight down the drain for absolutely nothing.
It’s all managed and strongly typed on both sides of the wall here! Why why why must the pipeline be raw bytes and hand-computed buffer lengths? Surely somebody’s made a nice ergonomic wrapper for this nonsense….