XMStoreColor 函数 (directxpackedvector.h)

XMVECTOR 存储在 XMCOLOR 中。

语法

void XM_CALLCONV XMStoreColor(
  [out] XMCOLOR   *pDestination,
  [in]  FXMVECTOR V
) noexcept;

参数

[out] pDestination

存储数据的地址。

[in] V

包含要存储的数据的向量。 X 包含红色通道,Y 包含绿色通道,Z 包含蓝色通道,W 包含 Alpha 通道。

返回值

无。

备注

函数采用向量,将其固定在 0.0f 到 1.0f 的范围内,将分量转换为无符号规范化整数格式,将组件打包为 32 位整数,并将结果写入给定地址。 最重要的分量将写入整数的第二大有效八位,依此而过。

以下伪代码演示函数的操作。

XMVector N;

N = saturate(V);
N = scale(N, 255.0f);
N = round(N);

pDestination->c = ((uint32_t)N.w << 24) |
                  ((uint32_t)N.x << 16) |
                  ((uint32_t)N.y << 8) |
                  ((uint32_t)N.z);

对于 Direct3D 10.x 和 Direct3D 11,这与采用浮点 ColorRGBA[4] 参数的函数的分量顺序匹配。


 XMVECTOR Yellow = XMVectorSet( 1.0f, 1.0f, 0.0f, 1.0f );

 XMFLOAT4 clrf;
 XMStoreFloat4( &clrf, Yellow );
 pDeviceContext->ClearRenderTargetView( pRTV, (const float*)clrf );

平台要求

带有 Windows SDK for Windows 8 的 Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。

要求

   
目标平台 Windows
标头 directxpackedvector.h (包括 DirectXPackedVector.h)

请参阅

DirectXMath 库矢量存储函数