[Not loaded yet]
Yeah, I don't 100% remember that it didn't specify the height, that's my best guess reconstructing it. I do know it was lots of fuzzy heuristics of deciding what height ranges to allow, which row to clear, when to bail.
The "can't flush midframe" is a whole other can of worms.
IIRC, I originally wrote it in immediate mode OpenGL, which just allowed texture updating midframe.
On consoles we found various ways to emulate that behavior, including a huge staging buffer where we queued interleaved rendering and texture-update-blits into a single command stream.
We drew everything in a single pass over the display tree, because traversing it was expensive for cache reasons. I could have had a first pass that processed all the text fields to update the cache, but that would still have the problem of a mid-pass reset.
May 8, 2025 19:41But I 100% agree this is a nightmare for integration into somebody else's system and you don't want to do it that way!