vgaTexte.c (1727B)
1 #include <module.h> 2 #include <types.h> 3 #include <interfaceUtilisateur/console/console.h> 4 #include <pc/vgaTexte/vgaTexte.h> 5 6 MODULE(VgaTexte); 7 8 DEPENDANCE_MODULE(VgaTexte, Console); 9 10 CouleurVgaTexte CouleursVersCouleurVgaTexte(Couleur couleurAv, Couleur couleurAr) { 11 CouleurComposantes composantesAv = CAST_INT_TO_STRUCT(couleurAv, CouleurComposantes); 12 CouleurComposantes composantesAr = CAST_INT_TO_STRUCT(couleurAr, CouleurComposantes); 13 14 CouleurVgaTexte couleurVgaTexte; 15 16 couleurVgaTexte.avClair = ((composantesAv.rouge + composantesAv.vert + composantesAv.bleu) > 3*128); 17 couleurVgaTexte.avRouge = (composantesAv.rouge > 128); 18 couleurVgaTexte.avVert = (composantesAv.vert > 128); 19 couleurVgaTexte.avBleu = (composantesAv.bleu > 128); 20 21 couleurVgaTexte._reserve = 0; 22 couleurVgaTexte.arRouge = (composantesAr.rouge > 128); 23 couleurVgaTexte.arVert = (composantesAr.vert > 128); 24 couleurVgaTexte.arBleu = (composantesAr.bleu > 128); 25 26 return couleurVgaTexte; 27 } 28 29 void vgaTexteAfficherCaractereCouleurPosition(char caractere, uint32 couleurAv, uint32 couleurAr, uint32 x, uint32 y) { 30 etatVgaTexte->memoireVideo[x + y * etatVgaTexte->console.largeur] = (CaractereVgaTexte) { 31 .caractere = caractere, 32 .couleur = CouleursVersCouleurVgaTexte(couleurAv, couleurAr) 33 }; 34 } 35 36 void initVgaTexte (void** etat) { 37 *etat = etatVgaTexte; 38 39 etatVgaTexte->memoireVideo = (CaractereVgaTexte*)0xb8000; 40 41 etatVgaTexte->console.x = 0; 42 etatVgaTexte->console.y = 0; 43 etatVgaTexte->console.largeur = 80; 44 etatVgaTexte->console.hauteur = 25; 45 etatVgaTexte->console.fonctionAffichage = vgaTexteAfficherCaractereCouleurPosition; 46 47 // definirConsoleActive(&etatVgaTexte->console); 48 } 49 50 void deinitVgaTexte (void** etat) { 51 *etat = NULL; 52 }