ReadMe.txt 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. -----------
  2. DirectXMath
  3. -----------
  4. Copyright (c) Microsoft Corporation. All rights reserved.
  5. January 2017
  6. This package contains the DirectXMath library, an all inline SIMD C++ linear algebra library
  7. for use in games and graphics apps
  8. This code is designed to build with Visual Studio 2013, 2015, or 2017. It is recommended that you
  9. make use of the latest updates (VS 2013 Update 5 or VS 2015 Update 3).
  10. These components are designed to work without requiring any content from the DirectX SDK. For details,
  11. see "Where is the DirectX SDK?" <http://msdn.microsoft.com/en-us/library/ee663275.aspx>.
  12. Inc\
  13. DirectXMath Files (in the DirectX C++ namespace)
  14. DirectXMath.h - Core library
  15. DirectXPackedVector.h - Load/Store functions and types for working with various compressed GPU formats
  16. DirectXColors.h - .NET-style Color defines in sRGB color space
  17. DirectXCollision.h - Bounding volume collision library
  18. Extentions\
  19. Advanced instruction set variants for guarded codepaths
  20. DirectXMathSSE3.h - SSE3
  21. DirectXMathBE.h - Supplemental SSE3 (SSSE3)
  22. DirectXMathSSE4.h - SSE4.1
  23. DirectXMathAVX.h - Advanced Vector Extensions (AVX)
  24. DirectXMathAVX2.h - Advanced Vector Extensions 2 (AVX2)
  25. DirectXMathF16C.h - Half-precision conversions (F16C)
  26. DirectXMathFMA3.h - Fused multiply-accumulate (FMA3)
  27. DirectXMathFMA4.h - Fused multiply-accumulate (FMA4)
  28. SHMath\
  29. Spherical Harmonics math functions
  30. DirectXSH.h - Header for SHMath functions
  31. DirectXSH.cpp, DirectXSHD3D11.cpp - Implementation
  32. XDSP\
  33. XDSP.h - Digital Signal Processing helper functions
  34. All content and source code for this package are subject to the terms of the MIT License.
  35. <http://opensource.org/licenses/MIT>.
  36. Documentation is available at <https://msdn.microsoft.com/en-us/library/windows/desktop/hh437833.aspx>.
  37. For the latest version of DirectXMath, bug reports, etc. please visit the project site.
  38. <https://github.com/Microsoft/DirectXMath>
  39. This project has adopted the Microsoft Open Source Code of Conduct. For more information see the
  40. Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
  41. https://opensource.microsoft.com/codeofconduct/
  42. ---------------
  43. RELEASE HISTORY
  44. ---------------
  45. January 2017 (3.10)
  46. Added XMVectorSum for horizontal adds
  47. ARMv8 intrinsics use for ARM64 platform (division, rounding, half-precision conversion)
  48. Added SSE3 codepaths using opt-in _XM_SSE3_INTRINSICS_
  49. XMVectorRound fix for no-intrinsics to match round to nearest (even)
  50. XMStoreFloat3SE fix when max channel isn't a perfect power of 2
  51. constexpr conformance fix and workaround for compiler bug in VS 2015 RTM
  52. Remove support for VS 2012 compilers
  53. Remove __vector4i deprecated type
  54. June 2016 (3.09)
  55. Includes support for additional optimizations when built with /arch:AVX or /arch:AVX2
  56. Added use of constexpr for type constructors, XMConvertToRadians, and XMConvertToDegrees
  57. Marked __vector4i, XMXDEC4, XMDECN4, XMDEC4, and associated Load & Store functions as deprecated.
  58. These are vestiges of Xbox 360 support and will be removed in a future release
  59. Renamed parameter in XMMatrixPerspectiveFov* to reduce user confusion when relying on IntelliSense
  60. XMU565, XMUNIBBLE4 constructors take uint8_t instead of int8_t
  61. May 2016
  62. DirectXMath 3.08 released under the MIT license
  63. November 2015 (3.08)
  64. Added use of _mm_sfence for Stream methods
  65. Fixed bug with non-uniform scaling transforms for BoundingOrientedBox
  66. Added asserts for Near/FarZ in XMMatrix* methods
  67. Added use of =default for PODs with VS 2013/2015
  68. Additional SSE and ARM-NEON optimizations for PackedVector functions
  69. April 2015 (3.07)
  70. Fix customer reported bugs in BoundingBox methods
  71. Fix customer reported bug in XMStoreFloat3SE
  72. Fix customer reported bug in XMVectorATan2, XMVectorATan2Est
  73. Fix customer reported bug in XMVectorRound
  74. October 2013 (3.06)
  75. Fixed load/store of XMFLOAT3SE to properly match the DXGI_FORMAT_R9G9B9E5_SHAREDEXP
  76. Added XMLoadUDecN4_XR and XMStoreUDecN4_XR to match DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
  77. Added XMColorRGBToSRGB and XMColorSRGBToRGB to convert linear RGB <-> sRGB
  78. July 2013 (3.05)
  79. Use x86/x64 __vectorcall calling-convention when available (XM_CALLCONV, HXMVECTOR, FXMMATRIX introduced)
  80. Fixed bug with XMVectorFloor and XMVectorCeiling when given whole odd numbers (i.e. 105.0)
  81. Improved XMVectorRound algorithm
  82. ARM-NEON optimizations for XMVectorExp2, XMVectorLog2, XMVectorExpE, and XMVectorLogE
  83. ARM-NEON code paths use multiply-by-scalar intrinsics when supported
  84. Additional optimizations for ARM-NEON Stream functions
  85. Fixed potential warning C4723 using operator/ or operator/=
  86. March 2013 (3.04)
  87. XMVectorExp2, XMVectorLog2, XMVectorExpE, and XMVectorLogE functions added to provide base-e support in addition to the existing base-2 support
  88. XMVectorExp and XMVectorLog are now aliases for XMVectorExp2 and XMVectorLog2
  89. Additional optimizations for Stream functions
  90. XMVector3Cross now ensures w component is zero on ARM
  91. XMConvertHalfToFloat and XMConvertFloatToHalf now use IEEE 754 standard float16 behavior for INF/QNAN
  92. Updated matrix version Transform for BoundingOrientedBox and BoundingFrustum to handle scaling
  93. March 2012 (3.03)
  94. Breaking change: Removed union members from XMMATRIX type to make it a fully 'opaque' type
  95. Marked single-parameter C++ constructors for XMFLOAT2, XMFLOAT2A, XMFLOAT3, XMFLOAT3A, XMFLOAT4, and XMFLOAT4A explicit
  96. February 2012 (3.02)
  97. ARM-NEON intrinsics (selected by default for the ARM platform)
  98. reworked XMVectorPermute, change of XM_PERMUTE_ defines, removal of XMVectorPermuteControl
  99. Addition of XM_SWIZZLE_ defines
  100. Optimizations for transcendental functions
  101. Template forms for permute, swizzle, shift-left, rotate-left, rotation-right, and insert
  102. Removal of deprecated types and functions
  103. (XM_CACHE_LINE_SIZE define, XMVectorExpEst, XMVectorLogEst, XMVectorPowEst, XMVectorSinHEs, XMVectorCosHEst, XMVectorTanHEst,
  104. XMVector2InBoundsR, XMVector3InBoundsR, XMVector4InBoundsR)
  105. Removed XM_STRICT_VECTOR4; XMVECTOR in NO-INTRINSICS always defined without .x, .y, .z, .w, .v, or .u
  106. Additional bounding types
  107. SAL fixes and improvements
  108. September 2011 (3.00)
  109. Renamed and reorganized the headers
  110. Introduced C++ namespaces
  111. Removed the Xbox 360-specific GPU types
  112. (HENDN3, XMHEND3, XMUHENDN3, XMUHEND3, XMDHENN3, XMDHEN3,
  113. XMUDHENN3, XMUDHEN3, XMXICON4, XMXICO4, XMICON4, XMICO4, XMUICON4, XMUICO4 )