COLR v1 Paint Graphs
GetRegisteredColorGlyphInfo validates the selected base glyph and returns a flat directed acyclic graph in THPDFOpenTypeColorGlyphInfo.COLRv1Paints
COLRv1RootPaintIndex identifies the root and UnitsPerEm supplies the scale used by DrawRegisteredColorGlyph
Graph records
THPDFCOLRv1PaintKind distinguishes layers, solid fills, linear gradients, radial gradients, sweep gradients, glyph clips, reusable colour glyphs, transforms and composites
THPDFCOLRv1Paint stores child indexes, glyph IDs, gradient geometry, transform data, composite mode and resolved colours
THPDFCOLRv1ColorStop stores an ordered stop offset, resolved CPAL colour, alpha and palette entry index
THPDFCOLRv1Transform stores the six values of the affine paint transform
THPDFCOLRv1PaintArray, THPDFCOLRv1PaintIndexArray and THPDFCOLRv1ColorStopArray expose the graph and its variable-length children and stops to Delphi and C++Builder
Safety and fallback
Paint offsets are checked against their correct table-relative bases before graph construction
Graphs are limited to 4096 paint nodes and 64 levels, and cycles fail before any page operators are emitted
Native output covers common source and destination ordering plus the PDF blend-mode family, whilst other Porter-Duff operations invoke OnColorGlyphRasterize when assigned