The device-independent, fully resolved sequence of drawing operations a page's content produces, which every backend consumes through Replay(IRenderingBackend). Build one with CreateDisplayList().
public sealed class DisplayList
A struct-based operation buffer: operations are records in one array, paths are stored once per distinct path (verbs and points in shared arrays) and colours once per run of equal colours, so building costs a fixed number of arrays per page and replaying allocates nothing. Fonts, images and colour spaces are resolved before an operation enters the list; the list never reads the file again (a replay touches only the list), so it can be cached and replayed many times, for example per tile and zoom, where Replay(IRenderingBackend, PdfRectangle) skips the paints a tile does not reach. Converting its colours goes through Document, which must still be open for that.
Today the list carries the graphics state stack (ISO 32000-2 §8.4.2), transforms (§8.3.2), path fills with their colour
(§8.5.3, §8.6), strokes with their colour and line parameters (§8.4.3, §8.5.3.2), path clips (§8.5.4, including form
bounding boxes, §8.10.1), images with their masks (§8.9, §11.6.5, DisplayImage, decoded once per image XObject),
stencil masks (§8.9.6.2, DisplayImageMask), text as glyph runs (§9.4.3, §9.3.6, GlyphRun: font
program, glyph ids, text matrices, outlines interned once per program and glyph) and shadings, from sh and as shading
patterns on fills and strokes (§8.7.4, DisplayShading), tiling patterns on fills and strokes, each cell a display
list of its own (§8.7.3, DisplayTilingPattern), constant alpha and blend modes
(SetCompositing(Double, Double, BlendMode), §11.6.3, §11.6.4.4), transparency groups (§11.4, DisplayGroup:
group XObjects, the page group and the implicit group of a combined fill and stroke) and annotations' appearances (§12.5.5,
DisplayAnnotation; a list holds the page's content, annotation and form-field layers as DisplayLayers
asks). Type 3 glyphs (§9.6.4) are in it as what their descriptions paint, under each glyph's transform and, for a d1
glyph, in the colours of the text that shows it; each description is interpreted once per font, code and inherited graphics
state in a list and replayed at every show. Text clips (§9.3.6) reach backends as path clips of the glyph outlines. Overprint
control and halftones reach them as SetDeviceParameters(in DisplayDeviceParameters) (transfer functions travel with each
colour). Soft masks in the
graphics state (§11.5, §11.6.5.1) reach them through SetSoftMask(in DisplaySoftMask) and
SoftMask, each mask's group a list of its own (DisplaySoftMask), built once per mask.
Immutable once built: any number of threads may replay the same list at once, each into its own backend.
kind:method, kind:property, kind:ctor. Press Esc to clear.DocumentGets the document the list was built from, whose colour converters a backend uses (see DisplayColor).OperationCountGets the number of operations in the list: what Position counts up to.BeginReplay(IRenderingBackend, PdfRectangle, CancellationToken, IProgress<Double>?)As BeginReplay(IRenderingBackend, CancellationToken, IProgress<Double>?), handing over only what Replay(IRenderingBackend, PdfRectangle) hands over for region.BeginReplay(IRenderingBackend, CancellationToken, IProgress<Double>?)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.CreateHitTestIndex()Builds the hit-test index of the list's content: its glyphs, images and paths, queryable by point and by rectangle.Replay(IRenderingBackend, PdfRectangle)Calls backend for the operations of the list that can change pixels inside region, in order: every paint whose bounds meet the region, and every state change. A saved state whose paints all lie outside the region is skipped with its SaveState() and RestoreState().Replay(IRenderingBackend, CancellationToken, IProgress<Double>?)Calls backend once for every operation of the list, in order, checking cancellationToken before each and reporting progress.Replay(IRenderingBackend)Calls backend once for every operation of the list, in order.