Ключевые цвета
"Теория DirectDraw"
<Уголок DirectX>
DirectDraw поддерживает два вида ключевых цветов.
- Ключевой цвет источника. Это цвет или цветовой отрезок, который не
будет копироваться при выполнении блиттинга. Этот ключ указывает на
то, что может быть прочитано с поверхности источника, а что нет.
- Ключевой цвет цели. Это цвет или цветовой отрезок, который будет замещаться
при блиттинге. Этот ключ указывает на то, что может быть замещено на
поверхности, куда происходит блиттинг, а что нет. Если поверхность назначения
иммет ключевой цвет, то только пикселы, которые соответствуют ключевому
цвету будут изменяться или замещаться.
Ключевые цвета указываются исходя из пиксельного формата поверхности.
Если поверхность палтизирована, ключевой цвет указывает индекс или отрезок
индексов цветов в палитре.
Ключевой цвет задается с помощью метода DirectDrawSurface7.SetColorKey(flags
As CONST_DDCKEYFLAGS, val As DDCOLORKEY)
flags - Это флаги, которые задают установку ключевого цвета.
Флаг DDCKEY_COLORSPACE указывает, что задается цветовой отрезок; DDCKEY_DESTBLT
и DDCKEY_DESTOVERLAY указывают, что создается ключевой цвет цели для
операций блиттинга и оверлея соответственно; DDCKEY_SRCBLT и DDCKEY_SRCOVERLAY
- то же самое, но для ключевого цвета источника.
val - это структура DDCOLORKEY, в которой, собственно, и задаются
ключевые цвета.
Вот примеры задания ключевых цветов (Здесь, ck - это структура DDCOLORKEY):
'Пример для палетизированого режима. Ключевой
цвет - №26 в палитре
ck.Low=26
ck.High=26
'Пример для непалетизированого режима. Ключевой
цвет - 255,128,128 в виде RGB
ck.Low=rgb(255,128,128)
ck.High=rgb(255,128,128)
|