render method

  1. @override
void render()
override

Implementation

@override
void render() {
  if (!_imageLoaded) return;

  _display.render((x, y, glyph) {
    var char = glyph.char;

    // Remap it if it's a Unicode character.
    char = unicodeMap[char] ?? char;

    var sx = (char % 32) * _charWidth;
    var sy = (char ~/ 32) * _charHeight;

    // Fill the background.
    _context.fillStyle = glyph.back.cssColor.toJS;
    _context.fillRect(
      x * _charWidth * _scale,
      y * _charHeight * _scale,
      _charWidth * _scale,
      _charHeight * _scale,
    );

    // Don't bother drawing empty characters.
    if (char == 0 || char == CharCode.space) return;

    var color = _getColorFont(glyph.fore);
    _context.imageSmoothingEnabled = false;

    _context.drawImage(
      color,
      sx,
      sy,
      _charWidth,
      _charHeight,
      x * _charWidth * _scale,
      y * _charHeight * _scale,
      _charWidth * _scale,
      _charHeight * _scale,
    );
  });
}