IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

question sur affichage texte à l'écran


Sujet :

C

  1. #1
    Membre habitué
    Homme Profil pro
    root
    Inscrit en
    Janvier 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : root

    Informations forums :
    Inscription : Janvier 2013
    Messages : 174
    Points : 144
    Points
    144
    Par défaut question sur affichage texte à l'écran
    Salut à tous.
    J'aimerais savoir comment les textes sont affiché à l'écran.

    J'ai lu, que par exemple avec SDL, on a sdl_ttf, qui utilise la bibliothèque FreeType pour lire les police .ttf et en sortir une image, puis cet image (qui contient notre texte) est affiché à l'écran.

    Et qu'en est-il des autres textes ? (par exemple, en ligne de commande, bios, notre navigateur internet, etc)


    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Bonsoir,

    Et qu'en est-il des autres textes ? (par exemple, en ligne de commande, bios
    Excellente question car le « mode texte » que tu vois sous le BIOS est le mode d'affichage originel des PC ainsi que celui des vieux terminaux physiques, style Minitel ou VT100 et dérivés. Et à dire vrai, sur les tout premiers PC, c'était le seul affichage possible. Dans un tel mode, la carte graphique contient en mémoire un « générateur de caractère », c'est-à-dire la représentation graphique de chacun d'eux dans un format fixe, en général 8×8 ou 8×16 pixels. Dès lors, quand tu déposes un octet dans la mémoire vidéo, ce n'est pas un pixel qui apparaît mais un caractère entier, généré en temps réel par la carte vidéo. En fait, la valeur de l'octet concernée est lue en permanence par l'automate de la carte vidéo, qui s'en sert comme index pour retrouver le bon glyphe dans le générateur (c'est pour cela que les dimensions des caractères suivent toujours une puissance de 2). La valeur ainsi indexée était envoyée à un registre à décalage qui pilotait quasiment directement le canon à électron des tubes cathodiques.

    C'est un système très adapté aux cartes à la fois lentes et limitées en RAM. Ça fonctionne très bien mais la machine en question ne peut afficher que du texte. Elle est incapable de représenter le moindre graphique. Toutefois, ces cartes ont très vite fini par intégrer suffisamment de RAM pour y charger le générateur, ce qui permettait de le modifier. Quand on modifiait ce générateur, tous les caractères affichés à l'écran était modifiés simultanément et automatiquement. On pouvait se servir de cela entre autres pour réserver une plage de caractères inusités et en faire les morceaux d'une petite image. C'était intéressant notamment avec le DRCS des Minitel 2.

    En tout état de cause, c'est toujours l'état initial dans lequel entre une carte graphique de PC après un reset, même si les BIOS modernes passent tout de suite en VGA pour afficher un logo ou d'autres choses. Ce n'est d'ailleurs pas un hasard : le VGA est, à ma connaissance, le dernier mode vidéo sur PC à être encore standardisé. Au dela, il faut s'appuyer sur le pilote de la carte.

    Si tu trouves un émulateur DOS quelque part et que le GW-BASIC est livré avec, tu peux essayer :
    Code Basic : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DEF SEG=&HB800
    POKE 0,65

    Le fait de déposer la valeur « 65 » à l'adresse 0000 va afficher un « A » majuscule en haut à gauche de l'écran.
    Il est important de souligner qu'il ne s'agit pas d'un ordre d'affichage mais bien d'une modification directe de la mémoire vidéo, exploitée par un automate électronique qui indexe un générateur.

    Dans tous les autres cas de figure, tu travailles en mode graphique, c'est-à-dire un affichage composé de pixels. Modifier la mémoire vidéo va agir directement sur ces pixels et plus sur les caractères. À ce stade, afficher du texte consiste simplement à le dessiner à l'écran (ce qui peut d'ailleurs s'avérer coûteux), comme un point ou une ligne. La manière la plus simple consiste à recopier tel quel le générateur de caractères. C'est le cas des fontes bitmaps fixes et c'était la norme sur les 8 bits.

    Très vite, nous avons eu les fontes bitmap à chasse variable, qui fonctionnent selon le même principe, puis les fontes vectorielles. Celles-ci demandent, elles, un vrai rendu en fonction de la taille avant de pouvoir être affichées. Il y a donc une étape intermédiaire et fort probablement une mise en cache du résultat.

    Au delà, pour les applications comme les navigateurs Internet, on effectue d'une part un rendu sur une grande zone en mémoire si elle est disponible. Scroller d'une ligne à la suivante consiste simplement à déplacer la portion affichée de l'image en question. Ensuite, on ajoute des méta-données pour savoir où sont les lignes et ce qu'elles contiennent. Quand on les sélectionne avec la souris, par exemple, on a l'impression que la surbrillance qui s'en suit n'est qu'un filtre appliqué sur ce qui se trouve déjà à l'écran mais, en réalité, si l'affichage a été corrompu pour quelque raison que ce soit, on voit que le fait de les sélectionner provoquent leur régénération.

  3. #3
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    De toute façon le texte c'est des bout de pixel , le TTF c'est juste un format de police (qui utilise les courbes de Bézier)pour pouvoir écrire du texte peu importe sa taille , vu comme le dit Obsidian avec le bitmap font ben c'est efficace seulement avec des puissance de 2 , sinon les caractères risque d’être trop déformé pour qu'on puisse les reconnaitre , et avec tous les avantages/désavantages d'avoir une image matriciel.

Discussions similaires

  1. [MySQL] Interligne sur affichage texte
    Par Judgelolo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/07/2012, 10h01
  2. Question sur affichage différents écran
    Par Paul75 dans le forum Débuter
    Réponses: 5
    Dernier message: 31/05/2011, 14h24
  3. Question sur la résolution d'écran pour iPhone
    Par cprdev dans le forum Développement iOS
    Réponses: 1
    Dernier message: 15/12/2010, 20h32
  4. Question sur affichage ?
    Par m3asmi dans le forum C
    Réponses: 5
    Dernier message: 09/04/2010, 02h17
  5. [CSS] petite question sur un texte spécial.
    Par backwards54 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 06/05/2006, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo