A 4D vector for storing signed, normalized values as signed 8-bits (1 byte) integers.
If you are programming in C++, you can use the constructors and operator methods of this structure.
Note See DirectXMath Library Type Equivalences for information about equivalent D3DDECLTYPE, D3DFORMAT, and DXGI_FORMAT objects.
struct XMBYTEN4
The fields in the XMBYTEN4 structure are declared as follows:
struct XMBYTEN4
{
union
{
struct
{
int8_t x; // Signed 8-bit integer value in the range [-127, 127]
// describing the x-coordinate of the vector.
int8_t y; // Signed 8-bit integer value in the range [-127, 127]
// describing the y-coordinate of the vector.
int8_t z; // Signed 8-bit integer value in the range [-127, 127]
// describing the z-coordinate of the vector.
int8_t w; // Signed 8-bit integer value in the range [-127, 127]
// describing the w-coordinate of the vector.
};
uint32_t v; // Unsigned 32-bit integer representing the 4D vector.
};
Those XMBYTEN4 constructors using floating point arguments require normalized input, which must be in the range of [0.0.-1.0]. During instantiation, these data are multiplied by 127.0f, results are rounded, and then assigned to the appropriate members of XMBYTEN4.
XMBYTEN4 can be used to load instances of XMVECTOR from normalized values, by using XMLoadByteN4, which divides each component 127.0f, rounds the result, and then assigns the components to an XMVECTOR instance.
XMVECTOR instances containing normalized values can be stored into XMBYTEN4 using XMStoreByteN4, which multiplies each component by 127.0f, rounding the result, before assigning the values to the appropriate XMBYTEN4 members.
Namespace: Use DirectX::PackedVector
Header: Declared in directxpackedvector.h.