Index des articles > Programmation > Tutorial TIGCC - Chapitre 7 - Niveaux de gris

Tutorial TIGCC - Chapitre 7 - Niveaux de gris

Article posté par limmt

Chapitre 7 - Utilisation des niveaux de gris

A - Principe

L'écran des TIs68k est un écran monochrome. N'utiliser que du noir et du blanc ne permet pas de graphismes très évolués.
Il est heureusement possible de dessiner avec des niveaux de gris, 4 en général mais il est possible d'arriver jusqu'à 7. Je n'expliquerai ici que le principe des 4 niveaux de gris.
En fait le principe des niveaux de gris repose sur le fait d'afficher plusieurs plans tèes rapidement sur l'écran, pour celà on utilise l'AUTO_INT_1, interruption à 350Hz.
On utilise deux plans, un plan gris clair, et un plane gris foncé. Si un pixel est blanc dans les deux, ils sera blanc. Si il est juste dans le gris clair, il sera gris clair, s'il est juste dans le gris foncé, il sera gris foncé et s'il est dans les deux il sera noir. Le plan gris foncé, pour obtenir la nuance est affiché pendant les 2/3 du temps.

B - Activation des niveaux de gris

Pour activer les niveaux de gris on utilise:
GrayOn();
Cette fonction initialise les niveaux de gris et efface les deux plans.
! L'AUTO_INT_1 peut etre l'interruption originelle, modifiée ou le DUMMY_HANDLER mais ne doit PAS être désactivée car GrayOn se base dessus.
Pour déactiver les niveaux de gris, on utilise la fonction GrayOff();

C - Dessin dans les différents plans

Les fonctions graphiques de graph.h dessinent par défaut à l'adresse LCD_MEM, qui correspond à 0x4C00 en hexadécimal. Il est cependant possible de forcer ces fonctions à dessiner dans nos deux plans. On utilise pour celà la fonction:
GraySetAMSPlane(short plane);
plane peut être égal au constantes LIGHT_PLANE ou DARK_PLANE, respectivement 0 et 1.
Cette fonction redirige les fonctions de graph.h vers le plan des niveaux de gris choisi.
Il est également possible d'utiliser
PortSet(char *plane,short x_max,short y_max);
plus puissante mais dont l'utilisation est plus compliquée. Vous serez cependant obligé de l'utiliser pour refaire que les fonctions de graph.h dessine sur l'écran après la désactivation des niveaux de gris si vous en avez besoin.
Pour obtenir l'adresse des deux plans on utilise GetPlane(short plane); avec LIGHT_PLANE ou DARK_PLANE.
D - Bibliothèques graphiques

Il existe des librairies ou bibliothèques graphiques optimisées pour les niveaux de gris, avec des fonctions plus rapide que celles de graph.h
Parmi les plus courantes on trouve extgraph, graphx et genlib.
Pour plus d'informations sur ces librairies, voir leur readme.


Limmt Ribeman © 2004

>> Vos commentaires [0]

Pas de commentaires

Poster un commentaire


Seuls les membres peuvent poster des commentaires