readRenderFrameForAbsoluteRange

open fun readRenderFrameForAbsoluteRange(startAbsoluteRow: Long, endAbsoluteRow: Long, consumer: TerminalRenderFrameConsumer)

Invokes consumer with a frame containing the retained intersection of the requested absolute row range.

Absolute rows start at zero for the first terminal line and continue increasing when old history is discarded. Implementations that serialize terminal mutation should resolve the range and expose the frame in one critical section so concurrent output cannot shift the requested rows. The returned frame may start before startAbsoluteRow when the requested range begins inside the live grid, because scrollback viewports are anchored at the live grid's first row. Callers must intersect their range with the retained bounds reported by the returned frame.

The default implementation snapshots current frame metadata and then issues a relative viewport read. Stateful callers must serialize this entire method against mutation, or readers may override it when they can resolve and expose the range atomically themselves.

Parameters

startAbsoluteRow

inclusive first requested absolute row.

endAbsoluteRow

inclusive last requested absolute row.

consumer

receiver that copies any render data it needs.