Установка палитр

"Теория DirectDraw"

<Уголок DirectX>


Палитры могут быть установлены для любой палетизированой поверхности (главной поверхности, заднего буфера, оффскринных поверхностей или буферов для текстур). Только палитры, установленные для главной поверхности будут воздействовать на системную палитру. Это важно, потому что когда DirectDraw совершает блиттинг, он никогда не производит изменение цветов. Любые палитры, установленные для источника или цели блиттинга игнорируются. Палитры неглавных поверхностей предназначены для использования Direct3D приложений.

Палитры могут использоваться одновременно множеством поверхностей. Одна и та же палитра может быть установлена для главной поверхности и задних буферов в цепи флиппинга или быть распределена между множеством поверхностей для текстур.

Когда приложение устанавливает палитру для поверхности методом DirectDrawSurface7.SetPalette, счетчик количества копий палитры увеличивается. Когда счетчик поверхности уменьшится до 0, то есть поверхность уничтожится, счетчик копий палитры уменьшается на единицу. Также он уменьшается, когда палитра открепляется от поверхности, путем передачи Nothing при вызове SetPalette. Когда счетчик копий палитры достигнет 0, объект палитры уничтожается.

Если метод DirectDrawSurface7.SetPalette вызывается несколько раз с указателями на те же поверхности и на те же палитры, счетчик копий палитры увеличивается только один раз. Все последующие подобные вызовы не влияют на счетчик.


>>> Реклама <<<