Grafos de paint COLR v1

GetRegisteredColorGlyphInfo valida el glifo base seleccionado y devuelve un grafo acíclico dirigido plano en THPDFOpenTypeColorGlyphInfo.COLRv1Paints

COLRv1RootPaintIndex identifica la raíz y UnitsPerEm aporta la escala que usa DrawRegisteredColorGlyph

Registros del grafo

THPDFCOLRv1PaintKind distingue capas, rellenos sólidos, gradientes lineales, gradientes radiales, sweep gradients, clips de glifo, glifos de color reutilizables, transforms y composite

THPDFCOLRv1Paint almacena índices de hijos, glyph IDs, geometría de gradiente, datos de transform, modo composite y colores resueltos

THPDFCOLRv1ColorStop almacena un offset de stop ordenado, el color CPAL resuelto, el alpha y el índice de la entrada de paleta

THPDFCOLRv1Transform almacena los seis valores del transform afín del paint

THPDFCOLRv1PaintArray, THPDFCOLRv1PaintIndexArray y THPDFCOLRv1ColorStopArray exponen el grafo y sus hijos y stops de longitud variable a Delphi y C++Builder

Seguridad y fallback

Los offsets de paint se comprueban contra sus bases relativas a la tabla correctas antes de construir el grafo

Los grafos se limitan a 4096 nodos de paint y 64 niveles, y los ciclos fallan antes de emitir cualquier operador de página

La salida nativa cubre los ordenamientos habituales de source y destination más la familia de blend modes de PDF, mientras que otras operaciones Porter-Duff invocan OnColorGlyphRasterize cuando está asignado