Fungsi XMVectorSelect (directxmath.h)
Melakukan pemilihan per komponen antara dua vektor input dan mengembalikan vektor yang dihasilkan.
Sintaks
XMVECTOR XM_CALLCONV XMVectorSelect(
[in] FXMVECTOR V1,
[in] FXMVECTOR V2,
[in] FXMVECTOR Control
) noexcept;
Parameter
[in] V1
Vektor pertama yang dibandingkan.
[in] V2
Vektor kedua untuk dibandingkan.
[in] Control
Masker vektor digunakan untuk memilih komponen vektor dari V1 atau V2. Jika komponen Kontrol adalah nol, komponen yang sesuai dengan vektor yang dikembalikan akan menjadi komponen vektor pertama. Jika komponen Kontrol 0xFF, komponen yang sesuai dengan vektor yang dikembalikan akan menjadi komponen vektor kedua. Untuk detail lengkap tentang cara kerja topeng vektor, lihat "Komentar".
Biasanya, vektor yang digunakan untuk Kontrol akan menjadi output dari fungsi perbandingan vektor (seperti XMVectorEqual, XMVectorLess, atau XMVectorGreater) atau akan menjadi output dari XMVectorSelectControl.
Nilai kembali
Mengembalikan hasil pilihan per komponen.
Keterangan
Jika ada bit Kontrol yang diberikan yang diatur, bit yang sesuai dari V2 digunakan, jika tidak, bit yang sesuai dari V1 digunakan. Pseudocode berikut menunjukkan pengoperasian fungsi:
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;
Konstruksi manual vektor kontrol tidak diperlukan. Ada dua cara sederhana untuk membangun vektor kontrol yang sesuai:
-
Menggunakan fungsi XMVectorSelectControl untuk membangun vektor kontrol.
Lihat Menggunakan XMVectorSelect dan XMVectorSelectControl untuk demonstrasi tentang bagaimana fungsi ini dapat digunakan.
-
Vektor kontrol dapat dibangun menggunakan konstanta XM_SELECT_[0,1] (lihat Konstanta Pustaka DirectXMath). Sebagai contoh, dalam pseudo-code, instans Kontrol dengan elemen:
Control = { XM_SELECT_0, XM_SELECT_1, XM_SELECT_0, XM_SELECT_1 }
akan mengembalikan Hasil vektor dengan komponen V1 dan V2 berikut
Result = { V1.X, V2.Y, V1.Z, V2.W }
Persyaratan Platform
Microsoft Visual Studio 2010 atau Microsoft Visual Studio 2012 dengan Windows SDK untuk Windows 8. Didukung untuk aplikasi desktop Win32, aplikasi Windows Store, dan aplikasi Windows Phone 8.Persyaratan
Target Platform | Windows |
Header | directxmath.h (termasuk DirectXMath.h) |