INITGRAPH |
Initie le graphique |
Turbo C 1.5+ |
graphics.h |
Syntaxe
void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver);
|
Paramètres
Nom |
Description |
pilote |
Ce paramètre retourne le numéro du pilote supporté. |
mode |
Ce paramètre retourne le plus haut mode vidéo supporté. |
chemin |
Ce paramètre permet de définir le répertoire où sont situés les fichiers de pilote «BGI». |
Description
Cette fonction permet d'initialiser le système graphique.
Remarques
- La fonction initgraph initialise le système graphique en chargeant un pilote graphique à partir du disque (ou en validant un pilote enregistré) et en mettant le
système en mode graphique. Pour démarrer le système graphique, vous appelez d'abord la fonction initgraph. La fonction initgraph charge le pilote graphique et
met le système en mode graphique. Vous pouvez indiquer à initgraph d'utiliser un pilote graphique et un mode particuliers, ou de détecter automatiquement la carte
vidéo connectée au moment de l'exécution et de choisir le pilote correspondant.
- Si vous dites à initgraph de détecter automatiquement, il appelle detectgraph pour sélectionner un pilote graphique et un mode.
La fonction initgraph réinitialise également tous les paramètres graphiques à leurs valeurs par défaut (position actuelle, palette, couleur, fenêtre d'affichage,...) et
réinitialise la fonction graphresult à 0.
- Normalement, la fonction initgraph charge un pilote graphique en allouant de la mémoire au pilote (via _graphgetmem), puis en
chargeant le fichier .BGI approprié à partir du disque. Comme alternative à ce schéma de chargement dynamique, vous pouvez lier un fichier de pilote graphique (ou
plusieurs d'entre eux) directement dans votre fichier de programme exécutable.
- Le paramètre pathtodriver spécifie le chemin du répertoire où initgraph recherchera les pilotes graphiques. La fonction initgraph regarde d'abord dans
le chemin spécifié dans pathtodriver, puis (s'ils n'y sont pas) dans le répertoire courant. Par conséquent, si pathtodriver est NULL, les fichiers du pilote (*.BGI)
doivent se trouver dans le répertoire courant. C'est également le chemin que settextstyle recherchera pour les fichiers de police de
caractères barrés (*.CHR).
- *graphdriver est un entier spécifiant le pilote graphique à utiliser. Vous pouvez lui attribuer une valeur à l'aide d'une constante du type d'énumération
graphics_drivers, définie dans graphics.h et répertoriée dans le tableau suivant :
Constante graphics_drivers |
Valeur numérique |
DETECT |
0 (requis pour l'autodétection) |
CGA |
1 |
MCGA |
2 |
EGA |
3 |
EGA64 |
4 |
EGAMONO |
5 |
IBM8514 |
6 |
HERCMONO |
7 |
ATT400 |
8 |
VGA |
9 |
PC3270 |
10 |
- *graphmode est un entier spécifiant le mode graphique initial (sauf si *graphdriver est égal à DETECT, auquel cas *graphmode est défini
par initgraph sur la plus haute résolution disponible pour le pilote détecté). Vous pouvez attribuer une valeur à *graphmode à l'aide d'une constante du type
d'énumération graphics_modes, définie dans graphics.h et répertoriée dans le tableau suivant :
Pilote graphiques |
graphics_modes |
Valeur |
Colonne x Lignes |
Palette |
Pages |
CGA |
CGAC0 |
0 |
320x200 |
C0 |
1 |
CGAC1 |
1 |
320x200 |
C1 |
1 |
CGAC2 |
2 |
320x200 |
C2 |
1 |
CGAC3 |
3 |
320x200 |
C3 |
1 |
CGAHI |
4 |
640x200 |
2 couleurs |
1 |
MCGA |
MCGAC0 |
0 |
320x200 |
C0 |
1 |
MCGAC1 |
1 |
320x200 |
C1 |
1 |
MCGAC2 |
2 |
320x200 |
C2 |
1 |
MCGAC3 |
3 |
320x200 |
C3 |
1 |
MCGAMED |
4 |
640x200 |
2 couleurs |
1 |
MCGAHI |
5 |
640x480 |
2 couleurs |
1 |
EGA |
EGALO |
0 |
640x200 |
16 couleurs |
4 |
EGAHI |
1 |
640x350 |
16 couleurs |
2 |
EGA64 |
EGA64LO |
0 |
640x200 |
16 couleurs |
1 |
EGA64HI |
1 |
640x350 |
4 couleurs |
1 |
EGAMONO |
EGAMONOHI |
3 |
640x350 |
2 couleurs |
1 |
EGAMONOHI |
3 |
640x350 |
2 couleurs |
2 |
HERC |
HERCMONOHI |
0 |
720x348 |
2 couleurs |
2 |
ATT400 |
ATT400C0 |
0 |
320x200 |
C0 |
1 |
ATT400C1 |
1 |
320x200 |
C1 |
1 |
ATT400C2 |
2 |
320x200 |
C2 |
1 |
ATT400C3 |
3 |
320x200 |
C3 |
1 |
ATT400MED |
4 |
640x200 |
2 couleurs |
1 |
ATT400HI |
5 |
640x400 |
2 couleurs |
1 |
VGA |
VGALO |
0 |
640x200 |
16 couleurs |
2 |
VGAMED |
1 |
640x350 |
16 couleurs |
2 |
VGAHI |
2 |
640x480 |
16 couleurs |
1 |
PC3270 |
PC3270HI |
0 |
720x350 |
2 couleurs |
1 |
IBM8514 |
IBM8514HI |
0 |
640x480 |
256 couleurs |
|
IBM8514LO |
0 |
1024x768 |
256 couleurs |
|
- Les paramètres graphdriver et graphmode doivent être définis sur des valeurs valides des tableaux ci-dessus, sinon vous obtiendrez des
résultats imprévisibles. L'exception est graphdriver = DETECT.
- Dans le tableau précédent, les listes de palettes C0, C1, C2 et C3 font référence aux quatre palettes de quatre couleurs prédéfinies disponibles sur les
systèmes CGA (et compatibles). Vous pouvez sélectionner la couleur de fond (entrée #0) dans chacune de ces palettes, mais
les autres couleurs sont fixes. Voici un résumé des palettes dans le tableau suivant :
Numéro de palette |
Couleur attribuée à la valeur du pixel |
1 |
2 |
3 |
0 |
LIGHTGREEN |
LIGHTRED |
YELLOW |
1 |
LIGHTCYAN |
LIGHTMAGENTA |
WHITE |
2 |
GREEN |
RED |
BROWN |
3 |
CYAN |
MAGENTA |
LIGHTGRAY |
- Après un appel à initgraph, *graphdriver est défini sur le pilote graphique actuel et *graphmode est défini sur le mode graphique actuel.
- La fonction initgraph définit toujours le code d'erreur interne ; en cas de succès, il définit le code sur 0. Si une erreur s'est produite, *graphdriver
est défini sur -2, -3, -4 ou -5, et la fonction graphresult renvoie la même valeur, comme indiqué ici :
Valeur |
Description |
-2 |
Cette valeur permet d'indiquer qu'il est impossible de détecter une carte graphique. |
-3 |
Cette valeur permet d'indiquer qu'il ne peut pas trouver le fichier du pilote. |
-4 |
Cette valeur permet d'indiquer que le pilote est invalide. |
-5 |
Cette valeur permet d'indiquer la mémoire est insuffisante pour charger le pilote. |
- La fonction initgraph fonctionne uniquement avec les compatibles IBM PC et compatibles équipés d'adaptateurs
d'affichage graphiques pris en charge.
Exemple
L'exemple suivant permet d'effectuer la détection du mode graphique et recherche un mode EGA :
- #include <graphics.h>
- #include <stdio.h>
- #include <conio.h>
- #include <process.h>
-
- main() {
- int g_driver, g_mode, g_error;
- detectgraph(&g_driver, &g_mode);
- if(g_driver < 0) {
- printf("Aucun matériel graphique détecté !\n");
- exit(1);
- }
- printf("Pilote graphiques détectés, mode I%d\n",g_driver,g_mode);
- getch();
- if (g_mode == EGAHI) g_mode = EGALO; /* mode prioritaire si EGA détecté */
- initgraph (&g_driver, &g_mode, "");
- g_error = graphresult();
- if(g_error < 0) {
- printf("Erreur dans initgraph : %s.\n",grapherrormsg(g_error));
- exit(1);
- }
- bar(0,0, getmaxx()/2, getmaxy());
- getch();
- closegraph();
- }
Dernière mise à jour : Vendredi, le 26 Février 2021