XMVectorSelect 函式 (directxmath.h)
在兩個輸入向量之間執行個別元件選取,並傳回產生的向量。
語法
XMVECTOR XM_CALLCONV XMVectorSelect(
[in] FXMVECTOR V1,
[in] FXMVECTOR V2,
[in] FXMVECTOR Control
) noexcept;
參數
[in] V1
要比較的第一個向量。
[in] V2
要比較的第二個向量。
[in] Control
用來從 V1 或 V2選取向量元件的向量遮罩。 如果 Control 的元件為零,傳回的向量對應元件將會是第一個向量的元件。 如果 Control 的元件0xFF,傳回的向量對應元件將會是第二個向量的元件。 如需向量遮罩運作方式的完整詳細資料,請參閱。
一般而言,用於 Control 的向量會是向量比較函式的輸出 (,例如 XMVectorEqual、 XMVectorLess或 XMVectorGreater) ,或是它是 XMVectorSelectControl的輸出。
傳回值
傳回每個元件選取的結果。
備註
如果設定任何指定的 Control 位,則會使用 來自 V2 的對應位,否則會使用 來自 V1 的對應位。 下列虛擬程式碼示範函式的作業:
XMVECTOR Result;
Result.u[0] = (V1.u[0] & ~Control.u[0]) | (V2.u[0] & Control.u[0]);
Result.u[1] = (V1.u[1] & ~Control.u[1]) | (V2.u[1] & Control.u[1]);
Result.u[2] = (V1.u[2] & ~Control.u[2]) | (V2.u[2] & Control.u[2]);
Result.u[3] = (V1.u[3] & ~Control.u[3]) | (V2.u[3] & Control.u[3]);
return Result;
不需要手動建構控制向量。 建構適當控制向量的簡單方式有兩種:
-
使用 XMVectorSelectControl 函 式來建構控制向量。
如需如何使用此函式的示範,請參閱 使用 XMVectorSelect 和 XMVectorSelectControl 。
-
您可以使用 XM_SELECT_[0,1] 常數來建構控制項向量, (請參閱 DirectXMath 程式庫常數) 。 例如,在虛擬程式碼中,具有 元素的 Control 實例:
Control = { XM_SELECT_0, XM_SELECT_1, XM_SELECT_0, XM_SELECT_1 }
會傳回具有下列V1和V2元件的向量Result
Result = { V1.X, V2.Y, V1.Z, V2.W }
平臺需求
Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 搭配 Windows SDK for Windows 8。 支援 Win32 傳統型應用程式、Windows 市集應用程式和 Windows Phone 8 個應用程式。需求
目標平台 | Windows |
標頭 | directxmath.h (包含 DirectXMath.h) |