initgraph

 Функция            Инициализирует графическую систему.

 Синтаксис          #include 
                    void far  initgraph(int  far  *graphdriver,
                     int far *graphmode, char far *pathtodriver)

 Файл, содержащий   graphics.h
 прототип

 Описание           initgraph инициализирует графическую  систему
                    путем загрузки графического драйвера с диска
                    (или подтверждения работоспособности  заре-
                    гестрированного драйвера)  и переводит сис-
                    тему в графический режим.
                    Для того чтобы запустить графическую систе-
                    му, прежде всего вызовите функцию initgraph.
                    initgraph загружает  графический  драйвер и
                    переводит систему в графический режим.
                    Вы можете  указать  графической системе ис-
                    пользовать конкретный графический драйвер и
                    режим,  или,  чтобы она сама определила в процессе
                    работы привязанный к данной системе  видеоадаптер
                    и выбратла соответствующий драйвер. Если вы указа-
                    ли   initgraph   автоопределение   она   вызывает
                    detectgraph для выбора  графического  драйвера  и
                    режима.  initgraph  также  переустанавливает  все
                    графические параметры в их  значения  по  умолча-
                    нию (текущая  позиция, палитра, цвет, окно экрана,
                    и т. д.) и  переустанавливает  grapgresult  в  0.
                    Обычно  initgraph  загружает  графический драйвер
                    путем выделения памяти для  драйвера  (с  помощью
                    функции _graphgetmem), затем загружает соответст-
                    вующий файл .BGI с диска. В противоположность этой
                    схеме динамической загрузки , вы можете  присоеди-
                    нить файл графического драйвера (или несколько та-
                    ких  файлов)  непосредственно  выполняемым файлом.
                    Смотрите более  подробную  информацию  в  BGIOBJ.
                    pathodriver   определяeт   маршрут   по   которому
                    initgraph  будет  искать   графические   драйверы.
                    initgraph сначала ищет по маршруту,  определяемому
                    в  pathtodriver,  затем  ( если их там нет) ищет в
                    текущей     директории.     Следовательно,    если
                    pathtodriver равен NULL,  файлы  драйвера  (*.BGI)
                    должны  быть  в текущей директории. Таким же путем
                    settexstyle будет искать файлы (.CHR),  содержащие
                    шрифты.

                    *graphdriver -  целое,  которое  определяет исполь-
                    зуемый  графический  драйвер. Вы можете задать его
                    значение, используя константу graphics_driver пе-
                    речисляемого типа, определенного в  graphics.h  и
                    показанного в следующей таблице.
                    ________________________________________
                    graphics_drivers
                    константа           численное значение
                    __________________________________________

                    DETECT              0 (запрашивает
                                           автоопределе-
                                           ние драйвера)
                    CGA                 1
                    MCGA                2
                    EGA                 3
                    EGA64               4
                    EGAMONO             5
                    IBM8514             6
                    HERCMONO            7
                    ATT400              8
                    VGA                 9
                    PC3270              10
                    __________________________________________
                    *graphmode  -  целое,  которое определяет исходный
                    графический  режим  (если  *graphdriver  не  равен
                    DETECT, *graphmode  устанавливается  в  наивысшее
                    разрешение, допустимое для данного  драйвера).  Вы
                    можете задать значение *graphmode, используя конс-
                    танту  перечисляемого типа graphics_modes, опреде-
                    ленную в graphics.h и показанную в следующей таб-
                    лице:
 ---------------------------------------------------------------
 Графическ.  graphics   Знач.  Колонок     Палитра  Страниц
 драйвер     _modes            * столбцов
 ---------------------------------------------------------------
 CGA         CGAC0       0     320 x 200   C0          1
             CGAC1       1     320 x 200   C1          1
             CGAC2       2     320 x 200   C2          1
             CGAC3       3     320 x 200   C3          1
             CGAHI       4     640 x 200   2цвета      1

 MCGA        MCGAC0      0     320 x 200   C0          1
             MCGAC1      1     320 x 200   C1          1
             MCGAC2      2     320 x 200   C2          1
             MCGAC3      3     320 x 200   C3          1
             MCGAMED     4     640 x 200   2цвета      1
             MCGAHI      5     640 x 480   2цвета      1

 EGA         EGALO       0     640 x 200   16цветов    4
             EGAHI       1     640 x 350   16цветов    2

 EGA64       EGA64LO     0     640 x 200   16цветов    1

             EGA64HI     1     640 x 350   4 цвета     1

 EGA-        EGAMONOHI   3     640 x 350   2 цвета     1*
 MONO        EGAMONOHI   3     640 x 350   2 цвета     2**

 HERC        HERCMONOHI  0     720 x 348   2 цвета     2

 AT400       ATT400C0    0     320 x 200   C0          1
             ATT400C1    1     320 x 200   C1          1
             ATT400C2    2     320 x 200   C2          1
             ATT400C3    3     320 x 200   C3          1
             ATT400MED   4     640 x 200   2 цвета     1
             ATT400HI    5     640 x 400   2 цвета     1

 VGA         VGALO       0     640 x 200   16цветов    2
             VGAMED      1     640 x 350   16цветов    2
             VGAHI       2     640 x 380   16цветов    1

 PC3270      PC3270HI    0     720 x 350   2 цвета     1

 IBM8514     IBM8514HI   0     640 x 480   256цветов
             IBM8514LO   0    1024 x 768   256цветов

  *  64К на карте EGAMONO
 **  256К на карте EGAMONO
 --------------------------------------------------------------

                    Замечание:Основная причина вызова  непосредственно
                    detectgraph состоит в переопределении графического
                    режима,    который    detectgraph     рекомендовал
                    initgraph.

                    В приведенной таблице, элементы столбца  "Палитра"
                    C0,  C1, C2 и C3 относятся к четырем ранее опреде-
                    ленным четырехцветным палитрам, действительным для
                    CGA и совместимых систем. Вы можете  выбрать  цвет
                    фона(  элемент #0 ), но остальные цвета не меняют-
                    ся. Эти палитры подробно описаны в  главе  5  "Ви-
                    део-функции"  в "Руководстве пользователя по Turbo
                     C " и суммированы в следующей таблице:
     -----------------------------------------------------------
     Номер         Константа присвоенная значению пиксела
     палитры          1               2               3
     -----------------------------------------------------------
          0     CGA_LIGHTGREEN   CGA_LIGHTRED       CGA_YELLOW
          1     CGA_LIGHTCYAN    CGA_LIGHTMAGENTA   CGA_WHITE
          2     CGA_GREEN        CGA_RED            CGA_BROWN
          3     CGA_CYAN         CGA_MAGENTA        CGA_LIGHTGRAY
     ------------------------------------------------------------
                    После обращения к initgraph *graphdriver  устанав-
                    ливается   в   текущий   графический   драйвер,  а
                    *graphmode в текущий графический режим.

 Возвращаемое        initgraph всегда устанавливает внутренний
     значение        код ошибки. В случае успешного выполнения
                     код равен 0. В случае же ошибки
                     *graphdriver устанавливается в -2, -3, -4
                     или -5, и graphresult возвращает соответс-
                     твующие значения, перечисленные ниже:

                     -2    не может определить тип графической
                           карты (grNotDetected)
                     -3    не может найти файл драйвера
                           (grFileNotFound)
                     -4    неправильный драйвер (grInvalidDriver)
                     -5    недостаточно памяти для загрузки
                           драйвера (grNoLoadMem)

 Переносимость      Функция уникальна для Turbo C++. Она работает
                    только на компьютерах IBM PC и совместимых с ними,
                    оснащенных дисплейными адаптерами, поддерживающими
                    графический режим.

 Смотри также        closegraph detectgraph getdefaultpalette
                     getdrivername getgraphmode getmoderange
                     graphdefault _graphgetmem graphresult
                     installuserdriver registerbgidriver
                     registerbgifont restorecrtmode
                     setgraphbufsize setgraphmode
 Пример:

 #include 
 #include 
 #include 
 #include 

 int main(void)
 {
 /* требуется автоопределение */
 int graphdriver = DETECT, gmode, errorcode;

 /* мнмцмализация графического режима */
 initgraph(&graphdriver,&gmode,"");

 /* получение результата инициализации */
 errorcode = graphresult();
 if(errorcode != grOk)  /* если ошибка */
 {
    printf("Ошибка :%s\n",grapherrormsg(errorcode));
    printf("Для останова нажмите любую клавишу\n");
    getch();
    exit(1);  /* завершение с кодом ошибки */
 }
 line(0,0,getmaxx(),getmaxy());

 getch();
 closegraph();
 return 0;
 }