ggiPutc(3) Draw one or more characters on visual

Other Alias

ggiPuts, ggiGetCharSize


#include <ggi/ggi.h>
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 right.

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.