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 !
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.
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.