Methods GPOS de crénage et de positionnement THotPDF

THotPDF Référence API

 

Methods THotPDF  Façonnage automatique  GSUB

Documente les requêtes HotPDF pour le crénage GPOS par paires, le crénage contextuel, le crénage vertical, les ancres cursives, le positionnement de marques et mark-to-ligature, ainsi que les indicateurs ShapingFeatures qui les appliquent pendant la sortie de texte

 

Syntaxe Delphi

function HasGPOSKerning: Boolean;

function GetGPOSPairAdjustment(FirstGID, SecondGID: Word): Integer;

function GetGPOSPairAdjustment(FirstGID, SecondGID: Word; out AXPlacement, AYPlacement, AYAdvance: Integer): Integer;

function GetGPOSContextualKernRun(const GIDs: array of Word): TArray<Integer>;

function HasGPOSVerticalKern: Boolean;

function GetGPOSVerticalKern(FirstGID, SecondGID: Word): Integer;

function GetGPOSMarkOffset(BaseGID, MarkGID: Word; out DX, DY: Integer): Boolean;

function GetGPOSMarkMarkOffset(BaseMarkGID, AttachMarkGID: Word; out DX, DY: Integer): Boolean;

function HasGPOSCursive: Boolean;

function GetGPOSCursiveAnchors(GID: Word; out EntryX, EntryY, ExitX, ExitY: Integer; out HasEntry, HasExit: Boolean): Boolean;

function GetGPOSMarkToLigatureOffset(LigGID: Word; ComponentIndex: Integer; MarkGID: Word; out DX, DY: Integer): Boolean;

function GetGPOSLigatureComponentCount(LigGID: Word): Integer;

function ApplyMarkToLigatureShaping(const Wide: UnicodeString): UnicodeString;

 

API couvertes

APINotes d’utilisation
HasGPOSKerningIndique si la police Unicode enregistrée expose des recherches de crénage GPOS
GetGPOSPairAdjustmentRenvoie l’ajustement d’avance signé pour une paire ordonnée de glyphes et peut aussi renvoyer des décalages X/Y sensibles au placement via la surcharge
GetGPOSContextualKernRunRenvoie des ajustements de crénage contextuel par glyphe en résolvant les règles de positionnement GPOS Type 7 et Type 8 sur une suite de glyphes
HasGPOSVerticalKernIndique si la police Unicode enregistrée expose des recherches de crénage vertical ou d’ajustement proportionnel vertical
GetGPOSVerticalKernRenvoie l’ajustement vertical YAdvance signé depuis les recherches vkrn ou vpal pour une paire ordonnée de glyphes
GetGPOSMarkOffsetRenvoie les décalages Mark-to-Base pour attacher un glyphe de marque à un glyphe de base
GetGPOSMarkMarkOffsetRenvoie les décalages Mark-to-Mark pour empiler un glyphe de marque sur un autre
HasGPOSCursiveIndique si la police Unicode enregistrée expose des recherches GPOS d’attachement cursif
GetGPOSCursiveAnchorsRenvoie les ancres cursives d’entrée et de sortie d’un glyphe lorsque la police fournit une règle d’attachement cursif
GetGPOSMarkToLigatureOffsetRenvoie les décalages Mark-to-Ligature pour attacher une marque à un composant de ligature précis
GetGPOSLigatureComponentCountRenvoie le nombre de composants d’attache de marque enregistrés pour un glyphe de ligature afin que l’appelant choisisse un ComponentIndex valide avant GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingEnregistre l’appartenance des composants de ligature afin d’appliquer les décalages mark-to-ligature pendant l’émission de texte
sfKerningActive les ajustements GPOS de crénage par paires pendant l’émission de texte Unicode de gauche à droite
sfMarkPositioningActive les décalages GPOS Mark-to-Base et Mark-to-Mark pour les marques combinantes
sfMarkToLigatureActive les décalages GPOS Mark-to-Ligature pour les marques attachées à des composants de ligature individuels
sfCursiveAttachmentActive l’alignement des ancres cursives GPOS entrée/sortie pendant l’émission de texte Unicode, y compris les suites arabes de droite à gauche façonnées par sfArabicGSUB
sfVerticalKerningActive l’ajustement d’avance verticale GPOS vkrn et vpal dans le chemin de sortie de texte vertical

 

Notes d’utilisation

Le crénage par paires renvoie des ajustements signés d’avance et de placement dans un em de 1000 unités. Le crénage contextuel résout les recherches Type 7 et Type 8 sur une suite de glyphes. Le positionnement de marques couvre les ancres Mark-to-Base, Mark-to-Mark et Mark-to-Ligature. ApplyMarkToLigatureShaping prépare les données de composants de ligature au niveau de la suite utilisées par sfMarkToLigature. L’attachement cursif aligne l’ancre de sortie d’un glyphe sur l’ancre d’entrée du glyphe suivant, ce qui est le plus utile après que le façonnage Arabic GSUB natif a produit les ID de glyphes contextuels propres à la police qui portent ces ancres. Le chemin d’émission applique ces ajustements uniquement lorsque l’indicateur de façonnage correspondant est activé

 

Voir aussi: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline