This is the conclusion I’ve been coming to over the last few months - for my experiments with SDF text I just swapped out the material of a BitmapText instance, but for other types of fonts (like vector fonts from a TTF) this doesn’t make a lot of sense.
I’d like to see a generic Text interface plus a common set of layout and glyph data classes. The render pipeline could look something like this:
Text interface implementation -> common layout engine -> mesh/rendering surface setup interface implementation (aligned quads, offscreen render buffer, etc) -> displayable node
Some parts of glyph data would likely need to be abstracted, however. Glyph width/height/etc. metrics should be able to stay in a common concrete class, but I’d imagine that there will be font implementations that need a data structure significantly different from bitmap font atlases.