logo
Литература_1 / photon_old

Образы на основе палитры

Образы на основе палитры обеспечивают быстрый, компактный способ рисования образов. Перед тем как прорисовывать образ на основе палитры, Вы должны установить либо аппаратную, либо программную палитру, чтобы задать цвета образа. Установка аппаратной палитры изменяет физическую палитру. Весь набор цветов функции PgSetFillColor() выбирается из этой палитры. Другие процессы продолжают выбирать цвета из глобальной палитры Photon'овского микроGUI и могут выглядеть неверно. Когда Вы отключаете аппаратную палитру, остальные процессы возвращаются к нормальному отображению без перерисовки. Вы должны всегда отключать аппаратную палитру, когда Ваше окно теряет фокус.

Установка программной палитры позволяет Вам переопределить, какие цвета интерпретируются для данного рисуемого контекста без изменения физической палитры. Все цвета программной палитры отображаются на физическую палитру.

 Если Ваша физическая палитра использует больше цветов, чем поддерживает Ваша графическая карта, некоторые цвета опускаются, и образ не будет выглядеть столь красиво.

Данные образа (байты или полубайты) являются индексом в текущей палитре. Например:

PgColor_t ImagePalette[256];

char *ImageData;

PhPoint_t ImageSize;

int ImageBPL;

void DrawYourImage( PhPoint_t pos ) {

PgSetPalette( ImagePalette, 0, 0, 256, Pg_PALSET_SOFT );

PgDrawImage( ImageData, Pg_IMAGE_PALETTE_BYTE, pos, ImageSize, ImageBPL, 0 );

}

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4