Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Getpalette

CuBook05

Функция

Получает информацию о текущей палитре.
 
Синтаксис

#include <graphics.h>
void far getpalette(struct palettetype far *palette);
 
Прототип

graphics.h
 
Описание

Заполняет структуру palettetype, на которую ссылается palette, информацией о размере палитры и ее цветах. Константа MAXCOLORS и структура palettype, используемые getpalette, определены в graphics.h следующим образом:

#define MAXCOLORS 15
struct palettetype{
unsigned char size;
signed char colors[MAXCOLORS+1];
};

size дает количество цветов в палитре текущего драйвера и режима.
colors - это массив цветов данной палитры.

Примечание. Функция getpalette нельзя использовать с драйвером для IBM-8514.
 
Возвращаемое значение

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

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

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

int main(void)
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
struct palettetype pal;
char psize[80],pval[20];
int i,ht;
int y=10';

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

/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
/* получить копию палитры */
getpalette(&pal);
/* преобразовать ее в строку */
sprintf(psize,"Палитра имеет %d изменяемых элементов",pal.size);
/* вывести информацию */
outtextxy(0,y,psize);
if(pal.size != 0)
{
ht = textheight("W");
y += 2*ht;
outtextxy(0,y,"Ниже приведены значения цветов палитры");
y += 2*ht;
for(i=0; i<pal.size, i++,y+=ht)
{
sprintf(pval,"Палитра[%02d]:0x%02X",i,pal.colors[i]);
outtextxy(0,y,pval);
}
}
/* очистка */
getch();
closegraph();
return 0;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

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