XMStoreU565

Stores an XMVECTOR in an XMU565.

Syntax

void XMStoreU565(
         XMU565 *pDestination,
         XMVECTOR V
)  

Parameters

pDestination
Type: XMU565 *

[out]

Address at which to store the data.

V
Type: XMVECTOR 

[in]

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 = {31.f, 63.f, 31.f, 0.0f };

  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];  

Note these are not normalized values. To convert to the RGB 5/6/5 format, you must scale the input vector by (31.f, 63.f, 31.f, 1.f). Also, you will probably need to swizzle the standard .x = RED, .y = GREEN, .z = BLUE color vector’s .x and .z value since the GPU format is BGR (not RGB).

Requirements

Header: Declared in directxpackedvector.h.