-static void pl_text_out16_(int x, int y, const char *text)
-{
- int i, l, w = pl_vout_w;
- unsigned short *screen;
- unsigned short val = 0xffff;
-
- x &= ~1;
- screen = (unsigned short *)pl_vout_buf + x + y * w;
- for (i = 0; ; i++, screen += 8)
- {
- char c = text[i];
- if (c == 0)
- break;
- if (c == ' ')
- continue;
-
- for (l = 0; l < 8; l++)
- {
- unsigned char fd = fontdata8x8[c * 8 + l];
- unsigned short *s = screen + l * w;
- unsigned int *s32 = (void *)s;
-
- s32[0] = (s32[0] >> 1) & 0x7bef7bef;
- s32[1] = (s32[1] >> 1) & 0x7bef7bef;
- s32[2] = (s32[2] >> 1) & 0x7bef7bef;
- s32[3] = (s32[3] >> 1) & 0x7bef7bef;
-
- if (fd&0x80) s[0] = val;
- if (fd&0x40) s[1] = val;
- if (fd&0x20) s[2] = val;
- if (fd&0x10) s[3] = val;
- if (fd&0x08) s[4] = val;
- if (fd&0x04) s[5] = val;
- if (fd&0x02) s[6] = val;
- if (fd&0x01) s[7] = val;
- }
- }
-}
-
-void pl_text_out16(int x, int y, const char *texto, ...)
-{
- va_list args;
- char buffer[256];
-
- va_start(args, texto);
- vsnprintf(buffer, sizeof(buffer), texto, args);
- va_end(args);
-
- pl_text_out16_(x, y, buffer);
-}
-