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

请参阅

XMCOLOR

XMCOLOR 构造函数