Установка и чтение параметров рисования
void setcolor(int color);
Устанавливает текущий цвет рисования, используя палитру. Можно указать один из цветов
BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY,
LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE или
произвольный цвет с помощью макроса COLOR(r,g,b), где r, g, b - целые от 0 до 255.
int getcolor(void);
Возвращает текущий цвет рисования. С помощью макросов IS_BGI_COLOR(c) и IS_RGB_COLOR(c) можно узнать, цвет выбран из палитры или покомпонентно.
void setfillstyle(int pattern, int color, int bkcolor= -1);
Устанавливает шаблон, цвет заполнения и опционально цвет фона (чтобы не вызывать отдельно setbkcolor).
Шаблон может быть следующим: EMPTY_FILL, SOLID_FILL, LINE_FILL, LTSLASH_FILL, SLASH_FILL, BKSLASH_FILL, LTBKSLASH_FILL, HATCH_FILL, XHATCH_FILL, INTERLEAVE_FILL, WIDE_DOT_FILL,
CLOSE_DOT_FILL, USER_FILL.
void setlinestyle(int linestyle, unsigned apattern, int thickness);
Устанавливает текущие толщину и тип линии.
Стиль может быть одним из следующих: SOLID_LINE, DOTTED_LINE, CENTER_LINE, DASHED_LINE, USERBIT_LINE.
Для USERBIT_LINE указывается 2 аргумент - шаблон из 16 бит.
void setwritemode(int mode);
Устанавливает режим записи для рисуемой линии: COPY_PUT, XOR_PUT, OR_PUT, AND_PUT, NOT_PUT.
По умолчанию установлен режим замены COPY_PUT. Режим XOR_PUT можно использовать для рисования указателей,
меняющих цвет в зависимости от фона, и "резинок" для выделения области.
void getaspectratio(int *xasp, int *yasp);
Возвращает текущий коэффициент сжатия, используемый при рисовании окружностей.
void setaspectratio(int xasp, int yasp);
Изменяет значение по умолчанию коэффициента сжатия при рисовании окружностей (реализовано не полностью)
void getbkcolor(void);
Возвращает текущий цвет фона.
void setbkcolor(int color);
Устанавливает текущий цвет фона, используя палитру. Для прозрачного фона нужно указать NO_COLOR.
int getmaxcolor(void);
Возвращает максимальное значение цвета, которое можно передать функции setcolor (15).
void setfillpattern(char *upattern, int color);
Устанавливает определенный пользователем шаблон заполнения 8x8 (USER_FILL).
void getfillpattern(char *pattern);
Копирует в память описанный пользователем шаблон заполнения.
void getfillsettings(struct fillsettingstype *fillinfo);
Получает информацию о текущих шаблоне и цвете заполнения в структуру:
struct fillsettingstype {
int pattern;
int color;
};
void getlinesettings(struct linesettingstype *lineinfo);
Получает текущий тип линии, шаблон и толщину в структуру:
struct linesettingstype {
int linestyle;
unsigned int upattern;
int thickness;
};
void setviewport(int left, int top, int right, int bottom, int clip);
Устанавливает для графического вывода текущее графическое окно (viewport), центром координат становится точка (left,top). При clip=0 происходит только смещение координат, а для clip=1 рисование происходит только в пределах указанного окна.
void getviewsettings(struct viewporttype *viewport);
Получает информацию о текущем окне (viewport) в структуру:
struct viewporttype {
int left;
int top;
int right;
int bottom;
int clip;
};
void clearviewport(void);
Очищает текущее окно (viewport).
void setpalette(int colornum, int color);
Изменяет один цвет палитры (цвета на экране не изменяются).
void setrgbpalette(int colornum,int red, int green,int blue);
Позволяет пользователю определять цвета (для совместимости с IBM 8514)
void setallpalette(struct palettetype *palette);
Изменяет все цвета палитры на заданные в структуре:
struct palettetype {
unsigned char size;
signed char colors[16];
};
void getpalette(struct palettetype *palette);
Получает информацию о текущей палитре.
struct palettetype *getdefaultpalette(void);
Возвращает палитру по умолчанию.
int getpalettesize(void);
Возвращает количество цветов в палитре.
void setactivepage(int page);
Устанавливает активную для графического вывода страницу (0..3). Можно использовать для улучшенной анимации.
void setvisualpage(int page);
Устанавливает номер отображаемой страницы (0..3). Можно использовать для улучшенной анимации.
void swapbuffers();
Смена страниц для режима буферизации. Активная страница становится видимой, а видимая - активной. При создании окна в режиме буферизации автоматически вызывается
setactivepage(1);
После завершения рисования каждого кадра анимации нужно вызывать функцию swapbuffers()