/*static*/ void BIOS::LCD::RoundRect(int x1, int y1, int x2, int y2, unsigned short clr) { for (int x=x1; x<x2; x++) for (int y=y1; y<y2; y++) if ( !_Round(min(x-x1, x2-x-1), min(y-y1, y2-y-1)) ) PutPixel(x, y, clr); }
void BIOS::LCD::Shadow(int x1, int y1, int x2, int y2, unsigned int nColor) { // rrggbbaa int nA_ = nColor >> 24; int nR_ = (nColor >> 16) & 0xff; int nG_ = (nColor >> 8) & 0xff; int nB_ = nColor & 0xff; for (int x = x1; x < x2; x++) for (int y = y1; y < y2; y++) if (!_Round(min(x - x1, x2 - x - 1), min(y - y1, y2 - y - 1))) { ui16 nOld = GetPixel(x, y); int nR = Get565R(nOld); int nG = Get565G(nOld); int nB = Get565B(nOld); nR += ((nR_ - nR) * nA_) >> 8; nG += ((nG_ - nG) * nA_) >> 8; nB += ((nB_ - nB) * nA_) >> 8; PutPixel(x, y, RGB565RGB(nR, nG, nB)); }