XMStoreColor 函数 (directxpackedvector.h)
语法
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) |