La couleur sur Smaky 130 et Smaky 400/Infini

Les Smaky 130 supportent les profondeurs suivantes : 1, 4, 8, 15 et 16 bits/pixel. Le support dépend du fichier vidéo actif et de la quantité de mémoire disponible. Techniquement, il serait possible de supporter un mode 32 bits/pixel, mais GRA2 n'est pas adapté.

Les Smaky 400 supportent les profondeurs suivantes : 1, 4, 8 et 16 bits/pixel. Là aussi, le support dépend du fichier vidéo actif. Pour des questions de vitesse, les modes plus profonds ne sont pas implémentés. Le mode 15 bits/pixel n'apporte rien par rapport au mode 16 bits/pixel et a donc été abandonné.

La signification des pixels est définie de façon très simple : pour les modes utilisant une palette, il s'agit simplement d'un index. Pour les autres modes (actuellement, 15 et 16 bits/pixel), une table résume la disposition des bits.

Il faut faire attention à n'utiliser effectivement que les bits correspondant à la profondeur utile pour définir une couleur (1, 4, 8 ou 16 bits). Il est incorrect de supposer que noir = 0xFFFFFFFF et blanc = 0x00000000 ! En 4 comme en 8 bits/pixel, c'est l'index 0x0000000F qui correspond au noir avec la palette système par défaut. Ceci n'est évidemment plus vrai pour des modes sans palette. Ne codez donc pas les couleurs (noir, blanc, etc.) comme constantes dans vos applications !

Organisation des bits en mode non indexé

La table suivante définit de façon univoque l'organisation des bits dans les pixels pour les profondeurs de 15 et 16 bits/pixel. Dans tous les cas, les bits d'une composante (rouge, verte ou bleue) sont organisés en mode most significant bit first (bit de poids fort à gauche).

ODFCNP ODFPIXORG

Organisation des bits dans un pixel

Appellation

15 0xFF bbbb'bggg'ggrr'rrr0 15 bpp, BGR
16 0xFF bbbb'bggg'gggr'rrrr 16 bpp, BGR
15 0x00 0rrr'rrgg'gggb'bbbb 15 bpp, RGB
16 0x00 rrrr'rggg'gggb'bbbb 16 bpp, RGB

Le symbole ODFCNP correspond à une valeur 8-bit défini dans MODULES.REF. Quant au symbole ODFPIXORG, il correspond à une valeur 8-bit et vaut 0x005D. Ces symboles définissent des offsets dans le descripteur de la fenêtre active.

Utilisation des modes 15 et 16 bits/pixel

Les modes 15 et 16 bits/pixel s'utilisent comme tous les autres modes supportés en passant par l'intermédiaire du module GRA2 et des services de TCOLOR pour la recherche des couleurs.

Sur le Smaky 400 et sur le Smaky 130 équipé d'une carte Alpine, il reste possible d'allouer des pixmaps en passant directement par le pilote $HWDIS, mais il n'est ensuite pas possible d'y dessiner au moyen de GRA2 ou directement en faisant des accès mémoire.

Il faut donc ouvrir une application directement avec la bonne profondeur ou lancer une application bidon pour allouer une fenêtre de prévisualisation couleur, par exemple, afin d'obtenir un descripteur de fenêtre valide.