Grafos de pintura 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 proporciona la escala usada por DrawRegisteredColorGlyph

Registros del grafo

THPDFCOLRv1PaintKind distingue capas, rellenos sólidos, degradados lineales, degradados radiales, degradados de barrido, recortes de glifo, glifos de color reutilizables, transformaciones y composiciones

THPDFCOLRv1Paint almacena índices secundarios, ID de glifo, geometría de degradado, datos de transformación, modo de composición y colores resueltos

THPDFCOLRv1ColorStop almacena un desplazamiento de parada ordenado, el color CPAL resuelto, el alfa y el índice de entrada de paleta

THPDFCOLRv1Transform almacena los seis valores de la transformación de pintura afín

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

Seguridad y reserva

Los desplazamientos de pintura se comprueban con sus bases correctas relativas a la tabla antes de la construcción del grafo

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

La salida nativa cubre el orden común de origen y destino más la familia de modos de fusión de PDF, mientras que otras operaciones Porter-Duff invocan OnColorGlyphRasterize cuando está asignado