コード例 #1
0
ファイル: oled.c プロジェクト: trezor/trezor-mcu
void oledDrawChar(int x, int y, char c, int font) {
  if (x >= OLED_WIDTH || y >= OLED_HEIGHT || y <= -FONT_HEIGHT) {
    return;
  }

  int zoom = (font & FONT_DOUBLE ? 2 : 1);
  int char_width = fontCharWidth(font & 0x7f, c);
  const uint8_t *char_data = fontCharData(font & 0x7f, c);

  if (x <= -char_width * zoom) {
    return;
  }

  for (int xo = 0; xo < char_width; xo++) {
    for (int yo = 0; yo < FONT_HEIGHT; yo++) {
      if (char_data[xo] & (1 << (FONT_HEIGHT - 1 - yo))) {
        if (zoom <= 1) {
          oledDrawPixel(x + xo, y + yo);
        } else {
          oledBox(x + xo * zoom, y + yo * zoom, x + (xo + 1) * zoom - 1,
                  y + (yo + 1) * zoom - 1, true);
        }
      }
    }
  }
}
コード例 #2
0
ファイル: oled.c プロジェクト: dstanchfield/trezor-mcu
void oledDrawChar(int x, int y, char c)
{
	int char_width;
	const uint8_t *char_data;

	if ((x >= OLED_WIDTH) || (y >= OLED_HEIGHT)) return;

	char_width = fontCharWidth(c);
	char_data = fontCharData(c);

	int xoffset, yoffset;
	for (xoffset = 0; xoffset < char_width; xoffset++) {
		for (yoffset = 0; yoffset < FONT_HEIGHT; yoffset++) {
			if (char_data[xoffset] & (1 << (FONT_HEIGHT - 1 - yoffset))) {
				oledDrawPixel(x + xoffset, y + yoffset);
			}
		}
	}
}
コード例 #3
0
ファイル: oled.c プロジェクト: axic/trezor-mcu
void oledDrawChar(int x, int y, char c, int zoom)
{
	int char_width;
	const uint8_t *char_data;

	if ((x >= OLED_WIDTH) || (y >= OLED_HEIGHT)) return;

	char_width = fontCharWidth(c);
	char_data = fontCharData(c);

	int xo, yo;
	for (xo = 0; xo < char_width; xo++) {
		for (yo = 0; yo < FONT_HEIGHT; yo++) {
			if (char_data[xo] & (1 << (FONT_HEIGHT - 1 - yo))) {
				if (zoom <= 1) {
					oledDrawPixel(x + xo, y + yo);
				} else {
					oledBox(x + xo * zoom, y + yo * zoom, x + (xo + 1) * zoom - 1, y + (yo + 1) * zoom - 1, true);
				}
			}
		}
	}
}