Autres articles / Other articles

Architecture de Windows Graphics

publication: 22 novembre 2024 / mis à jour 22 novembre 2024

Read this page in english

 


Introduction

Windows propose plusieurs API C++/COM pour les graphiques. Ces API sont présentées dans le diagramme suivant:

Dans eForth Windows, nous ne nous intéresserons que à GDI accessible au travers de Gdi32.dll.

Transparence et anticrénelage

Alors que GDI prend en charge l'accélération matérielle pour certaines opérations, de nombreuses opérations GDI sont liées au processeur. Direct2D est superposé à Direct3D et tire pleinement parti de l'accélération matérielle fournie par le GPU. Si le GPU ne prend pas en charge les fonctionnalités nécessaires à Direct2D, alors Direct2D revient au rendu logiciel. Globalement, Direct2D surpasse GDI et GDI+ dans la plupart des situations.

GDI a une prise en charge limitée du mélange alpha. La plupart des fonctions GDI ne prennent pas en charge le mélange alpha, bien que GDI prenne en charge le mélange alpha pendant une opération bitblt. GDI+ prend en charge la transparence, mais le mélange alpha est effectué par le processeur, il ne bénéficie donc pas de l'accélération matérielle.

Le mélange alpha accéléré par le matériel permet également l'anticrénelage. L'aliasing est un artefact causé par l'échantillonnage d'une fonction continue. Par exemple, lorsqu'une ligne courbe est convertie en pixels, l'aliasing peut provoquer une apparence irrégulière. Toute technique qui réduit les artefacts causés par l'aliasing est considérée comme une forme d'anti-aliasing. Dans les graphiques, l'anti-aliasing est effectué en mélangeant les bords avec l'arrière-plan.

GDI ne prend pas en charge l'anti-aliasing lorsqu'il dessine de la géométrie (lignes et courbes). GDI peut dessiner du texte anti-aliasé à l'aide de ClearType ; mais sinon, le texte GDI est également aliasé. L'aliasing est particulièrement visible pour le texte, car les lignes irrégulières perturbent la conception de la police, rendant le texte moins lisible. Bien que GDI+ prenne en charge l'anti-aliasing, il est appliqué par le processeur, de sorte que les performances ne sont pas aussi bonnes que celles de Direct2D.

Catégories des fonctions Gdi32

La documentation en ligne pour ces différentes catégories est disponible ici:
  Windows GDI

En résumé

L'essentiel des fonctions graphiques et utilisateur passent par deux DLL:

L'utilisation de Gdiplus.dll n'est faite qu'à titre expérimental. Gdiplus est fortement dépendant de Gdi32. L'appel aux fonctions de Gdiplus n'est pas nécessaire pour nos applications eForth Windows graphiques.


Legal: site web personnel sans commerce / personal site without seling