Esempio n. 1
0
/*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);
}
Esempio n. 2
0
File: bios.cpp Progetto: phoyd/DS203
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));
      }