XMVectorSelectControl 函数 (directxmath.h)

定义要在 XMVectorSelect 中使用的控制向量。

语法

XMVECTOR XM_CALLCONV XMVectorSelectControl(
  [in] uint32_t VectorIndex0,
  [in] uint32_t VectorIndex1,
  [in] uint32_t VectorIndex2,
  [in] uint32_t VectorIndex3
) noexcept;

参数

[in] VectorIndex0

确定将在 XMVectorSelect 中选择哪个向量的索引。 如果为零,则将选择第一个矢量的第一个分量。 否则,将选择第二个向量的分量。

[in] VectorIndex1

确定将在 XMVectorSelect 中选择哪个向量的索引。 如果为零,则将选择第一个矢量的第二个分量。 否则,将选择第二个向量的分量。

[in] VectorIndex2

确定将在 XMVectorSelect 中选择哪个向量的索引。 如果为零,则将选择第一个矢量的第三个分量。 否则,将选择第二个向量的分量。

[in] VectorIndex3

确定将在 XMVectorSelect 中选择哪个向量的索引。 如果为零,则将选择第一个矢量的第四个分量。 否则,将选择第二个向量的分量。

返回值

返回控制向量。

注解

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

XMVECTOR    ControlVector;
const uint32_t  ControlElement[] =
            {
                XM_SELECT_0,
                XM_SELECT_1
            };

assert(VectorIndex0 < 2);
assert(VectorIndex1 < 2);
assert(VectorIndex2 < 2);
assert(VectorIndex3 < 2);

ControlVector.u[0] = ControlElement[VectorIndex0];
ControlVector.u[1] = ControlElement[VectorIndex1];
ControlVector.u[2] = ControlElement[VectorIndex2];
ControlVector.u[3] = ControlElement[VectorIndex3];

return ControlVector;

平台要求

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

示例

使用 XMVectorSelectControl

在此示例中, XMVectorSelectControl 用于生成控件掩码,该掩码将从第一个向量中选择 x 和 w 分量,从第二个矢量中选择 y 和 z 分量。

矢量结果将为 ( 3.0f、5.0f、5.0f、3.0f ) 。

XMVECTOR three = XMVectorReplicate( 3.0f );
XMVECTOR five = XMVectorReplicate( 5.0f );

XMVECTOR control = XMVectorSelectControl( 0, 1, 1, 0 );
XMVECTOR result = XMVectorSelect( three, five, control );

要求

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

另请参阅

分量向量函数

XMVectorSelect