Synopsis #
This is a routine that displays a text in small (glyph) font on the screen.
Definition #
static const short empty[18] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int PrintMiniFix(int x, int y, const char *Msg, const int flags, const short color, const short bcolor){
int i = 0, dx;
unsigned short width;
void *p;
while ( Msg[i] ){
p = GetMiniGlyphPtr( Msg[i], &width );
dx = ( 12 - width ) / 2;
if ( dx > 0 ) {
PrintMiniGlyph( x, y, (void*)empty, flags, dx, 0, 0, 0, 0, color, bcolor, 0 );
}else dx = 0;
PrintMiniGlyph( x+dx, y, p, flags, width, 0, 0, 0, 0, color, bcolor, 0 );
if ( width+dx < 12 ){
PrintMiniGlyph( x+width+dx, y, (void*)empty, flags, 12-width-dx, 0, 0, 0, 0, color, bcolor, 0 );
}
x += 12;
i++;
}
return x;
}
Inputs #
- int x: X-coordinate of top-left of text
- int y: Y-coordinate of top-left of text
- const char* Msg: string to display
- const int flags:
Symbol | Value |
---|---|
PMF_ALLOW_STATUSAREA | 0x40 |
PMF_INVERT | 4 |
PMF_DO_NOT_USE_BACKCOLOR | 2 |
PMF_UPPER_X_LIMIT_IGNORED | 0xFFFFFFFF |
- const short color: Text foreground color
- const short bcolor: Text background color
Outputs #
Small font string on-screen.
Comments #
- Flags come from an old version of disp_tools.hpp. No further information on them is known.
- Without PMF_ALLOW_STATUSAREA, the syscall will try to draw the text even with a negative y value, but it will clip as though the top bar was shown, regardless of whether that top bar is actually present or not.
Usage Example #
PrintMiniFix(0, 175,
"Oh look a string at the bottom of the screen.",
0, COLOR_WHITE, COLOR_BLACK);