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 |