- •Содержание
- •Cleardevice
- •Closegraph
- •Detectgraph
- •Drawpoly
- •Ellipse
- •Fillellipse
- •Fillpoly
- •Floodfill
- •Getarccoords
- •Getaspectratio
- •Getbkcolor
- •Getcolor
- •Getdefaultpalette
- •Getdrivername
- •Getfillpattern
- •Getfillsettings
- •Getgraphmode
- •Getimage
- •Getlinesettings
- •Getmaxcolor
- •Getmaxmode
- •Getmaxx
- •Getmaxy
- •Getmodename
- •Getmoderange
- •Getpallete
- •Getpalettesize
- •Getpixel
- •Gettextsettings
- •Getviewsettings
- •Graphdefaults
- •Grapherrormsg
- •_Graphfreemem
- •_Graphgetmem
- •Graphresult
- •Imagesize
- •Initgraph
- •Installuserdriver
- •Installuserfont
- •Linerel
- •Moverel
- •Outtext
- •Outtextxy
- •Pieslice
- •Putimage
- •Putpixel
- •Rectangle
- •Registerbgidriver
- •Restorecrtmode
- •Setactivepage
- •Setallpalette
- •Setaspectratio
- •Setbkcolor
- •Setcolor
- •Setfillpattern
- •Setfillstyle
- •Setgraphbufsize
- •Setgraphmode
- •Setlinestyle
- •Setpalette
- •Setrgbpalette
- •Settextjustify
- •Settextstyle
- •Setusercharsize
- •Setviewport
- •Setvisualpage
- •Setwritemode
- •Textheight
- •Textwidht
Installuserdriver
-----------------------------------------------------------------
Назначение: Установка нового драйвера устройства.
Синтаксис: #include<graphics.h>
int far installuserdriver( char far *name,
int huge (*detect)(void));
Замечания: installuserdriver позволяет вам добавить новый
драйвер устройства во внутреннюю таблицу BGI.
Параметр name определяет имя файла (.BGI), со-
держащего новый драйвер, а параметр detect ука-
зывает на необязательную функцию автоопределе-
ния драйвера (функция автоопределения не имеет
параметров и возвращает целое число).
Если вам необходимо использовать новую видео
форму SGA, и организация-разработчик снабдила
вас соответствующим драйвером BGI (SGA.BGI), то
простейший способ использования нового драйвера
- это установить его в таблицу с помощью
installuserdriver и затем передать возвращенное
данной функцией значение (назначенный номер
драйвера) непосредственно функции инициализации
графического режима (initgraph).
Другой более общий способ установки нового
драйвера состоит в соединении функции автоопре-
деления, вызываемой initgraph, c функцией конт-
роля наличия SGA (поставщик SGA должен вас
снабдить данной функцией автоопределения). Ког-
да вы устанавливаете драйвер (через вызов
installuserdriver), вам необходимо передать в
качестве параметров адрес данной функции и имя
файла драйвера устройства. После того, как вы
инсталлировали необходимые файл драйвера и
функцию автоопределения, вам достаточно вызвать
initgraph c обычным процессом автоопределения.
Прежде чем initgraph вызовет функцию автоопре-
деления (detectgraph), осуществляется вызов
функции определения SGA. Если функция определе-
ния SGA не найдет соответствующего SGA устройс-
тва, она вернет значение -11 (grError) и
initgraph продолжится в общем режиме определе-
ния устройств (который может содержать вызовы
других новых функций автоопределения в том по-
рядке, в котором они были инсталлированы вызо-
вами функции installuserdriver). Если, однако,
функция автоопределения обнаружит SGA, то она
вернет значение номера режима и initgraph заг-
рузит SGA.BGI и установит устройство в соот-
ветствующий режим рекомендованный функцией ав-
тоопределения, затем вернет управление в вашу
программу.
Одновременно может быть установленно до десяти
драйверов.
Возвращаемое installuserdriver возвращает номер драйвера,
значение данное значение используется в качестве пара-
метра функции initgraph.
Переносимость: Данная функция работает только на IBM PC и сов-
местимых моделях при наличии соответствующих
графических адаптеров.
Смотри также: initgraph, registerbgidriver
Пример
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
int Driver, Mode;
int huge detectSGA(void)
{
int found, defaultmode;
/* Определение устройства ....
found = .....
*/
if (!found) return(grError);
/* Определение текущего графического режима....
defoultmode = ....... */
return(defoultmode);
}
main()
{
Driver = installuserdriver("SGA", detectSGA);
if ( gr0k != graphresult() )
{ /* Переполнение таблицы */
printf( "Ошибка инсталлирования"
" драйвера SGA.\n");
exit(1);
}
Driver = DETECT; /* автоопределение */
initgraph( &Driver, &Mode, "");
if ( gr0k != graphresult() ) exit(1);
outtext( " Драйвер установлен");
getchar();
closegraph();
}
-----------------------------------------------------------------
