
# DirectXMath
https://github.com/Microsoft/DirectXMath
Copyright (c) Microsoft Corporation.
**October 2024**
This package contains the DirectXMath library, an all inline SIMD C++ linear algebra library for use in games and graphics apps.
This code is designed to build with Visual Studio 2019 (16.11), Visual Studio 2022, or clang/LLVM for Windows. It is recommended that you make use of the latest updates.
These components are designed to work without requiring any content from the legacy DirectX SDK. For details, see [Where is the DirectX SDK?](https://aka.ms/dxsdk).
## Directory Layout
* ``Inc\``
+ DirectXMath Files (in the DirectX C++ namespace)
* DirectXMath.h - Core library
* DirectXPackedVector.h - Load/Store functions and types for working with various compressed GPU formats
* DirectXColors.h - .NET-style Color defines in sRGB and linear color space
* DirectXCollision.h - Bounding volume collision library
* ``Extentions\``
+ Advanced instruction set variants for guarded codepaths
* DirectXMathSSE3.h - SSE3
* DirectXMathBE.h - Supplemental SSE3 (SSSE3)
* DirectXMathSSE4.h - SSE4.1
* DirectXMathAVX.h - Advanced Vector Extensions (AVX)
* DirectXMathAVX2.h - Advanced Vector Extensions 2 (AVX2)
* DirectXMathF16C.h - Half-precision conversions (F16C)
* DirectXMathFMA3.h - Fused multiply-accumulate (FMA3)
* DirectXMathFMA4.h - Fused multiply-accumulate (FMA4)
* ``SHMath\``
+ Spherical Harmonics math functions
* DirectXSH.h - Header for SHMath functions
* DirectXSH.cpp, DirectXSHD3D11.cpp, DirectXSHD3D12.cpp - Implementation
* ``XDSP\``
+ XDSP.h - Digital Signal Processing helper functions
* ``build\``
+ Contains YAML files for the build pipelines along with some miscellaneous build files and scripts.
## Documentation
Documentation is available on the [Microsoft Docs](https://docs.microsoft.com/en-us/windows/desktop/dxmath/directxmath-portal). Additional information can be found on the [project wiki](https://github.com/microsoft/DirectXMath/wiki).
## Compiler support
Officially the library is supported with Microsoft Visual C++ 2019 or later, clang/LLVM v12 or later, and GCC 9 or later. It should also compile with the Intel C++ and MinGW compilers.
When building with clang/LLVM or other GNU C compilers, the ``_XM_NO_XMVECTOR_OVERLOADS_`` control define is set because these compilers do not support creating operator overloads for the ``XMVECTOR`` type. You can choose to enable this preprocessor define explicitly to do the same thing with Visual C++ for improved portability.
To build for non-Windows platforms, you need to provide a ``sal.h`` header in your include path. You can obtain an open source version from [GitHub](https://raw.githubusercontent.com/dotnet/runtime/main/src/coreclr/pal/inc/rt/sal.h).
With GCC, the SAL annotation preprocessor symbols can conflict with the GNU implementation of the Standard C++ Library. The workaround is to include the system headers before including DirectXMath:
```
#include <algorithm>
#include <utility>
#include <DirectXMath.h>
```
## Notices
All content and source code for this package are subject to the terms of the [MIT License](https://github.com/microsoft/DirectXMath/blob/main/LICENSE).
For the latest version of DirectXMath, bug reports, etc. please visit the project site on [GitHub](https://github.com/microsoft/DirectXMath).
## Release Notes
FOR SECURITY ADVISORIES, see [GitHub](https://github.com/microsoft/DirectXMath/security/advisories).
For a full change history, see [CHANGELOG.md](https://github.com/microsoft/DirectXMath/blob/main/CHANGELOG.md).
* The clang/LLVM toolset currently does not respect the ``float_control`` pragma for SSE instrinsics. Therefore, the use of ``/fp:fast`` is not recommended on clang/LLVM until this issue is fixed. See [55713](https://github.com/llvm/llvm-project/issues/55713).
## Support
For questions, consider using [Stack Overflow](https://stackoverflow.com/questions/tagged/directxmath) with the *directxmath* tag, or the [DirectX Discord Server](https://discord.gg/directx) in the *dx12-developers* or *dx9-dx11-developers* channel.
For bug reports and feature requests, please use GitHub [issues](https://github.com/microsoft/DirectXMath/issues) for this project.
## Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
Tests for new features should also be submitted as a PR to the [Test Suite](https://github.com/walbourn/directxmathtest/wiki) repository.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
## Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.
## Credits
The xboxmath library was originated by Matt Bronder with contributions from Sakphong Chanbai and David Hefner for the Xbox 360.
The xnamath library for the DirectX SDK and Xbox XDK was the work of Chuck Walbourn and Becky Heineman based on xboxmath, with contributions from Jeremy Gup, Dan Haffner, Matt Lee, Casey Meekhof, Rich Sauer, Jason Strayer, and Xiaoyue Zheng.
The DirectXMath library for the Windows SDK and Xbox One XDK is the work of Chuck Walbourn based on xnamath, with contributions from Darren Anderson, Matt Lee, Aaron Rodriguez Hernandez, Yuichi Ito, Reza Nourai, Rich Sauer, and Jason Strayer.
Thanks to Dave Eberly for his contributions particularly in improving the transcendental functions.
Thanks to Bruce Dawson for his help with the rounding functions.
Thanks to Andrew Farrier for the fixes to ``XMVerifyCPUSupport`` to properly support clang.
Thanks to Scott Matloff for his help in getting the library updated to use Intel SVML for VS 2019.

赵闪闪168
- 粉丝: 1729
- 资源: 6939
最新资源
- DSP280049C串口升级方案:全方位支持,包含Bootloader源码、上位机程序及用户示例工程,操作指南一览无余 ,DSP280049C串口升级方案:包含完整Bootloader源码与操作手册
- OBC&DCDC相关参数设计与计算
- 图书馆管理系统(SSH框架).zip(毕设&课设&实训&大作业&竞赛&项目)
- 基于BES秃鹰算法优化BP神经网络模型的多输入单输出拟合预测系统及其MATLAB程序实现,基于BES秃鹰智能算法的BP神经网络权值和阈值优化MATLAB实现,基于BES秃鹰智能算法优化BP神经网络模型
- JavaEE结课项目.zip(课设&实训&大作业&项目)
- 基于SSM+JSP的学生请假系统.zip(毕设&课设&实训&大作业&竞赛&项目)
- 全国大学生FPGA创新设计邀请赛的作品.zip
- 双层非线性优化模型:省内外电力市场及风险应对机制研究(以CVaR和线性转换为中心),基于CVaR方法的双层非线性优化模型在电力市场及省间交易中的研究与应用,主题:提出了一种双层非线性优化模型,将省内电
- 基于Qt的数据库应用课程设计-景点门票管理系统.zip(课设&实训&大作业&项目)
- Opencv实战基于python,银行卡识别、全景图片拼接、OCR图片识别.zip(毕设&课设&实训&大作业&竞赛&项目)
- 基于django的admin后台管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)
- 前后端分离的简易博客项目(vue+springboot).zip(毕设&课设&实训&大作业&竞赛&项目)
- 基于西门子S7-1200的停车场车位智能控制系统:传感器检测、PLC控制及HM画面组态仿真,基于西门子S7-1200智能停车场的车位管理系统 - 传感器监控与PLC自动化控制方案 ,基于西门子120
- 基于Vue框架的Sparkle项目:TypeScript、JavaScript、HTML前端技术实践源码
- 基于AdminLTE +Django + Mysql 的会议室管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)
- 西门子S7-1500 PLC在制药厂洁净空调系统中的精准控温控湿实践:包含冷水机组与洁净室空调机组案例研究,博图V15.1编程版本参考案例,西门子S7-1500 PLC在制药厂洁净空调系统中的精准控温
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


