XMCOLOR::XMCOLOR (constfloat*) 函数 (directxpackedvector.h)
从四个元素float
数组参数初始化 XMCOLOR 的新实例。
此构造函数从四个元素float
数组参数初始化 XMCOLOR 的新实例。
注意 这仅适用于基于 C++ 的开发。
语法
void XMCOLOR(
const float *pArray
) noexcept;
参数
pArray
四个元素浮点数组,其中包含用于初始化 XMCOLOR 新实例的四个分量的颜色值。
返回值
无
备注
数组元素映射到 XMCOLOR 的新实例的向量组件,如下所示:
向量组件 | Array 元素 | 范围 | 说明 |
---|---|---|---|
a | pArray[0] | 0.0, 1.0 | 在实例化期间,pArray[0] 被固定在 0 和 1 之间,乘以 255.0f,并分配给 (alpha 通道) 。 |
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 |
标头 | directxpackedvector.h |