Bagikan melalui


Fungsi XMStoreFloat4x4 (directxmath.h)

Menyimpan XMMATRIX dalam XMFLOAT4X4.

Sintaks

void XM_CALLCONV XMStoreFloat4x4(
  [out] XMFLOAT4X4 *pDestination,
  [in]  FXMMATRIX  M
) noexcept;

Parameter

[out] pDestination

Alamat untuk menyimpan data.

[in] M

Matriks yang berisi data untuk disimpan.

Nilai kembali

Tidak ada.

Keterangan

XMFLOAT4X4 adalah bentuk matriks utama baris. Untuk menulis data utama kolom mengharuskan XMMATRIX ditransposisikan melalui XMMatrixTranpose sebelum memanggil fungsi penyimpanan.

Fungsi ini mengambil matriks dan menulis komponen ke enam belas nilai floating-point presisi tunggal pada alamat yang diberikan. Komponen paling signifikan dari vektor baris pertama ditulis ke empat byte pertama alamat, diikuti oleh komponen paling signifikan kedua dari baris pertama, dan sebagainya. Baris kedua kemudian ditulis dengan cara yang mirip dengan memori yang dimulai pada byte 16, diikuti oleh baris ketiga ke memori yang dimulai pada byte 32, dan akhirnya baris keempat ke memori dimulai pada byte 48.

Pseudocode berikut menunjukkan pengoperasian fungsi.

pDestination->_11 = M[0].x; // 4 bytes to address (uint8_t*)pDestination
pDestination->_12 = M[0].y; // 4 bytes to address (uint8_t*)pDestination + 4
pDestination->_13 = M[0].z; // 4 bytes to address (uint8_t*)pDestination + 8
pDestination->_14 = M[0].w; // 4 bytes to address (uint8_t*)pDestination + 12

pDestination->_21 = M[1].x; // 4 bytes to address (uint8_t*)pDestination + 16
pDestination->_22 = M[1].y; // 4 bytes to address (uint8_t*)pDestination + 20
pDestination->_23 = M[1].z; // 4 bytes to address (uint8_t*)pDestination + 24
pDestination->_24 = M[1].w; // 4 bytes to address (uint8_t*)pDestination + 28

pDestination->_31 = M[2].x; // 4 bytes to address (uint8_t*)pDestination + 32
pDestination->_32 = M[2].y; // 4 bytes to address (uint8_t*)pDestination + 36
pDestination->_33 = M[2].z; // 4 bytes to address (uint8_t*)pDestination + 40
pDestination->_34 = M[2].w; // 4 bytes to address (uint8_t*)pDestination + 44

pDestination->_41 = M[3].x; // 4 bytes to address (uint8_t*)pDestination + 48
pDestination->_42 = M[3].y; // 4 bytes to address (uint8_t*)pDestination + 52
pDestination->_43 = M[3].z; // 4 bytes to address (uint8_t*)pDestination + 56
pDestination->_44 = M[3].w; // 4 bytes to address (uint8_t*)pDestination + 60

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

Persyaratan Nilai
Target Platform Windows
Header directxmath.h

Lihat juga

Fungsi Penyimpanan Vektor Pustaka DirectXMath