Releases: microsoft/DirectXMath
Release list
March 2013
DirectXMath 3.04
XMVectorExp2,XMVectorLog2,XMVectorExpE, andXMVectorLogEfunctions added to provide base-e support in addition to the existing base-2 supportXMVectorExpandXMVectorLogare now aliases forXMVectorExp2andXMVectorLog2- Additional optimizations for Stream functions
XMVector3Crossnow ensures w component is zero on ARMXMConvertHalfToFloatandXMConvertFloatToHalfnow use IEEE 754 standard float16 behavior for INF/QNAN- Updated matrix version Transform for
BoundingOrientedBoxandBoundingFrustumto handle scaling
Windows SDK for Windows 8
DirectXMath 3.03 shipping for Visual Studio 2012
- Breaking change: Removed union members from
XMMATRIXtype to make it a fully 'opaque' type - Marked single-parameter C++ constructors for
XMFLOAT2,XMFLOAT2A,XMFLOAT3,XMFLOAT3A,XMFLOAT4, andXMFLOAT4Aexplicit
See this post, and this post for known issues.
This version is also available on NuGet.
DirectX SDK (March 2009)
XNA Math provides developers a cross-platform native-code method of generating SIMD instructions without having to resort to special case code. Based on the Xbox 360 SDK's Xbox math library, this set of headers supports the most common vectorized math operations used in graphics and animation. The implementation supports Windows 32-bit (x86) and Windows 64-bit (x64) targets using SSE2 intrinsics, and is fully cross-platform with the optimized Xbox 360 XDK version.
DirectX SDK (June 2010)
XNA Math version 2.03 includes the following changes:
- Addition of
XMVectorDivideto 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/4X4Ato 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_XMMATRIXcompilation define has been added for opaqueXMMATRIX. - Stream stride and count arguments have been changed to
size_t - The pDeterminant parameter of
XMMatrixInverseis now optional - Additional operator= overloads for
XMBYTEN4,XMBYTE4,XMUBYTEN4, andXMUBYTE4types 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, XMUBYTE2XMLoadByteN2, XMLoadByte2, XMLoadUByteN2, XMLoadUByte2XMStoreByteN2, XMStoreByte2, XMStoreUByteN2, XMStoreUByte2XMINT2, XMUINT2, XMINT3, XMUINT3, XMINT4, XMUINT4XMLoadSInt2, XMLoadUInt2, XMLoadSInt3, XMLoadUInt3, XMLoadSInt4, XMLoadUInt4XMStoreSInt2, XMStoreUInt2, XMStoreSInt3, XMStoreUInt3, XMStoreSInt4, XMStoreUInt4
- Marked most single-parameter C++ constructors with
explicitkeyword - Corrected range issues with SSE implementations of
XMVectorFloorandXMVectorCeiling
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_SHAREDEXPandDXGI_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.