clearScreen method

void clearScreen()

Implementation

void clearScreen() {
  final pBufferInfo = calloc<CONSOLE_SCREEN_BUFFER_INFO>();
  final pCharsWritten = calloc<Uint32>();
  final origin = calloc<COORD>();
  try {
    final bufferInfo = pBufferInfo.ref;
    GetConsoleScreenBufferInfo(outputHandle, pBufferInfo);

    final consoleSize = bufferInfo.dwSize.X * bufferInfo.dwSize.Y;

    FillConsoleOutputCharacter(
      outputHandle,
      ' '.codeUnitAt(0),
      consoleSize,
      origin.ref,
      pCharsWritten,
    );

    GetConsoleScreenBufferInfo(outputHandle, pBufferInfo);

    FillConsoleOutputAttribute(
      outputHandle,
      bufferInfo.wAttributes,
      consoleSize,
      origin.ref,
      pCharsWritten,
    );

    SetConsoleCursorPosition(outputHandle, origin.ref);
  } finally {
    calloc.free(origin);
    calloc.free(pCharsWritten);
    calloc.free(pBufferInfo);
  }
}