Microsoft DirectX 2

         

Новые типы палитры


В DirectX 2, DirectDraw поддерживает палитры с 1, 2, 4 битами в дополнение к 8 битной  палитре, поддерживаемой предыдущей версией. Такие палитры могут быть созданы,  определяя один из новых флажков возможности палитры: DDPCAPS_1BIT, DDPCAPS_2BIT, и DDPCAPS_4BIT. Соответственно флажки возможности были добавлены для поверхностных форматов пикселя: DDPF_PALETTEINDEXED1, DDPF_PALETTEINDEXED2, и DDPF_PALETTEINDEXED4.

Палитра может только быть присоединена к поверхности только с соответствующим форматом пикселя. Например, 2 битная палитра, созданная с флажком DDPCAPS_1BIT может быть присоединена только к поверхности с 1 битом, созданной с форматом пикселя DDPF_PALETTEINDEXED1.

Кроме того, теперь возможно создать индексированные палитры. Индексированная палитра  не содержит RGB цвета, но является индексами  в массиве PALETTEENTRY некоторой целевой палитры. Таблица цвета индексированной палитры - массив 2, 4, 16, или 256 байтов, где каждый байт - индекс в некоторой неопределенной палитре адресата.

Чтобы создать индексированную палитру, определите флажок DDPCAPS_8BITENTRIES при вызове IDirectDraw:: CreatePalette. Например, чтобы создать индексированную палитру с 4 битами, определите DDPCAPS_4BIT | DDPCAPS_8BITENTRIES. При создании индексированной палитры, указатель на массив байтов передается как указатель на массив структур PALETTEENTRY. Указатель на массив байтов должен привестись к LPPALETTEENTRY при вызове IDirectDraw:: CreatePalette.



Содержание раздела