XMCOLOR::XMCOLOR (float,float,float,float) 函数 (directxpackedvector.h)

从四float个参数初始化 的新XMCOLOR实例。

此构造函数从四float个参数初始化 XMCOLOR 的新实例。

注意 此构造函数仅在 C++ 下可用。
 

语法

void XMCOLOR(
  float _r,
  float _g,
  float _b,
  float _a
) noexcept;

参数

_r

存储在 的新实例中的 32 位 ARGB 颜色的 红色 通道的 XMCOLOR规范化值。 此参数的值应位于 [0.0 - 1.0] 范围内。

_g

新 实例中存储的 32 位 ARGB 颜色 绿色 通道的 XMCOLOR规范化值。 此参数的值应位于 [0.0 - 1.0] 范围内。

_b

新实例中存储的 32 位 ARGB 颜色蓝色通道的XMCOLOR规范化值。 此参数的值应位于 [0.0 - 1.0] 范围内。

_a

存储在 的新实例中的 32 位 ARGB 颜色的 alpha 通道的 XMCOLOR规范化值。 此参数的值应位于 [0.0 - 1.0] 范围内。

返回值

备注

在 实例化 XMCOLOR实例期间,此构造函数的所有输入参数都会固定到 [0.0, 1.0] 范围,再乘以 255.0f,然后舍入,然后存储在适当的结构成员中。

以下伪代码演示了此构造函数的操作,该构造函数利用 union 了向量的四个分量的 XMCOLOR ,并在结构定义中为 实例 uint32_t


        XMCOLOR instance;        
	_a1 = min( max( _a, 0.0 ), 1.0 );
	_r1 = min( max( _r, 0.0 ), 1.0 );
	_g1 = min( max( _g, 0.0 ), 1.0 );
	_b1 = min( max( _b, 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)_g1  <<  8) |
                      ( (uint32_t)_b1 );
    

要求

   
目标平台 Windows
标头 directxpackedvector.h

请参阅

引用

XMCOLOR

XMCOLOR 构造函数