A pure rust translation of DirectXMath, a SIMD linear algebra library for use in games and graphics apps.
✔️ = Implemented, ❌ = Not yet implemented, 🚧 = In progress
API | 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.
†† All functions have links to the 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
, fma
, and avx2
intrinsics may be enabled via CPU target features.
RUSTFLAGS="-C target-feature=+sse3,+sse4.1,+avx,+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)