Grafos de pintura COLR v1

GetRegisteredColorGlyphInfo valida o glifo base selecionado e retorna um grafo acíclico dirigido plano em THPDFOpenTypeColorGlyphInfo.COLRv1Paints

COLRv1RootPaintIndex identifica a raiz e UnitsPerEm fornece a escala usada por DrawRegisteredColorGlyph

Registros de grafo

THPDFCOLRv1PaintKind distingue camadas, preenchimentos sólidos, gradientes lineares, gradientes radiais, gradientes de varredura, recortes de glifo, glifos coloridos reutilizáveis, transformações e compostos

THPDFCOLRv1Paint armazena índices de filho, IDs de glifo, geometria de gradiente, dados de transformação, modo de composição e cores resolvidas

THPDFCOLRv1ColorStop armazena um deslocamento de parada ordenado, cor CPAL resolvida, alfa e índice de entrada de paleta

THPDFCOLRv1Transform armazena os seis valores da transformação de pintura afim

THPDFCOLRv1PaintArray, THPDFCOLRv1PaintIndexArray e THPDFCOLRv1ColorStopArray expõem o grafo e seus filhos e paradas de comprimento variável para Delphi e C++Builder

Segurança e fallback

Os deslocamentos de pintura são verificados contra suas bases corretas relativas à tabela antes da construção do grafo

Grafos são limitados a 4096 nós de pintura e 64 níveis, e ciclos falham antes que qualquer operador de página seja emitido

A saída nativa cobre ordenação comum de origem e destino mais a família de modos de mesclagem PDF, enquanto outras operações Porter-Duff invocam OnColorGlyphRasterize quando atribuído