次の方法で共有


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 で選択するベクターを決定するインデックス。 0 の場合、最初のベクトルの最初のコンポーネントが選択されます。 それ以外の場合は、2 番目のベクターのコンポーネントが選択されます。

[in] VectorIndex1

XMVectorSelect で選択するベクターを決定するインデックス。 0 の場合、最初のベクトルの 2 番目のコンポーネントが選択されます。 それ以外の場合は、2 番目のベクターのコンポーネントが選択されます。

[in] VectorIndex2

XMVectorSelect で選択するベクターを決定するインデックス。 0 の場合、最初のベクトルの 3 番目のコンポーネントが選択されます。 それ以外の場合は、2 番目のベクターのコンポーネントが選択されます。

[in] VectorIndex3

XMVectorSelect で選択するベクターを決定するインデックス。 0 の場合、最初のベクトルの 4 番目のコンポーネントが選択されます。 それ以外の場合は、2 番目のベクターのコンポーネントが選択されます。

戻り値

コントロール ベクターを返します。

注釈

次の擬似コードは、 関数の操作を示しています。

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 コンポーネントを選択し、2 番目のベクトルから 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