Функция XMCOLOR::XMCOLOR(constfloat*) (directxpackedvector.h)
Инициализирует новый экземпляр XMCOLOR из аргумента массива с четырьмя элементами float
.
Этот конструктор инициализирует новый экземпляр XMCOLOR из из аргумента массива четырех элементов float
.
Синтаксис
void XMCOLOR(
const float *pArray
) noexcept;
Параметры
pArray
Массив с плавающей запятой четырех элементов, содержащий значения цвета, используемые для инициализации четырех компонентов нового экземпляра XMCOLOR.
Возвращаемое значение
None
Remarks
Элементы массива сопоставляются с компонентами вектора нового экземпляра XMCOLOR следующим образом:
Компонент вектора | Элемент Array | Диапазон | Описание |
---|---|---|---|
а | pArray[0] | 0.0, 1.0 | Во время создания экземпляра pArray[0] зажимается в диапазоне от 0 до 1, умножается на 255,0f и присваивается (альфа-каналу). |
r | pArray[1] | 0.0, 1.0 | Во время создания экземпляра pArray[1] зажимается в диапазоне от 0 до 1, умножается на 255,0f, а затем назначается r (красный канал). |
z | pArray[2] | 0.0, 1.0 | Во время создания экземпляра pArray[2] зажимается в диапазоне от 0 до 1, умножается на 255,0f, а затем присваивается g (зеленый канал). |
w | pArray[3] | 0.0, 1.0 | Во время создания экземпляра pArray[3] зажимается между 0 и 1, умножается на 255,0f, а затем присваивается b (синий канал). |
Следующий псевдокод демонстрирует работу этого конструктора, который использует объединение четырех цветовых каналов структуры XMCOLOR с экземпляром uint32_t
в определении структуры :
XMCOLOR instance;
_a1 = min( max( pArray[0], 0.0 ), 1.0 );
_r1 = min( max( pArray[1], 0.0 ), 1.0 );
_g1 = min( max( pArray[2], 0.0 ), 1.0 );
_b1 = min( max( pArray[3], 0.0 ), 1.0 );
_a1 = round ( _a1 * 255.0f );
_r1 = round ( _r1 * 255.0f );
_g1 = round ( _g1 * 255.0f );
_b1 = round ( _b1 * 255.0f );
instance.v = ( (uint32_t)_a1 << 24) |
( (uint32_t)_r1 << 16) |
( (uint32_t)_b1 << 8) |
( (uint32_t)_b1 );
Требования
Целевая платформа | Windows |
Header | directxpackedvector.h |