XMVectorPermute 函数 (directxmath.h)

将两个向量中的组件进行分割,以创建新的向量。

语法

XMVECTOR XM_CALLCONV XMVectorPermute(
  [in] FXMVECTOR V1,
  [in] FXMVECTOR V2,
       uint32_t  PermuteX,
       uint32_t  PermuteY,
       uint32_t  PermuteZ,
       uint32_t  PermuteW
) noexcept;

参数

[in] V1

第一个向量。

[in] V2

第二个向量。

PermuteX

索引形式 0-7,指示应从何处复制新矢量的 X 分量。

PermuteY

索引形式 0-7,指示应从何处复制新向量 Y 分量。

PermuteZ

索引形式 0-7,指示应从何处复制新向量的 Z 分量。

PermuteW

索引形式 0-7,指示应从何处复制新向量 W 组件。

返回值

返回由组合源向量产生的可变向量。

注解

如果所有 4 个索引仅引用单个向量 (,即它们都位于范围 0-3 中或范围 4-7) 中,请改用 XMVectorSwizzle 来提高性能。

提供的XM_PERMUTE_常量用作 PermuteXPermuteY、PermuteZPermuteW输入值。

对于常量 PermuteX/Y/Z/W 参数,使用 XMVectorPermute 的模板形式会更有效:


template<uint32_t PermuteX, uint32_t PermuteY, uint32_t PermuteZ, uint32_t PermuteW>
    XMVECTOR XMVectorPermute(FXMVECTOR V1, FXMVECTOR V2)

Example: XMVectorPermute<XM_PERMUTE_0Z, XM_PERMUTE_1X, XM_PERMUTE_0W, XM_PERMUTE_1Y>( V1, V2 );
   
注意 此版本的 XMVectorPermute DirectXMath 是新的。 XNAMath v2.x 库使用了 XMVectorPermuteControl一个控件 XMVECTOR ,而不是 4 个索引, XMVectorPermute并为XM_PERMUTE_x常量使用不同的值。
 

平台要求

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

要求

   
目标平台 Windows
标头 directxmath.h (包括 DirectXMath.h)

另请参阅

分量向量函数

XMVectorSwizzle