Russian Belarusian English German Japanese Ukrainian

Setrgbpalette

CuBook05

Функция

Позволяет пользователю определять цвета для IBM 8514.
 
Синтаксис

#include <graphics.h>
void far setgbpalette(int colornum,int red, int green, int blue);
 
Прототип

graphics.h
 
Описание

Функция setgbpalette может использоваться с драйверами IBM8514 и VGA.

Параметр colornum определяет элемент палитры, который должен быть загружен, а red, green и blue определяют цветовые составляющие элемента палитры.

Для дисплея IBM8514 (и VGA в цветном режиме 256К) colornum изменяется в интервале от 0 до 255. Для остальных режимов VGA colornum изменяется в интервале от 0 до 15. Используется только младшие байты red, green и blue, и из байта лишь 6 наиболее значащих бит загружаются в палитру.

Замечание. Для совместимости с другими графическими адаптерами IBM, драйвер BGI устанавливает первые 16 элементов палитры IBM8514 в цвета EGA/VGA, используемые по умолчанию. Эти значения могут использоваться без изменений, а могут изменяться с помощью setrgbpalette.
 
Возвращаемое значение

Нет.
 
Переносимость

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

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* выбор драйвера и режима, поддерживающих функцию setrgbpalette */
int graphdriver = VGA, gmode = VGAHI, errorcode;
/* указатель на структуру описания политры */
struct palettetype pal;
int i,ht,y,xmax;

/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
/* получить копию палитры */
getpalette(&pal);
for(i=0;i<pal.size;i++);
{
setrgbpalette(pal.colors[i],i*4,i*4,i*4);
/* вывести сообщение */
ht = getmaxy()/16;
xmax = getmaxx();
y=0;
for(i=0;i<pal.size;i++);
{
setfillstyle(SOLID_FILL,i);
bar(0,y,xmax,y+ht);
y += ht;
}
/* очистка */
getch();
closegraph();
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить