Программирование графики с использованием Direct3D

       

D3DCOLOR


Тип D3DCOLOR применяется в Direct3D для представления цветов. Цвет имеет красную, зеленую, синюю и альфа составляющие. Значение каждой составляющей может варьироваться от нуля (отсутствие компонента) до единицы (максимальная интенсивность компонента).

Фактически дело обстоит несколько сложнее. Тип D3DCOLOR представляется типом DWORD, и поэтому, он не может хранить четыре значения с плавающей точкой. При сохранении значения цветовых составляющих умножаются на 255 и помещаются в соответствующие разряды значения типа DWORD. Для этой цели Direct3D предоставляет макроопределение. Присвоить значение переменной типа D3DCOLOR можно с помощью макроопределения D3DRGB или D3DRGBA:

D3DCOLOR color=D3DRGB(1,1,1); // создаем переменную D3DCOLOR // для белого цвета D3DCOLOR color=D3DRGBA(1,1,1,0); // создаем переменную D3DCOLOR // для белого цвета // с нулевой альфа-составляющей

Значения, передаваемые макроопределениям D3DRGB и D3DRGBA должны быть в диапазоне от нуля до единицы. Макроопределение выполняет умножение и преобразование значений. К тому же не требуется выполнять приведение к типу D3DVALUE, поскольку макроопределение осуществляет приведение типа автоматически.

Чтобы извлечь отдельные цветовые составляющие из значения типа D3DCOLOR применяются функции D3DRMColorGetRed(), D3DRMColorGetGreen(), D3DRMColorGetBlue() и D3DRMColorGetAlpha().



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