flush method

void flush()

Renders only the changed cells to the terminal since the last flush.

Implementation

void flush() {
  _flushBuffer.clear();
  _cachedAnsiStyle = null;
  _cachedAnsiCode = null;
  int cursorX = -1;
  int cursorY = -1;
  TextStyle? currentStyle;

  for (int y = 0; y < terminal.height; y++) {
    final result = _flushRow(
      y,
      _flushBuffer,
      cursorX: cursorX,
      cursorY: cursorY,
      currentStyle: currentStyle,
    );
    cursorX = result.$1;
    cursorY = result.$2;
    currentStyle = result.$3;
  }
  _flushBuffer.write('\x1b[0m');
  _flushBuffer.write('\x1b[1;1H');
  terminal.backend.write(_flushBuffer.toString());
  terminal.backend.flush();
}