[AD] New FONT structure - any objections? |
[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]
Hi, Would anybody object to having a new FONT structure, along the line of: FONT_VTABLE int text_length(void* data, const char* text); void text_out(void* data, int height, const char* text, BITMAP* bmp, int x, y, fg, bg); void destroy(void* data); FONT void* data; int height; FONT_VTABLE* vtable; This system requires a minor rewrite of some of the library itself, just to understand the new format, and also of some of the utilities (grabber, etc). The advantages are: - We can now support any arbitrary font through Allegro's textout() routines; for instance, we can interface with FreeType to allow loading of .ttf files. - Font output is probably quicker, since we have one call to the FONT vtable entry text_out(), followed by (probably) one call to an entry in the BITMAP vtable per character, as opposed to one call to render_glyph() per character, followed by one call to an entry in the BITMAP vtable per character. - The code is simpler, FONT objects are smaller. - We can now do things we couldn't do before, like rendering text with a shadow. Previously, because it was output on a char-by-char basis, the shadow of one char could overwrite the previously drawn char, etc. - As long as the data remains in the same format, we can replace the vtable entry in FONT to render our font in a different fashion. The disadvantages are: - Any addons which directly interfaced with FONT will have to be rewritten. However, this also presents an advantage, in that their interfaces with Allegro will probably be simpler; they can design their own format for storing data, and they also get passed a whole string to render at once, rather than character by character. Also, this new interface would be more `future-proof', since it is more flexible than the current one. I am happy to code it, which would probably take a couple of days, but somebody would have to help me with the `dat2s' utility. Bye for now, -- Laurence Withers, lwithers@xxxxxxxxxx http://www.lwithers.demon.co.uk/
Attachment:
signature.asc
Description: PGP signature
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |