BeginReplay(IRenderingBackend, CancellationToken, IProgress?) Method

Definition

Assembly Broadside.dll

Starts a replay into backend that runs in slices: each Continue(TimeSpan) hands over operations until its time budget is used, and the next resumes where it stopped.

public DisplayListReplay BeginReplay(IRenderingBackend backend, CancellationToken cancellationToken, IProgress<double>? progress)

Parameters

backend
IRenderingBackend

The backend that draws; it keeps its state (graphics state stack, clip, output so far) between slices.

cancellationToken
CancellationToken

Cancels the replay before its next operation.

progress
IProgress<Double>

Receives the share of the operations handed over so far, from 0 to 1, synchronously on the replaying thread every 1,024 operations and at the end of every slice, then once with exactly 1 at the end; null for none.

Returns

DisplayListReplay
The replay, at the first operation; nothing has been handed over yet.

Remarks

Viewer capability 2 (issue #97), like PDFium's progressive rendering: a host that must not block, such as a Blazor WebAssembly page on its only thread, replays a slice, yields to its event loop, and continues. Slicing never changes what the backend receives: the calls are those of Replay(IRenderingBackend), in the same order.