Releases: microsoft/DirectXMath
DirectX SDK (June 2010)
XNA Math version 2.03 includes the following changes:
- Addition of
XMVectorDivide
to optimize SSE2 vector division operations - Unified handling of floating-point specials between the Windows SSE2 and no-intrinsics implementations
- Use of Visual Studio style SAL annotations
- Modifications to the C++ declarations for
XMFLOAT2A/3A/4A/4X3A/4X4A
to better support these types in C++ templates
See this post for known issues.
July 2012
XNA Math version 2.05 includes the following changes (primarily to be more consistent with DirectXMath):
- Template forms have been added for
XMVectorPermute
,XMVectorSwizzle
,XMVectorShiftLeft
,XMVectorRotateLeft
,XMVectorRotateRight
, andXMVectorInsert
- The
XM_STRICT_XMMATRIX
compilation define has been added for opaqueXMMATRIX
. - Stream stride and count arguments have been changed to
size_t
- The pDeterminant parameter of
XMMatrixInverse
is now optional - Additional operator= overloads for
XMBYTEN4
,XMBYTE4
,XMUBYTEN4
, andXMUBYTE4
types are now available
Code written to be portable between XNA Math and DirectXMath should make use of
XM_STRICT_MATRIX
&XM_STRICT_VECTOR4
, and prefer the use of template forms (using 0-3 or 0-7 indices rather thanXM_PERMUTE_*
orXM_SWIZZLE_*
constants).
See this post.
February 2011
XNA Math version 2.04 includes the following changes:
- Addition of new data types and associated load-store functions:
XMBYTEN2, XMBYTE2, XMUBYTEN2, XMUBYTE2
XMLoadByteN2, XMLoadByte2, XMLoadUByteN2, XMLoadUByte2
XMStoreByteN2, XMStoreByte2, XMStoreUByteN2, XMStoreUByte2
XMINT2, XMUINT2, XMINT3, XMUINT3, XMINT4, XMUINT4
XMLoadSInt2, XMLoadUInt2, XMLoadSInt3, XMLoadUInt3, XMLoadSInt4, XMLoadUInt4
XMStoreSInt2, XMStoreUInt2, XMStoreSInt3, XMStoreUInt3, XMStoreSInt4, XMStoreUInt4
- Marked most single-parameter C++ constructors with
explicit
keyword - Corrected range issues with SSE implementations of
XMVectorFloor
andXMVectorCeiling
See this post.
DirectX SDK (February 2010)
A minor revision to the library (version 2.02), includes a number of customer-reported fixes, optimizations, and improvements. Included are notable fixes to XMStoreColor
, XMQuaternionRotationMatrix
, XMVectorATan2
, and XMVectorATan2Est
DirectX SDK (August 2009)
XNA Math, version 2.01, now has new compiler directive, XM_STRICT_VECTOR4
. This opt-in directive disallows the usage of XboxMath-like member accessors such as .x, .y, and .z. This makes it easier to write portable XNA Math code.
Additionally, XNA Math has added conversion support for the following Windows graphics formats:
- 16-bit color formats (565, 555X, 5551)
- 4-bits per channel color formats (4444)
- Unique Direct3D 10/11 formats (
DXGI_FORMAT_R9G9B9E5_SHAREDEXP
andDXGI_FORMAT_R11G11B10_FLOAT
)
Windows SDK for Windows 8.1 (Spring 2015 Update)
DirectXMath 3.07 in VS 2013 Update 5 and VS 2015 RTM, the Windows phone 8.1 SDK Spring 2015 update, and the Windows 10 SDK (10240).
- Fix customer reported bugs in BoundingBox methods
- Fix customer reported bug in
XMStoreFloat3SE
- Fix customer reported bug in
XMVectorATan2
,XMVectorATan2Est
- Fix customer reported bug in
XMVectorRound
See this post.
This version is also available on NuGet.
Windows SDK For Windows 8 Developer Preview
New revision as DirectXMath (version 3.00) shipping in the ''VS 11 Developer Preview''.
- Renamed and reorganized the headers
- Introduced C++ namespaces (
DirectX
,DirectX::PackedVector
) - Removed the Xbox 360-specific GPU types (
HENDN3
,XMHEND3
,XMUHENDN3
,XMUHEND3
,XMDHENN3
,XMDHEN3
,XMUDHENN3
,XMUDHEN3
,XMXICON4
,XMXICO4
,XMICON4
,XMICO4
,XMUICON4
,XMUICO4
)
See this post.
Windows SDK for Windows 8.1 Preview
DirectXMath 3.05 shipped in the Visual Studio 2013 Preview
- Use x86/x64
__vectorcall
calling-convention when available (XM_CALLCONV, HXMVECTOR, FXMMATRIX introduced) - Fixed bug with
XMVectorFloor
andXMVectorCeiling
when given whole odd numbers (i.e. 105.0) - Improved
XMVectorRound
algorithm - ARM-NEON optimizations for
XMVectorExp2
,XMVectorLog2
,XMVectorExpE
, andXMVectorLogE
- ARM-NEON code paths use multiply-by-scalar intrinsics when supported
- Additional optimizations for ARM-NEON Stream functions
- Fixed potential warning C4723 using operator/ or operator/=
See this post
Windows SDK For Windows 8 Consumer Preview
DirectXMath shipping for ''VS 11 Beta''
- ARM-NEON intrinsics (selected by default for the ARM platform)
- reworked
XMVectorPermute
, change ofXM_PERMUTE_
defines, removal ofXMVectorPermuteControl
- Addition of
XM_SWIZZLE_
defines - Optimizations for transcendental functions
- Template forms for permute, swizzle, shift-left, rotate-left, rotation-right, and insert
- Removal of deprecated types and functions (
XM_CACHE_LINE_SIZE
define,XMVectorExpEst
,XMVectorLogEst
,XMVectorPowEst
,XMVectorSinHEs
,XMVectorCosHEst
,XMVectorTanHEst
,XMVector2InBoundsR
,XMVector3InBoundsR
,XMVector4InBoundsR
) - Removed
XM_STRICT_VECTOR4
;XMVECTOR
in NO-INTRINSICS always defined without .x, .y, .z, .w, .v, or .u - Additional bounding types
- SAL fixes and improvements
See this post.