typedef __m128 XMVECTOR;
To summarize,
1. Use XMVECTOR for local or global variables.
2. Use XMFLOAT2, XMFLOAT3, and XMFLOAT4 for class data members.(因为是128bits,所以作为class data members肯定不可行)
3. Use loading functions to convert from XMFLOAT* to XMVECTOR before doing calculations.
// Loads XMFLOAT2 into XMVECTOR XMVECTOR XMLoadFloat2(CONST XMFLOAT2 *pSource); // Loads XMFLOAT3 into XMVECTOR XMVECTOR XMLoadFloat3(CONST XMFLOAT3 *pSource); // Loads XMFLOAT4 into XMVECTOR XMVECTOR XMLoadFloat4(CONST XMFLOAT4 *pSource);
4. Do calculations with XMVECTOR instances.
5. Use storage functions to convert from XMVECTOR to XMFLOAT*.
// Loads XMVECTOR into XMFLOAT2 VOID XMStoreFloat2(XMFLOAT2 *pDestination, FXMVECTOR V); // Loads XMVECTOR into XMFLOAT3 VOID XMStoreFloat3(XMFLOAT3 *pDestination, FXMVECTOR V); // Loads XMVECTOR into XMFLOAT4 VOID XMStoreFloat4(XMFLOAT4 *pDestination, FXMVECTOR V);