XMStoreUNibble4 function (directxpackedvector.h)

Stores an XMVECTOR in an XMUNIBBLE4.

Syntax

void XM_CALLCONV XMStoreUNibble4(
  [out] XMUNIBBLE4 *pDestination,
  [in]  FXMVECTOR  V
) noexcept;

Parameters

[out] pDestination

Address at which to store the data.

[in] V

Vector containing the data to store.

Return value

None.

Remarks

The following pseudocode demonstrates the operation of the function.


  XMVECTOR N;
  static const XMVECTOR  Max = {15.f, 15.f, 15.f, 15.f };

  N = XMVectorClamp(V, XMVectorZero, Max);
  N = XMVectorRound(N);

  pDestination->x = (int8_t)N.v[0];
  pDestination->y = (int8_t)N.v[1];
  pDestination->z = (int8_t)N.v[2];
  pDestination->w = (int8_t)N.v[3];


Note these are not normalized values. To convert to the RGBA 4/4/4/4 format, you must scale the input vector by (15.f, 15.f, 15.f, 15.f). Also, you will probably need to swizzle the standard .x = RED, .y = GREEN, .z = BLUE, .w = ALPHA color vector's .x and .z value since the GPU format is BGR (not RGB).

Platform Requirements

Microsoft Visual Studio 2010 or Microsoft Visual Studio 2012 with the Windows SDK for Windows 8. Supported for Win32 desktop apps, Windows Store apps, and Windows Phone 8 apps.

Requirements

Requirement Value
Target Platform Windows
Header directxpackedvector.h (include DirectXPackedVector.h)

See also

DirectXMath Library Vector Store Functions