Visual Basic - мастерская разработчика
Библиотеки

DirectX

Обзоры
DirectDraw
Direct3D
DirectX Audio
DirectPlay
DirectInput
Fido Topics
SourceCode
Tools&Libs

OpenGL

Статьи и учебники
Fido Topics
SourceCode
Tools&Libs

Архив по Glide

Движки

Обзоры
Учебники
SourceCode
Downloads

Создание игр

Ваши игры

Обзорные статьи
Учебники
Fido Topics
SourceCode
Download

Stuff

Программер-Чат

Псевдо-FTP
Disclaimer
Оффтопик

 

Ключевые цвета

"Теория DirectDraw"


DirectDraw поддерживает два вида ключевых цветов.

  • Ключевой цвет источника. Это цвет или цветовой отрезок, который не будет копироваться при выполнении блиттинга. Этот ключ указывает на то, что может быть прочитано с поверхности источника, а что нет.
  • Ключевой цвет цели. Это цвет или цветовой отрезок, который будет замещаться при блиттинге. Этот ключ указывает на то, что может быть замещено на поверхности, куда происходит блиттинг, а что нет. Если поверхность назначения иммет ключевой цвет, то только пикселы, которые соответствуют ключевому цвету будут изменяться или замещаться.

Ключевые цвета указываются исходя из пиксельного формата поверхности. Если поверхность палтизирована, ключевой цвет указывает индекс или отрезок индексов цветов в палитре.

Ключевой цвет задается с помощью метода
C++ - IDirectDrawSurface7::SetColorKey (DWORD dwFlags, LPDDCOLORKEY lpDDColorKey )
VB -  DirectDrawSurface7.SetColorKey(flags As CONST_DDCKEYFLAGS, val As DDCOLORKEY)

dwFlags (flags) - Это флаги, которые задают установку ключевого цвета. Флаг DDCKEY_COLORSPACE указывает, что задается цветовой отрезок; DDCKEY_DESTBLT и DDCKEY_DESTOVERLAY указывают, что создается ключевой цвет цели для операций блиттинга и оверлея соответственно; DDCKEY_SRCBLT и DDCKEY_SRCOVERLAY - то же самое, но для ключевого цвета источника.

lpDDColorKey (val) - это структура DDCOLORKEY, в которой, собственно, и задаются ключевые цвета.

Вот примеры задания ключевых цветов (Здесь, ck - это структура DDCOLORKEY):

'Пример для палетизированого режима. Ключевой цвет - №26 в палитре
ck.Low=26
ck.High=26

'Пример для непалетизированого режима. Ключевой цвет - 255,128,128 в виде RGB (VB)
ck.Low=rgb(255,128,128)
ck.High=rgb(255,128,128)

Posted: 23.01.2k1
Autor: Antiloop
<anti_loop@mail.ru>

 


Проект
Создание Народного Учебника по OpenGL

Участвовать!
Поиск
Найдите статью или файл:


Рассылка
Новости сайта
La Vision в вашем почтовом ящике








Программирование на С++ Delphi и Паскаль
Центр демо-искусства в России