void far initgraph(int far *driver, int far *mode, char far *path)
Функция initgraph() используется для инициализации графической системы и загрузки подходящего графического драйвера. Функция initgraph() загружает в память графический драйвер, соответствующий номеру, на который указывает параметр driver. Без графического драйвера, загруженного в память, никакие графические функции не могут выполняться. Используемый графическими функциями видеорежим задается в виде числа, на которое указывает параметр mode. Наконец, путь к драйверу может быть задан в строке path. Если не задан никакой путь, то поиск осуществляется в текущем каталоге.
Графические драйверы содержатся в файлах с расширением BGI, которые должны находиться в распоряжении системы. Тем не менее нет причины беспокоиться о фактическом имени файла, поскольку достаточно задать драйвер его номером. В файле graphics.h содержатся несколько макросов, используемых для этих целей:
| Макрос | Эквивалент |
|---|---|
| DETECT | 0 |
| CGA | 1 |
| MCGA | 2 |
| EGA | 3 |
| EGA64 | 4 |
| EGAMONO | 5 |
| IBM8514 | 6 |
| HERCMONO | 7 |
| ATT400 | 8 |
| VGA | 9 |
| PC3270 | 10 |
При использовании DETECT функция initgraph() автоматически определяет тип видеоустройства системы и определяет видеорежим с наибольшим разрешением. В этом случае по возвращении функции параметр driver будет содержать видеодрайвер.
Значение параметра mode должно совпадать с одним из приведенных ниже. Следует обратить внимание, что значение, на которое указывает параметр mode, не является той же самой величиной, что была определена с помощью процедуры BIOS. Вместо этого величина, использовавшаяся при вызове BIOS для инициализации видеорежима, была создана функцией initgraph(), используя как драйвер, так и режим.
| Драйвер | Режим | Эквивалент | Разрешение |
|---|---|---|---|
| CGA |
CGAC0 CGAC1 CGAC2 CGAC3 CGAHI |
0 1 2 3 4 |
320x200 320x200 320x200 320x200 640x200 |
| MCGA |
MCGAC0 MCGAC1 MCGAC2 MCGAC3 MCGAMED MCGAHI |
0 1 2 3 4 5 |
320x200 320x200 320x200 320x200 640x200 640x480 |
| EGA |
EGALO EGAHI |
0 1 |
640x200 640x350 |
| EGA64 |
EGA64LO EGA64HI |
0 1 |
640x200 640x350 |
| EGAMONO | EGAMONOHI | 3 | 640x350 |
| HERC | HERCMONOHI | 0 | 720x348 |
| ATT400 |
ATT400C0 ATT400C1 ATT400C2 ATT400C3 ATT400MED ATT400HI |
0 1 2 3 4 5 |
320x200 320x200 320x200 320x200 640x200 640x400 |
| VGA |
VGALO VGAMED VGAHI |
0 1 2 |
640x200 640x350 640x480 |
| PC3270 | PC3270HI | 0 | 720x350 |
| IBM8514 |
IBM8514HI IBM8514LO |
1 0 |
1024x768 640x480 |
