Skip to content
ConsoleMonster

API Reference

Class

VtOutput

Namespace ConsoleMonster.Rendering
Assembly ConsoleMonster
Implements
ITerminalOutput IDisposable
Modifiers sealed

The interactive VT output. Print-once blocks are appended to scrollback; live frames are drawn on the alternate screen, diffed against the previous frame and written in one synchronized update (DEC mode 2026), so the screen never shows a half-drawn frame. The bottom-right cell is never written, which avoids an unwanted scroll on any terminal.

Inheritance

  • Object
  • VtOutput

Constructors

public VtOutput(ITerminalWriter writer, TerminalProfile profile, Boolean ownsWriter = true) #

Creates a VT output.

Parameters

writer ConsoleMonster.Output.ITerminalWriter requiredposition: 0
The sink.
profile ConsoleMonster.Capabilities.TerminalProfile requiredposition: 1
The profile (colour depth, size).
ownsWriter System.Boolean = true optionalposition: 2
Whether disposing this output disposes the writer.

Methods

public Void BeginLive() #
Returns: Void

Starts live rendering (VT: alternate screen, hidden cursor). No effect for line-based outputs.

public Void Dispose() #
Returns: Void

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public Void EndLive() #
Returns: Void

Ends live rendering and restores the terminal (cursor, screen, attributes). Safe to call more than once.

public Void Invalidate() #
Returns: Void

Forces the next frame to be redrawn completely (after a resize or external output).

public Void RenderFrame(CellBuffer frame) #
Returns: Void

Draws a full-screen frame, writing only the cells that changed since the previous frame.

Parameters

frame ConsoleMonster.Canvas.CellBuffer requiredposition: 0
The frame; its size is the screen size.
public Void WriteBlock(CellBuffer buffer) #
Returns: Void

Appends a rendered block (print-once output) to the scrollback.

Parameters

buffer ConsoleMonster.Canvas.CellBuffer requiredposition: 0
The rendered block; trailing blank cells on each row are trimmed.
public Void WriteInline(StyledLine line) #
Returns: Void

Writes one styled line without ending it (Write-ConsoleText -NoNewLine); the next write continues on it.

Parameters

line ConsoleMonster.Text.StyledLine requiredposition: 0
The line.
public Void WriteInPlace(StyledLine line, Boolean final) #
Returns: Void

Redraws one line in place (an updating status line): carriage return, the line, clear to the end of the line. With final the line ends and later output starts below it.

Parameters

line ConsoleMonster.Text.StyledLine requiredposition: 0
The line; keep it narrower than the window so it never wraps.
final System.Boolean requiredposition: 1
Whether this is the last version of the line.
public Void WriteLine(StyledLine line) #
Returns: Void

Appends one styled line (stream narration, captured output, summaries).

Parameters

line ConsoleMonster.Text.StyledLine requiredposition: 0
The line.

Properties

public TerminalProfile Profile { get; } #

The profile this output encodes for.

public Boolean SupportsLiveFrames { get; } #

Whether the output can redraw a live frame in place.

public Int32 LastFrameLength { get; private set; } #

Number of bytes (UTF-16 code units) written by the last frame; useful for benchmarks.