Guide
Performance
- A frame is three calls however big the model is. Never look up ids
per frame; do it once at load.
ay2d_drawables copies one small struct per mesh. The vertex data behind
the pointers is not copied.
- Upload UVs and triangles once; stream positions only for meshes with
AY2D_CHANGED_POSITIONS.
- Update work grows with the rig's keyforms and deformers; for a typical
streaming model it is well under a millisecond on one core.
- The frame calls do not allocate, with one exception: a playing
composition samples its layers into a small map each update.