Avant d’entrer dans la programmation graphique, il est essentiel de maîtriser certains termes fondamentaux. Ces notions permettent de comprendre comment une image est affichée à l’écran et comment l’ordinateur la manipule.
Le pixel
Le pixel, contraction de picture element (ou pel), représente la plus petite unité d’affichage qu’un écran peut produire. Une image affichée par l’ordinateur est en réalité constituée d’un très grand nombre de ces points disposés en grille. En mode graphique, chaque pixel peut être contrôlé individuellement, ce qui permet de dessiner, colorer ou modifier précisément une image.
À l’inverse, en mode texte, l’écran n’affiche pas directement des pixels isolés mais des blocs de pixels organisés pour former des caractères. Même si ces caractères sont prédéfinis, il reste possible de les modifier en agissant sur leur représentation graphique.
La résolution
La résolution correspond au nombre total de pixels affichés simultanément à l’écran, exprimé en largeur par hauteur. Par exemple, une résolution de 320×200 signifie que l’écran affiche 320 pixels horizontalement et 200 verticalement, soit un total de 64 000 pixels.
Plus la résolution est élevée, plus l’image est détaillée, car elle contient davantage de pixels. Certaines résolutions sont devenues des standards, comme 640×480, 800×600 ou 1024×768.
Il est important de noter que le mode texte du DOS, souvent présenté comme du 80×25 caractères, correspond en réalité à une résolution graphique de 640×300 pixels. Il existe également des résolutions moins courantes, mais leur utilisation peut entraîner des problèmes de compatibilité selon le matériel utilisé.
Les bits par pixel (BPP)
Le nombre de bits par pixel détermine la quantité de couleurs qu’un pixel peut afficher. Plus ce nombre est élevé, plus la palette de couleurs disponible est importante.
Avec 8 bits par pixel, on peut afficher 256 couleurs, chaque pixel étant codé sur un octet. En mode 24 bits, la couleur est définie par trois octets correspondant aux composantes rouge, verte et bleue, ce qui permet d’afficher plusieurs millions de couleurs.
Il existe également d’autres modes, comme le 15 ou le 16 bits offrant 65 536 couleurs, ou le 32 bits qui ajoute un canal alpha pour gérer la transparence, sans augmenter le nombre réel de couleurs par rapport au 24 bits. À l’opposé, des modes plus simples existent, comme le 1 bit pour le noir et blanc ou le 4 bits pour 16 couleurs.
La palette
Dans les modes graphiques limités à 256 couleurs, il est nécessaire de définir une palette. Cette palette correspond à une sélection de couleurs choisies parmi un ensemble théorique de 262 144 teintes possibles.
Ce nombre provient du fait que chaque couleur est définie par trois composantes, rouge, vert et bleu, chacune pouvant prendre une valeur comprise entre 0 et 63. Ainsi, le noir correspond à la valeur 0,0,0, tandis que le blanc est représenté par 63,63,63. Une couleur pure comme le rouge est définie par 63,0,0.
Grâce aux normes VESA présentes sur les cartes SVGA, il est possible d’augmenter la précision de ces valeurs en passant d’une plage de 0–63 à 0–255, ce qui permet un rendu des couleurs plus fin, comme c’est le cas sous Windows.
Le rayon cathodique et le retour de balayage
Sur les écrans à tube cathodique, l’image est produite par un faisceau électronique qui parcourt l’écran et frappe sa surface avec une certaine intensité lumineuse. Chaque impact correspond à un point visible à l’écran.
Le balayage se fait de manière séquentielle, ligne par ligne, de gauche à droite et de haut en bas. Lorsque le faisceau atteint la fin d’une ligne, il effectue un retour de balayage horizontal. Une fois arrivé en bas de l’écran, il effectue un retour de balayage vertical pour recommencer le cycle.
Il est déconseillé de modifier le contenu de l’écran pendant que le faisceau est en train de dessiner l’image, car cela peut provoquer des scintillements ou des coupures visuelles. Les modifications graphiques, notamment celles de la palette, doivent idéalement être effectuées durant le retour vertical, qui est plus lent et donc moins perceptible à l’œil humain.
Les registres de la carte VGA
La carte VGA peut être comparée, dans son fonctionnement, à un processeur spécialisé dans l’affichage. Elle dispose de plusieurs registres internes qui peuvent être modifiés afin de contrôler le comportement graphique de l’écran. En agissant sur ces registres, il est possible de définir la résolution d’affichage, le nombre de couleurs disponibles, la palette utilisée, la taille apparente des pixels ou encore l’état du balayage de l’écran. Certains paramètres influencent également le timing du signal vidéo, ce qui doit être manipulé avec beaucoup de précaution, car une mauvaise configuration peut entraîner des dysfonctionnements matériels.
Le CRTC – Cathode Ray Tube Controller
Le CRTC est le contrôleur du tube à rayons cathodiques. Son rôle principal est de générer le signal vidéo nécessaire à l’affichage de l’image à l’écran. Il définit notamment la manière dont l’image est balayée et synchronisée. Bien que ce contrôleur soit relativement simple à programmer d’un point de vue technique, une utilisation incorrecte peut avoir des conséquences graves. Des réglages inadaptés peuvent provoquer un affichage instable, voire endommager physiquement l’écran, ce qui impose une grande rigueur lors de sa manipulation.
Le TS – Timing Sequencer
Le séquenceur de timing est responsable de la gestion de la mémoire vidéo. Il contrôle l’organisation des plans mémoire et la manière dont les caractères et les données graphiques sont stockés et accédés. Le rafraîchissement de la mémoire vidéo dépend directement de ce composant, qui joue donc un rôle central dans la cohérence et la stabilité de l’affichage.
Le GDC – Graphic Data Controller
Le contrôleur de données graphiques permet d’accéder à des fonctionnalités plus avancées que celles offertes par le séquenceur de timing. Il intervient lors des opérations de lecture et d’écriture en manipulant les octets de données graphiques. Ce contrôleur gère les accès à la mémoire vidéo et assure la gestion des différents plans graphiques, ce qui le rend indispensable pour les opérations graphiques complexes.
L’ATC – Attribute Controller
Le contrôleur d’attributs est chargé de la gestion des attributs graphiques, en particulier des couleurs et de la palette. Il joue un rôle clé dans la correspondance entre les valeurs utilisées en mémoire vidéo et les couleurs réellement affichées à l’écran.
Le DAC – Digital to Analog Converter
Le convertisseur numérique-analogique transforme les données numériques issues de la mémoire vidéo en signaux analogiques directement exploitables par l’écran. Il convertit les valeurs numériques en signaux représentant les composantes rouge, verte et bleue de chaque pixel. Le DAC gère également les opérations de lecture et de reconversion des données de couleur, ce qui en fait un élément essentiel du processus d’affichage.
Remarque sur l’utilisation actuelle
De nos jours, l’accès direct à ces registres est rarement utilisé. À l’exception du DAC, principalement exploité pour modifier la palette de couleurs, la plupart de ces registres ne sont plus manipulés dans les environnements modernes. Ils restent toutefois parfois utilisés dans des contextes spécifiques, comme le détournement du mode texte ou l’exploitation de modes graphiques particuliers tels que le mode X.