/* Renders a single AA4 character on the screen. 
This text rendering method used a lookup table of pre-calculated colors, and doesn't require any reads from the LCD (not all displays support reading pixels back). This offers the best performance and high-quality text, but can only be used on solid backgrounds where the bgcolor is known. */
void aafontsDrawCharAA4(uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo_t character, const uint16_t *colorTable)
/* Renders a single AA4 character on the screen. 
This text rendering method used a lookup table of pre-calculated colors, and doesn't require any reads from the LCD (not all displays support reading pixels back). This offers the best performance and high-quality text, but can only be used on solid backgrounds where the bgcolor is known. */
void aafontsDrawCharAA4(uint16_t x, uint16_t y, uint16_t height, aafontsCharInfo_t character, const uint16_t *colorTable)
{
  uint16_t w, h;
  uint8_t color;
  for (h = 0; h < height; h++)
  {
    for (w = 0; w < character.width; w++)
    {
      color = character.charData[h*character.bytesPerRow + w/2];
      if (!(w % 2)) color = (color >> 4);
      if (color) lcdDrawPixel(x+w, y+h, colorTable[color & 0xF]);
    }
  }
}