void vbeclrscr(gfxpix32 pix) { uint8_t *ptr = vbepixadr(0, 0); long incr = vbescreen.pixsize; long n = vbescreen.w * vbescreen.h; long nbpp = vbescreen.nbpp; long lim; if (nbpp == 24) { while (n) { lim = min(n, 4); switch (lim) { case 4: vbeputpix(pix, &ptr[3 * incr]); case 3: vbeputpix(pix, &ptr[2 * incr]); case 2: vbeputpix(pix, &ptr[incr]); case 1: vbeputpix(pix, ptr); break; } n -= lim; ptr += lim * incr; } } return; }
void vbeclrscr(uint32_t pix) { long x; long y; for (x = 0 ; x < vbescreen.w ; x++) { for (y = 0 ; y < vbescreen.h ; y++) { vbeputpix(pix, x, y); } } return; }
/* draw character without background (transparent) */ void vbedrawcharfg(unsigned char c, int x, int y, argb32_t fg, argb32_t bg) { int _cy; int _yofs; uint8_t *_gp = (uint8_t *)vgafontbuf + ((int)c << 4); uint8_t _g; for (_cy = 0 ; _cy < VGAGLYPHH >> 1; _cy++) { _g = *_gp; _yofs = y + _cy; if (_g & 0x01) { vbeputpix(fg, x + 7, _yofs); } if (_g & 0x02) { vbeputpix(fg, x + 6, _yofs); } if (_g & 0x04) { vbeputpix(fg, x + 5, _yofs); } if (_g & 0x08) { vbeputpix(fg, x + 4, _yofs); } if (_g & 0x10) { vbeputpix(fg, x + 3, _yofs); } if (_g & 0x20) { vbeputpix(fg, x + 2, _yofs); } if (_g & 0x40) { vbeputpix(fg, x + 1, _yofs); } if (_g & 0x80) { vbeputpix(fg, x + 0, _yofs); } _gp++; } return; }