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)

Weitere Informationen

Vektorspeicherfunktionen der DirectXMath-Bibliothek