AgonConsole8 / agon-vdp

Official Firmware for the Agon Console8: ESP32 VDP
MIT License
38 stars 13 forks source link

Scaled (and rotated?) text drawing #197

Open stevesims opened 4 months ago

stevesims commented 4 months ago

It would be nice to support scaled text drawing. Applying a factor to scale width and/or height of text when output would be good.

Unfortunately this functionality is not currently supported by vdp-gl.

A possible solution to this would be to support applying a transformation matrix to text drawing operations. This could allow for both scaling, and also rotation when drawing text. Transformation matrixes are being considered for bitmap plotting - this could potentially use a very similar approach.

NB rotation when drawing a complete string of text may require support within the VDP to understand drawing strings - currently text is drawn strictly one character at a time. Issues around rotating text are complex, and affect cursor position as well as just printing individual characters.

stevesims commented 1 month ago

we now have transformed bitmap plotting. the basic mechanism for this could be replicated for glyph plotting

inside agon-vdp the main complexity is really cursor movement - ensuring that the cursor moves as appropriate/expected from character to character. as there is no underlying support for printing strings of glyphs as a singular block of text, this may result in slightly idiosyncratic cursor movement