ggiPutc, ggiPuts, ggiGetCharSize - Draw one or more characters on
int ggiPutc(ggi_visual_t vis, int x, int y, char c);
int ggiPuts(ggi_visual_t vis, int x, int y, const char *str);
int ggiGetCharSize(ggi_visual_t vis, int *width, int *height);
LibGGI provides a few functions to do basic character output. They are
for debugging and simple GUI applications. They are simple on purpose:
there is only one fixed-width font and its size cannot be changed. Only
the standard ASCII character set (0x20 to 0x7f) is supported, with no
internationalization features. All more complex character functions go
beyond the scope of this base library.
ggiPutc puts a single character on a graphical visual.
ggiPuts puts multiple characters (from a C-style null-terminated
string) at once. No special handling is applied to control characters
like CR or LF. The associated glyph for control characters will be
displayed. ggiPuts also only clips text at the clipping rectangle and
does not wrap text.
ggiGetCharSize obtains the size of the character cell, in pixels. This
function allows the application to correctly position the text output.
Character size must always be checked and application should not assume
that it will be constant across targets or even modes. Visuals must
have a mode set before querying the character size. It means that if
you want to use a visual size which depends on the character size, you
might have to iterate over ggiSetMode(3) and ggiGetCharSize to get it
Note: The values returned by ggiGetCharSize is not the same as
the values of dpp of the current mode, which is in dots. In
graphics modes are 1x1 dpp by definition and use at least
8x8-pixel fonts. In text mode, the character cell is 1x1 pixels
by definition and the dpp value is the actual size of the font.
0 for success.