A rust translation of DirectXMath, a SIMD linear algebra library for use in games and graphics apps.
✔️ = Implemented, ❌ = Not yet implemented, 🚧 = In progress
API Feature | Implemented |
---|---|
Vector | ✔️ |
Vector 2D | ✔️ |
Vector 3D | ✔️ |
Vector 4D | ✔️ |
Quaternion | ✔️ |
Matrix | ✔️ |
Streaming Transforms | ❌ |
Color | ❌ |
Load/Store/Accessors | ✔️ † |
Plane | ✔️ |
Collision | ✔️ |
Documentation | ✔️ †† |
† Some alternate forms of the load/store operations are not yet implemented.
†† Most documentation has been ported and all functions have links to the official DirectXMath documentation.
x86 / x86_64 | ARM | No intrinsics fallback |
---|---|---|
✔️ | ❌ (will fallback to no-intrinsics) | ✔️ |
Intrinsics may be disabled with the no_intrinsics
feature. This is the implicit behavior
if SIMD intrinsics are not available on the target architecture.
Note that only sse
and sse2
are enabled by default for x86
and x86-64
targets.
The sse3
, sse4.1
, avx
, f16c
, fma
, and avx2
intrinsics may be enabled via CPU target features.
RUSTFLAGS="-C target-feature=+sse3,+sse4.1,+avx,+f16c,+fma,+avx2" cargo build
- DirectXMath is Copyright (c) Microsoft Corporation.
- DirectXMath for Rust is an independent translation and not affiliated with Microsoft Corporation.
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)