1
0
mirror of https://github.com/microsoft/DirectXMath synced 2024-11-09 14:10:09 +00:00

DirectXMath 3.08

This commit is contained in:
Chuck Walbourn 2016-05-23 14:37:35 -07:00
parent 51802de35b
commit fea9eabc4e
7 changed files with 860 additions and 274 deletions

View File

@ -1965,8 +1965,8 @@ inline void XM_CALLCONV BoundingOrientedBox::Transform( BoundingOrientedBox& Out
XMVECTOR dY = XMVector3Length( M.r[1] );
XMVECTOR dZ = XMVector3Length( M.r[2] );
XMVECTOR VectorScale = XMVectorSelect( dX, dY, g_XMSelect1000 );
VectorScale = XMVectorSelect( VectorScale, dZ, g_XMSelect1100 );
XMVECTOR VectorScale = XMVectorSelect( dY, dX, g_XMSelect1000 );
VectorScale = XMVectorSelect( dZ, VectorScale, g_XMSelect1100 );
vExtents = vExtents * VectorScale;
// Store the box.

View File

@ -17,7 +17,7 @@
#error DirectX Math requires C++
#endif
#define DIRECTX_MATH_VERSION 307
#define DIRECTX_MATH_VERSION 308
#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) && (!_MANAGED) && (!_M_CEE) && (!defined(_M_IX86_FP) || (_M_IX86_FP > 1)) && !defined(_XM_NO_INTRINSICS_) && !defined(_XM_VECTORCALL_)
@ -32,6 +32,12 @@
#define XM_CALLCONV __fastcall
#endif
#if defined(_MSC_VER) && (_MSC_VER < 1800)
#define XM_CTOR_DEFAULT {}
#else
#define XM_CTOR_DEFAULT =default;
#endif
#if !defined(_XM_ARM_NEON_INTRINSICS_) && !defined(_XM_SSE_INTRINSICS_) && !defined(_XM_NO_INTRINSICS_)
@ -117,8 +123,10 @@
#if defined(_XM_NO_MOVNT_)
#define XM_STREAM_PS( p, a ) _mm_store_ps( p, a )
#define XM_SFENCE()
#else
#define XM_STREAM_PS( p, a ) _mm_stream_ps( p, a )
#define XM_SFENCE() _mm_sfence()
#endif
#define XM_PERMUTE_PS( v, c ) _mm_shuffle_ps( v, v, c )
@ -413,7 +421,7 @@ __declspec(align(16)) struct XMMATRIX
XMVECTOR r[4];
#endif
XMMATRIX() {}
XMMATRIX() XM_CTOR_DEFAULT
XMMATRIX(FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) { r[0] = R0; r[1] = R1; r[2] = R2; r[3] = R3; }
XMMATRIX(float m00, float m01, float m02, float m03,
float m10, float m11, float m12, float m13,
@ -453,7 +461,7 @@ struct XMFLOAT2
float x;
float y;
XMFLOAT2() {}
XMFLOAT2() XM_CTOR_DEFAULT
XMFLOAT2(float _x, float _y) : x(_x), y(_y) {}
explicit XMFLOAT2(_In_reads_(2) const float *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -463,7 +471,7 @@ struct XMFLOAT2
// 2D Vector; 32 bit floating point components aligned on a 16 byte boundary
__declspec(align(16)) struct XMFLOAT2A : public XMFLOAT2
{
XMFLOAT2A() : XMFLOAT2() {}
XMFLOAT2A() XM_CTOR_DEFAULT
XMFLOAT2A(float _x, float _y) : XMFLOAT2(_x, _y) {}
explicit XMFLOAT2A(_In_reads_(2) const float *pArray) : XMFLOAT2(pArray) {}
@ -477,7 +485,7 @@ struct XMINT2
int32_t x;
int32_t y;
XMINT2() {}
XMINT2() XM_CTOR_DEFAULT
XMINT2(int32_t _x, int32_t _y) : x(_x), y(_y) {}
explicit XMINT2(_In_reads_(2) const int32_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -490,7 +498,7 @@ struct XMUINT2
uint32_t x;
uint32_t y;
XMUINT2() {}
XMUINT2() XM_CTOR_DEFAULT
XMUINT2(uint32_t _x, uint32_t _y) : x(_x), y(_y) {}
explicit XMUINT2(_In_reads_(2) const uint32_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -505,7 +513,7 @@ struct XMFLOAT3
float y;
float z;
XMFLOAT3() {}
XMFLOAT3() XM_CTOR_DEFAULT
XMFLOAT3(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {}
explicit XMFLOAT3(_In_reads_(3) const float *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@ -515,7 +523,7 @@ struct XMFLOAT3
// 3D Vector; 32 bit floating point components aligned on a 16 byte boundary
__declspec(align(16)) struct XMFLOAT3A : public XMFLOAT3
{
XMFLOAT3A() : XMFLOAT3() {}
XMFLOAT3A() XM_CTOR_DEFAULT
XMFLOAT3A(float _x, float _y, float _z) : XMFLOAT3(_x, _y, _z) {}
explicit XMFLOAT3A(_In_reads_(3) const float *pArray) : XMFLOAT3(pArray) {}
@ -530,7 +538,7 @@ struct XMINT3
int32_t y;
int32_t z;
XMINT3() {}
XMINT3() XM_CTOR_DEFAULT
XMINT3(int32_t _x, int32_t _y, int32_t _z) : x(_x), y(_y), z(_z) {}
explicit XMINT3(_In_reads_(3) const int32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@ -544,7 +552,7 @@ struct XMUINT3
uint32_t y;
uint32_t z;
XMUINT3() {}
XMUINT3() XM_CTOR_DEFAULT
XMUINT3(uint32_t _x, uint32_t _y, uint32_t _z) : x(_x), y(_y), z(_z) {}
explicit XMUINT3(_In_reads_(3) const uint32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@ -560,7 +568,7 @@ struct XMFLOAT4
float z;
float w;
XMFLOAT4() {}
XMFLOAT4() XM_CTOR_DEFAULT
XMFLOAT4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMFLOAT4(_In_reads_(4) const float *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -570,7 +578,7 @@ struct XMFLOAT4
// 4D Vector; 32 bit floating point components aligned on a 16 byte boundary
__declspec(align(16)) struct XMFLOAT4A : public XMFLOAT4
{
XMFLOAT4A() : XMFLOAT4() {}
XMFLOAT4A() XM_CTOR_DEFAULT
XMFLOAT4A(float _x, float _y, float _z, float _w) : XMFLOAT4(_x, _y, _z, _w) {}
explicit XMFLOAT4A(_In_reads_(4) const float *pArray) : XMFLOAT4(pArray) {}
@ -586,7 +594,7 @@ struct XMINT4
int32_t z;
int32_t w;
XMINT4() {}
XMINT4() XM_CTOR_DEFAULT
XMINT4(int32_t _x, int32_t _y, int32_t _z, int32_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMINT4(_In_reads_(4) const int32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -601,7 +609,7 @@ struct XMUINT4
uint32_t z;
uint32_t w;
XMUINT4() {}
XMUINT4() XM_CTOR_DEFAULT
XMUINT4(uint32_t _x, uint32_t _y, uint32_t _z, uint32_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMUINT4(_In_reads_(4) const uint32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -623,7 +631,7 @@ struct XMFLOAT3X3
float m[3][3];
};
XMFLOAT3X3() {}
XMFLOAT3X3() XM_CTOR_DEFAULT
XMFLOAT3X3(float m00, float m01, float m02,
float m10, float m11, float m12,
float m20, float m21, float m22);
@ -651,7 +659,7 @@ struct XMFLOAT4X3
float m[4][3];
};
XMFLOAT4X3() {}
XMFLOAT4X3() XM_CTOR_DEFAULT
XMFLOAT4X3(float m00, float m01, float m02,
float m10, float m11, float m12,
float m20, float m21, float m22,
@ -668,7 +676,7 @@ struct XMFLOAT4X3
// 4x3 Matrix: 32 bit floating point components aligned on a 16 byte boundary
__declspec(align(16)) struct XMFLOAT4X3A : public XMFLOAT4X3
{
XMFLOAT4X3A() : XMFLOAT4X3() {}
XMFLOAT4X3A() XM_CTOR_DEFAULT
XMFLOAT4X3A(float m00, float m01, float m02,
float m10, float m11, float m12,
float m20, float m21, float m22,
@ -698,7 +706,7 @@ struct XMFLOAT4X4
float m[4][4];
};
XMFLOAT4X4() {}
XMFLOAT4X4() XM_CTOR_DEFAULT
XMFLOAT4X4(float m00, float m01, float m02, float m03,
float m10, float m11, float m12, float m13,
float m20, float m21, float m22, float m23,
@ -714,7 +722,7 @@ struct XMFLOAT4X4
// 4x4 Matrix: 32 bit floating point components aligned on a 16 byte boundary
__declspec(align(16)) struct XMFLOAT4X4A : public XMFLOAT4X4
{
XMFLOAT4X4A() : XMFLOAT4X4() {}
XMFLOAT4X4A() XM_CTOR_DEFAULT
XMFLOAT4X4A(float m00, float m01, float m02, float m03,
float m10, float m11, float m12, float m13,
float m20, float m21, float m22, float m23,
@ -1672,6 +1680,7 @@ XMGLOBALCONST XMVECTORF32 g_XMNegIdentityR2 = {0.0f, 0.0f,-1.0f, 0.0f};
XMGLOBALCONST XMVECTORF32 g_XMNegIdentityR3 = {0.0f, 0.0f, 0.0f,-1.0f};
XMGLOBALCONST XMVECTORU32 g_XMNegativeZero = {0x80000000, 0x80000000, 0x80000000, 0x80000000};
XMGLOBALCONST XMVECTORU32 g_XMNegate3 = {0x80000000, 0x80000000, 0x80000000, 0x00000000};
XMGLOBALCONST XMVECTORU32 g_XMMaskXY = {0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000};
XMGLOBALCONST XMVECTORU32 g_XMMask3 = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000};
XMGLOBALCONST XMVECTORU32 g_XMMaskX = {0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000};
XMGLOBALCONST XMVECTORU32 g_XMMaskY = {0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000};
@ -1779,6 +1788,12 @@ XMGLOBALCONST XMVECTORF32 g_XMLogEst6 = {+0.057148f, +0.057148f, +0.05
XMGLOBALCONST XMVECTORF32 g_XMLogEst7 = {-0.010578f, -0.010578f, -0.010578f, -0.010578f};
XMGLOBALCONST XMVECTORF32 g_XMLgE = {+1.442695f, +1.442695f, +1.442695f, +1.442695f};
XMGLOBALCONST XMVECTORF32 g_XMInvLgE = {+6.93147182e-1f, +6.93147182e-1f, +6.93147182e-1f, +6.93147182e-1f};
XMGLOBALCONST XMVECTORF32 g_UByteMax = {255.0f, 255.0f, 255.0f, 255.0f};
XMGLOBALCONST XMVECTORF32 g_ByteMin = {-127.0f, -127.0f, -127.0f, -127.0f};
XMGLOBALCONST XMVECTORF32 g_ByteMax = {127.0f, 127.0f, 127.0f, 127.0f};
XMGLOBALCONST XMVECTORF32 g_ShortMin = {-32767.0f, -32767.0f, -32767.0f, -32767.0f};
XMGLOBALCONST XMVECTORF32 g_ShortMax = {32767.0f, 32767.0f, 32767.0f, 32767.0f};
XMGLOBALCONST XMVECTORF32 g_UShortMax = {65535.0f, 65535.0f, 65535.0f, 65535.0f};
/****************************************************************************
*

View File

@ -1962,6 +1962,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveLH
float FarZ
)
{
assert(NearZ > 0.f && FarZ > 0.f);
assert(!XMScalarNearEqual(ViewWidth, 0.0f, 0.00001f));
assert(!XMScalarNearEqual(ViewHeight, 0.0f, 0.00001f));
assert(!XMScalarNearEqual(FarZ, NearZ, 0.00001f));
@ -2049,6 +2050,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveRH
float FarZ
)
{
assert(NearZ > 0.f && FarZ > 0.f);
assert(!XMScalarNearEqual(ViewWidth, 0.0f, 0.00001f));
assert(!XMScalarNearEqual(ViewHeight, 0.0f, 0.00001f));
assert(!XMScalarNearEqual(FarZ, NearZ, 0.00001f));
@ -2136,6 +2138,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveFovLH
float FarZ
)
{
assert(NearZ > 0.f && FarZ > 0.f);
assert(!XMScalarNearEqual(FovAngleY, 0.0f, 0.00001f * 2.0f));
assert(!XMScalarNearEqual(AspectHByW, 0.0f, 0.00001f));
assert(!XMScalarNearEqual(FarZ, NearZ, 0.00001f));
@ -2237,6 +2240,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveFovRH
float FarZ
)
{
assert(NearZ > 0.f && FarZ > 0.f);
assert(!XMScalarNearEqual(FovAngleY, 0.0f, 0.00001f * 2.0f));
assert(!XMScalarNearEqual(AspectHByW, 0.0f, 0.00001f));
assert(!XMScalarNearEqual(FarZ, NearZ, 0.00001f));
@ -2338,6 +2342,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveOffCenterLH
float FarZ
)
{
assert(NearZ > 0.f && FarZ > 0.f);
assert(!XMScalarNearEqual(ViewRight, ViewLeft, 0.00001f));
assert(!XMScalarNearEqual(ViewTop, ViewBottom, 0.00001f));
assert(!XMScalarNearEqual(FarZ, NearZ, 0.00001f));
@ -2435,6 +2440,7 @@ inline XMMATRIX XM_CALLCONV XMMatrixPerspectiveOffCenterRH
float FarZ
)
{
assert(NearZ > 0.f && FarZ > 0.f);
assert(!XMScalarNearEqual(ViewRight, ViewLeft, 0.00001f));
assert(!XMScalarNearEqual(ViewTop, ViewBottom, 0.00001f));
assert(!XMScalarNearEqual(FarZ, NearZ, 0.00001f));

View File

@ -399,7 +399,6 @@ inline XMVECTOR XM_CALLCONV XMQuaternionSlerpV
#elif defined(_XM_SSE_INTRINSICS_)
static const XMVECTORF32 OneMinusEpsilon = {1.0f - 0.00001f, 1.0f - 0.00001f, 1.0f - 0.00001f, 1.0f - 0.00001f};
static const XMVECTORU32 SignMask2 = {0x80000000,0x00000000,0x00000000,0x00000000};
static const XMVECTORU32 MaskXY = {0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000};
XMVECTOR CosOmega = XMQuaternionDot(Q0, Q1);
@ -418,7 +417,7 @@ inline XMVECTOR XM_CALLCONV XMQuaternionSlerpV
XMVECTOR Omega = XMVectorATan2(SinOmega, CosOmega);
XMVECTOR V01 = XM_PERMUTE_PS(T,_MM_SHUFFLE(2,3,0,1));
V01 = _mm_and_ps(V01,MaskXY);
V01 = _mm_and_ps(V01,g_XMMaskXY);
V01 = _mm_xor_ps(V01,SignMask2);
V01 = _mm_add_ps(g_XMIdentityR0, V01);

View File

@ -7655,6 +7655,8 @@ inline XMFLOAT4* XM_CALLCONV XMVector2TransformStream
}
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -8022,6 +8024,8 @@ inline XMFLOAT2* XM_CALLCONV XMVector2TransformCoordStream
}
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -8327,6 +8331,8 @@ inline XMFLOAT2* XM_CALLCONV XMVector2TransformNormalStream
}
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -10052,6 +10058,8 @@ inline XMFLOAT4* XM_CALLCONV XMVector3TransformStream
}
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -10550,6 +10558,8 @@ inline XMFLOAT3* XM_CALLCONV XMVector3TransformCoordStream
pOutputVector += OutputStride;
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -10974,6 +10984,8 @@ inline XMFLOAT3* XM_CALLCONV XMVector3TransformNormalStream
pOutputVector += OutputStride;
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -11542,6 +11554,8 @@ inline XMFLOAT3* XM_CALLCONV XMVector3ProjectStream
pOutputVector += OutputStride;
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -12129,6 +12143,8 @@ inline XMFLOAT3* XM_CALLCONV XMVector3UnprojectStream
pOutputVector += OutputStride;
}
XM_SFENCE();
return pOutputStream;
#endif
}
@ -13843,6 +13859,8 @@ inline XMFLOAT4* XM_CALLCONV XMVector4TransformStream
}
}
XM_SFENCE();
return pOutputStream;
#endif
}

View File

@ -45,7 +45,7 @@ struct XMCOLOR
uint32_t c;
};
XMCOLOR() {}
XMCOLOR() XM_CTOR_DEFAULT
XMCOLOR(uint32_t Color) : c(Color) {}
XMCOLOR(float _r, float _g, float _b, float _a);
explicit XMCOLOR(_In_reads_(4) const float *pArray);
@ -75,7 +75,7 @@ struct XMHALF2
uint32_t v;
};
XMHALF2() {}
XMHALF2() XM_CTOR_DEFAULT
explicit XMHALF2(uint32_t Packed) : v(Packed) {}
XMHALF2(HALF _x, HALF _y) : x(_x), y(_y) {}
explicit XMHALF2(_In_reads_(2) const HALF *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -100,7 +100,7 @@ struct XMSHORTN2
uint32_t v;
};
XMSHORTN2() {}
XMSHORTN2() XM_CTOR_DEFAULT
explicit XMSHORTN2(uint32_t Packed) : v(Packed) {}
XMSHORTN2(int16_t _x, int16_t _y) : x(_x), y(_y) {}
explicit XMSHORTN2(_In_reads_(2) const int16_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -124,7 +124,7 @@ struct XMSHORT2
uint32_t v;
};
XMSHORT2() {}
XMSHORT2() XM_CTOR_DEFAULT
explicit XMSHORT2(uint32_t Packed) : v(Packed) {}
XMSHORT2(int16_t _x, int16_t _y) : x(_x), y(_y) {}
explicit XMSHORT2(_In_reads_(2) const int16_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -148,7 +148,7 @@ struct XMUSHORTN2
uint32_t v;
};
XMUSHORTN2() {}
XMUSHORTN2() XM_CTOR_DEFAULT
explicit XMUSHORTN2(uint32_t Packed) : v(Packed) {}
XMUSHORTN2(uint16_t _x, uint16_t _y) : x(_x), y(_y) {}
explicit XMUSHORTN2(_In_reads_(2) const uint16_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -172,7 +172,7 @@ struct XMUSHORT2
uint32_t v;
};
XMUSHORT2() {}
XMUSHORT2() XM_CTOR_DEFAULT
explicit XMUSHORT2(uint32_t Packed) : v(Packed) {}
XMUSHORT2(uint16_t _x, uint16_t _y) : x(_x), y(_y) {}
explicit XMUSHORT2(_In_reads_(2) const uint16_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -197,7 +197,7 @@ struct XMBYTEN2
uint16_t v;
};
XMBYTEN2() {}
XMBYTEN2() XM_CTOR_DEFAULT
explicit XMBYTEN2(uint16_t Packed) : v(Packed) {}
XMBYTEN2(int8_t _x, int8_t _y) : x(_x), y(_y) {}
explicit XMBYTEN2(_In_reads_(2) const int8_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -221,7 +221,7 @@ struct XMBYTE2
uint16_t v;
};
XMBYTE2() {}
XMBYTE2() XM_CTOR_DEFAULT
explicit XMBYTE2(uint16_t Packed) : v(Packed) {}
XMBYTE2(int8_t _x, int8_t _y) : x(_x), y(_y) {}
explicit XMBYTE2(_In_reads_(2) const int8_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -245,7 +245,7 @@ struct XMUBYTEN2
uint16_t v;
};
XMUBYTEN2() {}
XMUBYTEN2() XM_CTOR_DEFAULT
explicit XMUBYTEN2(uint16_t Packed) : v(Packed) {}
XMUBYTEN2(uint8_t _x, uint8_t _y) : x(_x), y(_y) {}
explicit XMUBYTEN2(_In_reads_(2) const uint8_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -269,7 +269,7 @@ struct XMUBYTE2
uint16_t v;
};
XMUBYTE2() {}
XMUBYTE2() XM_CTOR_DEFAULT
explicit XMUBYTE2(uint16_t Packed) : v(Packed) {}
XMUBYTE2(uint8_t _x, uint8_t _y) : x(_x), y(_y) {}
explicit XMUBYTE2(_In_reads_(2) const uint8_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@ -295,7 +295,7 @@ struct XMU565
uint16_t v;
};
XMU565() {}
XMU565() XM_CTOR_DEFAULT
explicit XMU565(uint16_t Packed) : v(Packed) {}
XMU565(uint8_t _x, uint8_t _y, uint8_t _z) : x(_x), y(_y), z(_z) {}
explicit XMU565(_In_reads_(3) const int8_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@ -333,7 +333,7 @@ struct XMFLOAT3PK
uint32_t v;
};
XMFLOAT3PK() {}
XMFLOAT3PK() XM_CTOR_DEFAULT
explicit XMFLOAT3PK(uint32_t Packed) : v(Packed) {}
XMFLOAT3PK(float _x, float _y, float _z);
explicit XMFLOAT3PK(_In_reads_(3) const float *pArray);
@ -366,7 +366,7 @@ struct XMFLOAT3SE
uint32_t v;
};
XMFLOAT3SE() {}
XMFLOAT3SE() XM_CTOR_DEFAULT
explicit XMFLOAT3SE(uint32_t Packed) : v(Packed) {}
XMFLOAT3SE(float _x, float _y, float _z);
explicit XMFLOAT3SE(_In_reads_(3) const float *pArray);
@ -393,7 +393,7 @@ struct XMHALF4
uint64_t v;
};
XMHALF4() {}
XMHALF4() XM_CTOR_DEFAULT
explicit XMHALF4(uint64_t Packed) : v(Packed) {}
XMHALF4(HALF _x, HALF _y, HALF _z, HALF _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMHALF4(_In_reads_(4) const HALF *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -420,7 +420,7 @@ struct XMSHORTN4
uint64_t v;
};
XMSHORTN4() {}
XMSHORTN4() XM_CTOR_DEFAULT
explicit XMSHORTN4(uint64_t Packed) : v(Packed) {}
XMSHORTN4(int16_t _x, int16_t _y, int16_t _z, int16_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMSHORTN4(_In_reads_(4) const int16_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -446,7 +446,7 @@ struct XMSHORT4
uint64_t v;
};
XMSHORT4() {}
XMSHORT4() XM_CTOR_DEFAULT
explicit XMSHORT4(uint64_t Packed) : v(Packed) {}
XMSHORT4(int16_t _x, int16_t _y, int16_t _z, int16_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMSHORT4(_In_reads_(4) const int16_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -472,7 +472,7 @@ struct XMUSHORTN4
uint64_t v;
};
XMUSHORTN4() {}
XMUSHORTN4() XM_CTOR_DEFAULT
explicit XMUSHORTN4(uint64_t Packed) : v(Packed) {}
XMUSHORTN4(uint16_t _x, uint16_t _y, uint16_t _z, uint16_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMUSHORTN4(_In_reads_(4) const uint16_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -498,7 +498,7 @@ struct XMUSHORT4
uint64_t v;
};
XMUSHORT4() {}
XMUSHORT4() XM_CTOR_DEFAULT
explicit XMUSHORT4(uint64_t Packed) : v(Packed) {}
XMUSHORT4(uint16_t _x, uint16_t _y, uint16_t _z, uint16_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMUSHORT4(_In_reads_(4) const uint16_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -530,7 +530,7 @@ struct XMXDECN4
uint32_t v;
};
XMXDECN4() {}
XMXDECN4() XM_CTOR_DEFAULT
explicit XMXDECN4(uint32_t Packed) : v(Packed) {}
XMXDECN4(float _x, float _y, float _z, float _w);
explicit XMXDECN4(_In_reads_(4) const float *pArray);
@ -561,7 +561,7 @@ struct XMXDEC4
uint32_t v;
};
XMXDEC4() {}
XMXDEC4() XM_CTOR_DEFAULT
explicit XMXDEC4(uint32_t Packed) : v(Packed) {}
XMXDEC4(float _x, float _y, float _z, float _w);
explicit XMXDEC4(_In_reads_(4) const float *pArray);
@ -592,7 +592,7 @@ struct XMDECN4
uint32_t v;
};
XMDECN4() {}
XMDECN4() XM_CTOR_DEFAULT
explicit XMDECN4(uint32_t Packed) : v(Packed) {}
XMDECN4(float _x, float _y, float _z, float _w);
explicit XMDECN4(_In_reads_(4) const float *pArray);
@ -623,7 +623,7 @@ struct XMDEC4
uint32_t v;
};
XMDEC4() {}
XMDEC4() XM_CTOR_DEFAULT
explicit XMDEC4(uint32_t Packed) : v(Packed) {}
XMDEC4(float _x, float _y, float _z, float _w);
explicit XMDEC4(_In_reads_(4) const float *pArray);
@ -654,7 +654,7 @@ struct XMUDECN4
uint32_t v;
};
XMUDECN4() {}
XMUDECN4() XM_CTOR_DEFAULT
explicit XMUDECN4(uint32_t Packed) : v(Packed) {}
XMUDECN4(float _x, float _y, float _z, float _w);
explicit XMUDECN4(_In_reads_(4) const float *pArray);
@ -685,7 +685,7 @@ struct XMUDEC4
uint32_t v;
};
XMUDEC4() {}
XMUDEC4() XM_CTOR_DEFAULT
explicit XMUDEC4(uint32_t Packed) : v(Packed) {}
XMUDEC4(float _x, float _y, float _z, float _w);
explicit XMUDEC4(_In_reads_(4) const float *pArray);
@ -712,7 +712,7 @@ struct XMBYTEN4
uint32_t v;
};
XMBYTEN4() {}
XMBYTEN4() XM_CTOR_DEFAULT
XMBYTEN4(int8_t _x, int8_t _y, int8_t _z, int8_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMBYTEN4(uint32_t Packed) : v(Packed) {}
explicit XMBYTEN4(_In_reads_(4) const int8_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -738,7 +738,7 @@ struct XMBYTE4
uint32_t v;
};
XMBYTE4() {}
XMBYTE4() XM_CTOR_DEFAULT
XMBYTE4(int8_t _x, int8_t _y, int8_t _z, int8_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMBYTE4(uint32_t Packed) : v(Packed) {}
explicit XMBYTE4(_In_reads_(4) const int8_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -764,7 +764,7 @@ struct XMUBYTEN4
uint32_t v;
};
XMUBYTEN4() {}
XMUBYTEN4() XM_CTOR_DEFAULT
XMUBYTEN4(uint8_t _x, uint8_t _y, uint8_t _z, uint8_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMUBYTEN4(uint32_t Packed) : v(Packed) {}
explicit XMUBYTEN4(_In_reads_(4) const uint8_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -790,7 +790,7 @@ struct XMUBYTE4
uint32_t v;
};
XMUBYTE4() {}
XMUBYTE4() XM_CTOR_DEFAULT
XMUBYTE4(uint8_t _x, uint8_t _y, uint8_t _z, uint8_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMUBYTE4(uint32_t Packed) : v(Packed) {}
explicit XMUBYTE4(_In_reads_(4) const uint8_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -817,7 +817,7 @@ struct XMUNIBBLE4
uint16_t v;
};
XMUNIBBLE4() {}
XMUNIBBLE4() XM_CTOR_DEFAULT
explicit XMUNIBBLE4(uint16_t Packed) : v(Packed) {}
XMUNIBBLE4(int8_t _x, int8_t _y, int8_t _z, int8_t _w) : x(_x), y(_y), z(_z), w(_w) {}
explicit XMUNIBBLE4(_In_reads_(4) const int8_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@ -846,7 +846,7 @@ struct XMU555
uint16_t v;
};
XMU555() {}
XMU555() XM_CTOR_DEFAULT
explicit XMU555(uint16_t Packed) : v(Packed) {}
XMU555(int8_t _x, int8_t _y, int8_t _z, bool _w) : x(_x), y(_y), z(_z), w(_w ? 0x1 : 0) {}
XMU555(_In_reads_(3) const int8_t *pArray, _In_ bool _w) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(_w ? 0x1 : 0) {}

File diff suppressed because it is too large Load Diff