XMXDECN4 Structure

A 4D vector for storing signed, normalized values as 10 bit signed x-,y-, and z- components and an unsigned, normalized value as 2 bit unsigned w-component.

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.

Syntax

struct XMXDECN4  

Remarks

The fields in the XMXDECN4 structure are declared as follows:

struct XMXDECN4
{
    union
    {
        struct
        {
            int32_t x : 10; // Signed integer value in the range [-511, 511] 
                            // describing the x-coordinate of the vector.
            int32_t y : 10; // Signed integer value in the range [-511, 511] 
                            // describing the y-coordinate of the vector.
            int32_t z : 10; // Signed integer value in the range [-511, 511] 
                            // describing the z-coordinate of the vector.
            uint32_t w  : 2; // Unsigned integer value in the range [0, 3] 
                             // describing the w-coordinate of the vector.
        };
        uint32_t v; // Unsigned 32-bit integer representing the 4D vector.
    };  

Those XMXDECN4 constructors using floating point arguments require normalized input, which must be in the range of [-1.0.-1.0] for x-, y-, z-components and 0.0 for the w-component. During instantiation, the inputs specifying the x-, y-, and z-components are multiplied by 511.0f and the w-component by 3.0f, these results are rounded and then assigned to the appropriate members of XMXDECN4.

XMXDECN4 can be used to load instances of XMVECTOR from normalized values, by using XMLoadXDecN4, which divides the x-, y-, and z-components by 511.0f, the w-component by 3.0f, rounds the result, and then assigns the components to an XMVECTOR instance.

XMVECTOR instances containing normalized values can be stored into XMXDECN4 using XMStoreXDecN4, which multiplies the x-, y-,and z-components by 511.0f, the w-component by 3.0f, rounding the result, before assigning the values to the appropriate XMXDECN4 members.

Namespace: Use DirectX::PackedVector

Requirements

Header: Declared in directxpackedvector.h.