Skip to content

v0.0.9

Latest
Compare
Choose a tag to compare
@tinne26 tinne26 released this 06 Dec 15:41

etxt has been stuck on v0.0.8 for waaaaay too long due to v0.0.9 never being quite finished. The reason for this? Twines.

Twines were a nice concept for being able to combine utf8, raw glyph indices and formatting directives all in a single type. Twines were implemented and had some basic testing and even a few cool example programs, but ultimately I decided to remove them and just release all the other improvements that have been in the v0.0.9 alphas for more than a year. The reason for twines not being completely finished is simple: the API was too complex to understand for users, and the implementation was too complex for myself to maintain. It was a single pass implementation, quite efficient but basically unmanageable once text wrapping was considered. I never implemented text wrapping for twines.

The removal of twines also happens because I'm focusing more on ptxt recently, a text renderer for a custom bitmap-like font format that also attempts to implement twines, but in a simpler context. There, I've decided to take a more structured approach, even if it takes multiple passes and a non-trivial amount of memory to be allocated and kept for operation. At least this will work with wrap and be maintainable.

As for the actual improvements of v0.0.9 over v0.0.8, a lot can be read here #7 (although it's now a bit outdated). The tldr is taht there are no new revolutionary concepts, only clean up, clearer API and stuff like that. Some internal/advanced packages had substantial improvements, like the fract package, but that's an advanced feature that most users wouldn't have needed anyway. Internal code got better because of that, but there's nothing groundbreaking to talk about. The single biggest deal in terms of usage is making the canvas part of the draw call parameters instead of part of the renderer state. This aligns much better with ebitengine APIs.

Anyway, this was basically a rant. I'm somewhat sad that I can't get twines out in the world through etxt, but I'm on the third implementation iteration for them now with ptxt and they will come to light someday. In the meantime, keep enjoying the good old etxt... in its sharpest suit to date1.

  1. But hey, text/v2 was released for ebitengine in the meantime, maybe you want to take a look and re-evaluate! I talked quite a bit with Hajime about text/v2, and while I would have made something completely different than what we ultimate got, I never withhold any knowledge and I always tried to add as much value as I could sharing my experience with etxt; we are all in the same boat, trying to make ebitengine as useful as possible.