Paint-графы COLR v1
GetRegisteredColorGlyphInfo валидирует выбранный базовый глиф и возвращает плоский направленный ациклический граф в THPDFOpenTypeColorGlyphInfo.COLRv1Paints
COLRv1RootPaintIndex указывает корень, а UnitsPerEm даёт масштаб, который использует DrawRegisteredColorGlyph
Записи графа
THPDFCOLRv1PaintKind различает слои, сплошные заливки, линейные, радиальные и sweep-градиенты, отсечение глифов, повторно используемые цветные глифы, transform и композиты
THPDFCOLRv1Paint хранит индексы потомков, ID глифов, геометрию градиента, данные transform, режим композита и разрешённые цвета
THPDFCOLRv1ColorStop хранит упорядоченное смещение stop, разрешённый цвет CPAL, alpha и индекс записи палитры
THPDFCOLRv1Transform хранит шесть значений аффинного paint-преобразования
THPDFCOLRv1PaintArray, THPDFCOLRv1PaintIndexArray и THPDFCOLRv1ColorStopArray открывают граф и его потомков и stop переменной длины для Delphi и C++Builder
Безопасность и fallback
Смещения paint проверяются относительно правильных баз таблицы до построения графа
Графы ограничены 4096 узлами paint и 64 уровнями, а циклы приводят к отказу до эмиссии каких-либо page-операторов
Нативный вывод покрывает обычное упорядочение source и destination плюс семейство blend-mode PDF, а остальные операции Porter-Duff вызывают OnColorGlyphRasterize, если он назначен