The backend contract: what a backend implements to draw a DisplayList on one technology (the software rasterizer, SkiaSharp, CoreGraphics, Direct2D, Android Canvas). Replay(IRenderingBackend) calls these members in the list's order.
public interface IRenderingBackend
Backends consume display lists and never see content-stream operators. Everything a call hands over is resolved: paths in user space with the transform set before them, colours as colour space plus components (ISO 32000-2 §8.6.1, colour specification). Colour rendering is the backend's (§8.6.1, §10): it converts a DisplayColor to its device model through GetColorConverter(PdfColorSpace, ColorConversion, PdfDefaultColorSpaces?) on Document, which goes through the engine's colour-management extension point (IColorManagement).
State: a replay starts with the identity transform, so user space is the page's default user space (§8.3.2.3); mapping that to the device (scale, rotation, crop box, user unit) is the backend's or its renderer's. SetTransform(in Matrix) replaces the current transform; SaveState() and RestoreState() are balanced in every list and save and restore the transform and, as later operations join the list, everything else the backend holds per state.
Spans and views handed to a call are valid only during it; copy what you keep. A list replays on any number of threads at once, each with its own backend; one backend instance receives the calls of one replay from one thread.
kind:method, kind:property, kind:ctor. Press Esc to clear.BeginAnnotation(in DisplayAnnotation)Begins an annotation's appearance: saves the state as SaveState() does, and the paints until the matching EndAnnotation() are the appearance, composited as one group.DrawGlyphs(in GlyphRun)Draws a run of glyphs: fills and strokes their outlines as the run's rendering mode says.DrawGroup(in DisplayGroup)Paints a transparency group: its content composited as a group, then the result composited onto the backdrop as one object.DrawImage(DisplayImage, PdfDefaultColorSpaces, ColorConversion)Draws an image into the unit square of user space.DrawShading(in DisplayShading)Paints a shading over the whole current clip (the sh operator).EndAnnotation()Ends the annotation BeginAnnotation(in DisplayAnnotation) began: composites its appearance and restores the state saved there.FillImageMask(DisplayImageMask, in DisplayColor)Paints a colour through a stencil mask in the unit square of user space: where the mask paints, the colour is painted.FillPath(PathView, FillRule, in DisplayColor)Fills a path with a colour.FillPathWithShading(PathView, FillRule, in DisplayShading)Fills a path with a shading pattern.FillPathWithTilingPattern(PathView, FillRule, in DisplayTilingPattern)Fills a path with a tiling pattern.IntersectClip(PathView, FillRule)Intersects the current clip with the inside of a path, for the paints that follow until the state is restored.RestoreState()Restores the state saved by the matching SaveState().SaveState()Saves the current state: the transform and whatever else the backend keeps per state.SetCompositing(Double, Double, BlendMode)Sets the alpha constants and the blend mode the paints that follow composite with, until the state is restored.SetDeviceParameters(in DisplayDeviceParameters)Sets the overprint parameters and the halftone the paints that follow are rendered with, until the state is restored.SetSoftMask(in DisplaySoftMask)Sets the soft mask the paints that follow composite through, or removes it (IsNone).SetTransform(in Matrix)Sets the transform from user space to the page's default user space for the paints that follow.StrokePath(PathView, in StrokeStyle, in DisplayColor)Strokes a path with a colour and line parameters.StrokePathWithShading(PathView, in StrokeStyle, in DisplayShading)Strokes a path with a shading pattern.StrokePathWithTilingPattern(PathView, in StrokeStyle, in DisplayTilingPattern)Strokes a path with a tiling pattern.