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 color glyphs, transforms, and composites

THPDFCOLRv1Paint stores child indexes, glyph IDs, gradient geometry, transform data, composite mode, and resolved colors

THPDFCOLRv1ColorStop stores an ordered stop offset, resolved CPAL color, 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, while other Porter-Duff operations invoke OnColorGlyphRasterize when assigned