Repository navigation
v2.0.0 Tile caching for static scenes and a push/pop clip API
What's new since v1.2.3 — all about performance, plus one breaking API change:
- Tile cache (new cache option) — opt-in flag in onedraw_def; a persistent full-screen tile cache (4 bytes/px, up to ~64 MiB at 4096×4096) skips fragment work on unchanged tiles. Measured 1.69 ms → 1.11 ms GPU time on a static 1440p scene (M5 Pro), with indirect redraw of clean tiles
- Breaking API change: clip is now a push/pop stack — od_set_clip* → od_push_cliprect / od_push_cliprect_rounded / od_push_clipdisc, plus new od_pop_clip(). A pushed clip replaces the current one (not intersected), max 256 per frame, must be balanced by end of frame. This is the reason for the 1.2.3 → 2.0.0 bump
- Shader and rasterizer optimizations, internal binning rework, and a new command refactor