Anticrénelage ClearType

L’anti-ataliasing Microsoft ClearType est une méthode de lissage qui améliore la résolution d’affichage des polices par rapport à l’anticrénelage traditionnel. Il améliore considérablement la lisibilité sur les moniteurs LCD couleur avec une interface numérique, comme ceux des ordinateurs portables et des écrans de bureau plats de haute qualité. La lisibilité sur les écrans CRT est également quelque peu améliorée.

Toutefois, ClearType dépend de l’orientation et de l’ordre des bandes LCD. Actuellement, ClearType est implémenté uniquement pour les LCD avec des bandes verticales triées RVB. En particulier, cela affecte les PC de tablette, où l’affichage peut être orienté dans n’importe quelle direction, et les écrans qui peuvent être tournés du paysage au portrait.

L’anti-ataliasing ClearType est autorisé :

  • Pour les couleurs 16, 24 et 32 bits (désactivée pour 256 couleurs ou moins)
  • Pour le contrôleur de domaine d’écran et le contrôleur de domaine de mémoire (pas pour le contrôleur de domaine de l’imprimante)
  • Pour les polices TrueType et OpenType avec des contours TrueType

L’anti-attirail ClearType est désactivé :

  • Sous client terminal server
  • Pour les polices bitmap, les polices vectorielles, les polices d’appareil, les polices de type 1 ou les polices OpenType Postscript sans contours TrueType
  • Si la police a réglé les bitmaps incorporées, uniquement pour les tailles de police qui contiennent les bitmaps incorporées

Pour activer l’anti-ataliasing ClearType, appelez Une fois SystemParametersInfo pour activer le lissage des polices, puis une deuxième fois pour définir le type de lissage sur FE_FONTSMOOTHINGCLEARTYPE, comme illustré dans l’exemple de code suivant :

SystemParametersInfo(SPI_SETFONTSMOOTHING,
                     TRUE,
                     0,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,
                     0,
                     (PVOID)FE_FONTSMOOTHINGCLEARTYPE,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Vous pouvez ajuster l’apparence du texte en modifiant la valeur de contraste utilisée dans l’algorithme ClearType. La valeur par défaut est 1 400, mais il peut s’agir de n’importe quelle valeur comprise entre 1 000 et 2 200. Selon le périphérique d’affichage et la sensibilité de l’utilisateur aux couleurs, une valeur de contraste plus élevée ou inférieure peut améliorer la lisibilité. Pour modifier le contraste, appelez SystemParametersInfo avec SPI_SETFONTSMOOTHINGCONTRAST. Le code suivant définit la valeur de contraste sur 1 600.

SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST,
                     0,
                     (PVOID)1600,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Vous devez tenir compte des détails suivants pour la compatibilité de l’application :

  • Le rendu du texte avec ClearType est légèrement plus lent qu’avec l’anticrénelage standard.
  • Les applications ne doivent pas utiliser XOR pour afficher le texte sélectionné. Les applications doivent définir la couleur d’arrière-plan et redisplayer le texte sélectionné.
  • Les applications ne doivent pas peindre le même texte sur elle-même en mode transparent. Si cela se produit, les pixels de bord qui sont antialiased fusionnent avec eux-mêmes au lieu de la couleur d’arrière-plan. Il en résulte des bords foncés et colorés.
  • Les applications ne doivent pas peindre le texte en peignant les caractères individuellement en mode opaque, car le bord d’un caractère peut être rogné par le caractère suivant. Cela se produit parce qu’un caractère lissé avec ClearType peut avoir une largeur A ou C négative où le caractère normal a une largeur A ou C positive. Seule la largeur B du caractère est garantie. De même, les applications doivent être prudentes si le texte lissé est en regard du texte non textuel.
  • Si une application restitue le texte, puis manipule l’image bitmap, le lissage des polices doit être désactivé en définissant le membre lfQuality de la structure LOGFONT sur NONANTIALIASED_QUALITY. Par exemple, un jeu peut ajouter un effet d’ombre bitmap, ou le texte rendu dans une image bitmap peut être mis à l’échelle pour produire une vue numérique.
  • Si l’utilisateur s’exécute en mode portrait (autrement dit, le striping du moniteur est horizontal), l’anti-attirail ClearType doit être désactivé.

Le paramètre fdwQuality dans CreateFont et le membre lfQuality de LOGFONT acceptent l’indicateur CLEARTYPE_QUALITY. La rastérisation des polices créées avec cet indicateur utilise le rastériseur ClearType. Cet indicateur n’a aucun effet sur les versions précédentes du système d’exploitation.