XMStoreColor-Funktion (directxpackedvector.h)
Speichert einen XMVECTOR in einer XMCOLOR.
Syntax
void XM_CALLCONV XMStoreColor(
[out] XMCOLOR *pDestination,
[in] FXMVECTOR V
) noexcept;
Parameter
[out] pDestination
Adresse, an der die Daten gespeichert werden sollen.
[in] V
Vektor, der die zu speichernden Daten enthält. X enthält den Roten Farbkanal, Y den Grünen, Z den Blauen und W den Alphakanal.
Rückgabewert
Keine.
Hinweise
Die Funktion übernimmt einen Vektor, klemmt ihn auf den Bereich 0,0f bis 1,0f, konvertiert die Komponenten in ein nicht signiertes, normalisiertes Ganzzahlformat, packt die Komponenten in eine 32-Bit-Ganzzahl und schreibt das Ergebnis an die angegebene Adresse. Die wichtigste Komponente wird in die zweitwidmesten acht Bits der ganzen Zahl geschrieben usw.
Der folgende Pseudocode veranschaulicht den Betrieb der Funktion.
XMVector N;
N = saturate(V);
N = scale(N, 255.0f);
N = round(N);
pDestination->c = ((uint32_t)N.w << 24) |
((uint32_t)N.x << 16) |
((uint32_t)N.y << 8) |
((uint32_t)N.z);
Für Direct3D 10.x und Direct3D 11 entspricht dies der Komponentenreihenfolge für Funktionen, die einen float ColorRGBA[4]-Parameter verwenden.
XMVECTOR Yellow = XMVectorSet( 1.0f, 1.0f, 0.0f, 1.0f );
XMFLOAT4 clrf;
XMStoreFloat4( &clrf, Yellow );
pDeviceContext->ClearRenderTargetView( pRTV, (const float*)clrf );
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 | directxpackedvector.h (einschließlich DirectXPackedVector.h) |