XMVectorSelect-Funktion (directxmath.h)
Führt eine Komponentenauswahl zwischen zwei Eingabevektoren aus und gibt den resultierenden Vektor zurück.
Syntax
XMVECTOR XM_CALLCONV XMVectorSelect(
[in] FXMVECTOR V1,
[in] FXMVECTOR V2,
[in] FXMVECTOR Control
) noexcept;
Parameter
[in] V1
Der erste zu vergleichende Vektor.
[in] V2
Zweiter zu vergleichende Vektor.
[in] Control
Vektormaske zum Auswählen einer Vektorkomponente aus V1 oder V2. Wenn eine Komponente von Control 0 ist, ist die entsprechende Komponente des zurückgegebenen Vektors die Komponente des ersten Vektors. Wenn eine Komponente von Control 0xFF ist, ist die entsprechende Komponente des zurückgegebenen Vektors die Komponente des zweiten Vektors. Ausführliche Informationen zur Funktionsweise der Vektormaske finden Sie unter "Hinweise".
In der Regel ist der für Control verwendete Vektor entweder die Ausgabe einer Vektorvergleichsfunktion (z. B. XMVectorEqual, XMVectorLess oder XMVectorGreater) oder die Ausgabe von XMVectorSelectControl.
Rückgabewert
Gibt das Ergebnis der Komponentenauswahl zurück.
Hinweise
Wenn ein bestimmtes Steuerelement-Bit festgelegt ist, wird das entsprechende Bit von V2 verwendet, andernfalls wird das entsprechende Bit von V1 verwendet. Der folgende Pseudocode veranschaulicht den Betrieb der Funktion:
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;
Der manuelle Aufbau eines Steuerungsvektors ist nicht erforderlich. Es gibt zwei einfache Möglichkeiten, einen geeigneten Steuerungsvektor zu erstellen:
-
Verwenden der XMVectorSelectControl-Funktion zum Erstellen eines Steuerelementvektors.
Unter Verwenden von XMVectorSelect und XMVectorSelectControl finden Sie eine Demonstration der Verwendung dieser Funktion.
-
Der Steuerungsvektor kann mit der XM_SELECT_[0,1]-Konstante erstellt werden (siehe DirectXMath-Bibliothekskonstanten). Beispiel: Im Pseudocode instance von Control mit den Elementen:
Control = { XM_SELECT_0, XM_SELECT_1, XM_SELECT_0, XM_SELECT_1 }
gibt ein Vektorergebnis mit den folgenden Komponenten von V1 und V2 zurück
Result = { V1.X, V2.Y, V1.Z, V2.W }
Plattformanforderungen
Microsoft Visual Studio 2010 oder Microsoft Visual Studio 2012 mit dem Windows SDK für Windows 8. Unterstützt für Win32-Desktop-Apps, Windows Store-Apps und Windows Phone 8-Apps.Anforderungen
Zielplattform | Windows |
Kopfzeile | directxmath.h (einschließlich DirectXMath.h) |