clrscr()

Remplit l'écran avec une couleur donnée, choisit la couleur complémentaire pour les dessins et les textes

 

Exemples d'utilisation

clrscr(); // Le plus utilisé et le plus rapide. Efface l'écran...
clrscr(BLACK); // C'est la même chose.
clrscr(RED); // Remplit l'écran de rouge, les dessins et textes seront par défaut cyan

 

Référence

void clrscr(word couleur = BLACK);

Paramètre passé

couleur: couleur du fond d'écran. Fond noir si la couleur est omise

Valeur retournée

Aucune

 

Voir aussi

- setLimites(); Limite la zone de dessin
- fillRect(); Trace une boîte pleine
- fill(); Remplit avec la couleur demandée
- setGraphMode(); Initialisation de l'écran
- RGBcolor(); Transforme un triplet RGB en un code couleur
- setDrawColor(); Couleur du dessin
- setTextColor(); Couleur du texte
- BLACK, WHITE, ...: Constantes couleurs
- point(); Dessine un point
- text(); Écrit du texte
- screenPrint(); Copie d'écran sur la carte SD

 

Notes

Le plus souvent, on remplit l'écran de noir ou de blanc. A ce moment les dessins se feront par défaut dans la couleur opposée, et on dessinera ou écrira en blanc sur fond noir, ou noir sur fond blanc

Pour la plupart des fonctions graphiques, omettre la couleur, c'est dessiner avec la couleur précédente qui a été mémorisée. Le cas de clrscr() est particulier car omettre la couleur, c'est effacer avec du noir

Il y a plusieurs différences entre le remplissage de l'écran par clrscr(couleur) et par fillRect(couleur):

après clrscr(couleur)après fillRect(couleur)
couleur de l'écrancouleurcouleur
couleur des prochains dessinsopposé de couleurcouleur
couleur des prochains textesopposé de couleurinchangé
curseur texteen haut à gaucheinchangé
mode Draw/InverseDrawinchangé

Si on a limité les dessins avec la fonction setLimites() les limites ne seront pas changées et seule la partie comprise dans les limites est effacée.

Le remplissage est plus rapide si les poids forts de la couleur sont égaux aux poids faibles (80ms au lieu de 250ms pour un écran 320x240).

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-102-clrscr\Exemple-102-clrscr.ino (dans votre fichier téléchargé):

// Effacer un écran, c'est le remplir avec un couleur donnée. 
// Ici chaque boucle efface l'écran 4 fois (3 façons de le faire)

#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>
void setup() 
{
  setGraphMode(PAYSAGE); // Initialisation de l'écran
}

void loop()
{
  clrscr(); // Efface l'écran
  delay(1000);
  clrscr(RED); // Efface l'écran avec du rouge
  delay(1000);
  fillRect(0,0,MAX_X,MAX_Y,BLACK); // Efface aussi l'écran sans repositionner le curseur texte
  delay(1000);
  clrscr(BLUE); // Efface l'écran avec du bleu
  delay(1000);
}

Résultat:

 

Côté technique

clrscr() utilise fillRect(0, 0, MAX_X, MAX_Y, couleur). clrscr() impose le mode dessin, appelle fillRect(), repositionne le curseur texte et ajuste les couleurs.

La couleur est codée sur 16 bits. Si l'octet de poids fort est identique à l'octet de poids faible (0X0000, 0X5353, 0x2020....) on n'a pas besoin de changer la valeur sur le bus de donnée. On ne met la valeur qu'une fois et on envoie un signal carré sur la broche /WR. Cela va donc vite. C'est en particulier le cas du noir. Dans les autres cas on est obligé de mettre alternativement les poids forts et les poids faibles avant d'envoyer l'impulsion /WR. Cela prend beaucoup plus de temps.