glam/
f32.rs

1mod affine2;
2mod affine3a;
3mod float;
4mod mat3;
5pub(crate) mod math;
6mod vec2;
7mod vec3;
8
9#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
10mod coresimd;
11
12#[cfg(any(
13    not(any(
14        feature = "core-simd",
15        target_feature = "sse2",
16        target_feature = "simd128"
17    )),
18    feature = "scalar-math"
19))]
20mod scalar;
21
22#[cfg(all(
23    target_feature = "sse2",
24    not(any(feature = "core-simd", feature = "scalar-math"))
25))]
26mod sse2;
27
28#[cfg(all(
29    target_feature = "simd128",
30    not(any(feature = "core-simd", feature = "scalar-math"))
31))]
32mod wasm32;
33
34#[cfg(any(
35    not(any(
36        feature = "core-simd",
37        target_feature = "sse2",
38        target_feature = "simd128"
39    )),
40    feature = "scalar-math"
41))]
42use scalar::*;
43
44#[cfg(all(
45    target_feature = "sse2",
46    not(any(feature = "core-simd", feature = "scalar-math"))
47))]
48use sse2::*;
49
50#[cfg(all(
51    target_feature = "simd128",
52    not(any(feature = "core-simd", feature = "scalar-math"))
53))]
54use wasm32::*;
55
56#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
57use coresimd::*;
58
59pub use affine2::Affine2;
60pub use affine3a::Affine3A;
61pub use mat2::{mat2, Mat2};
62pub use mat3::{mat3, Mat3};
63pub use mat3a::{mat3a, Mat3A};
64pub use mat4::{mat4, Mat4};
65pub use quat::{quat, Quat};
66pub use vec2::{vec2, Vec2};
67pub use vec3::{vec3, Vec3};
68pub use vec3a::{vec3a, Vec3A};
69pub use vec4::{vec4, Vec4};
70
71#[cfg(not(target_arch = "spirv"))]
72mod test {
73    use super::*;
74
75    #[cfg(all(not(feature = "cuda"), feature = "scalar-math"))]
76    mod const_test_affine2 {
77        const_assert_eq!(
78            core::mem::align_of::<super::Vec2>(),
79            core::mem::align_of::<super::Affine2>()
80        );
81        const_assert_eq!(24, core::mem::size_of::<super::Affine2>());
82    }
83
84    #[cfg(not(feature = "scalar-math"))]
85    mod const_test_affine2 {
86        const_assert_eq!(16, core::mem::align_of::<super::Affine2>());
87        const_assert_eq!(32, core::mem::size_of::<super::Affine2>());
88    }
89
90    mod const_test_mat2 {
91        #[cfg(feature = "scalar-math")]
92        const_assert_eq!(
93            core::mem::align_of::<super::Vec2>(),
94            core::mem::align_of::<super::Mat2>()
95        );
96        #[cfg(not(any(feature = "scalar-math", target_arch = "spirv")))]
97        const_assert_eq!(16, core::mem::align_of::<super::Mat2>());
98        const_assert_eq!(16, core::mem::size_of::<super::Mat2>());
99    }
100
101    mod const_test_mat3 {
102        const_assert_eq!(
103            core::mem::align_of::<f32>(),
104            core::mem::align_of::<super::Mat3>()
105        );
106        const_assert_eq!(36, core::mem::size_of::<super::Mat3>());
107    }
108
109    mod const_test_mat3a {
110        const_assert_eq!(16, core::mem::align_of::<super::Mat3A>());
111        const_assert_eq!(48, core::mem::size_of::<super::Mat3A>());
112    }
113
114    mod const_test_mat4 {
115        const_assert_eq!(
116            core::mem::align_of::<super::Vec4>(),
117            core::mem::align_of::<super::Mat4>()
118        );
119        const_assert_eq!(64, core::mem::size_of::<super::Mat4>());
120    }
121
122    mod const_test_quat {
123        #[cfg(feature = "scalar-math")]
124        const_assert_eq!(
125            core::mem::align_of::<f32>(),
126            core::mem::align_of::<super::Quat>()
127        );
128        #[cfg(not(any(feature = "scalar-math", target_arch = "spirv")))]
129        const_assert_eq!(16, core::mem::align_of::<super::Quat>());
130        const_assert_eq!(16, core::mem::size_of::<super::Quat>());
131    }
132
133    mod const_test_vec2 {
134        #[cfg(not(feature = "cuda"))]
135        const_assert_eq!(
136            core::mem::align_of::<f32>(),
137            core::mem::align_of::<super::Vec2>()
138        );
139        #[cfg(feature = "cuda")]
140        const_assert_eq!(8, core::mem::align_of::<super::Vec2>());
141        const_assert_eq!(8, core::mem::size_of::<super::Vec2>());
142    }
143
144    mod const_test_vec3 {
145        const_assert_eq!(
146            core::mem::align_of::<f32>(),
147            core::mem::align_of::<super::Vec3>()
148        );
149        const_assert_eq!(12, core::mem::size_of::<super::Vec3>());
150    }
151
152    mod const_test_vec3a {
153        const_assert_eq!(16, core::mem::align_of::<super::Vec3A>());
154        const_assert_eq!(16, core::mem::size_of::<super::Vec3A>());
155    }
156
157    mod const_test_vec4 {
158        #[cfg(all(feature = "scalar-math", not(feature = "cuda")))]
159        const_assert_eq!(
160            core::mem::align_of::<f32>(),
161            core::mem::align_of::<super::Vec4>()
162        );
163        #[cfg(not(feature = "scalar-math"))]
164        const_assert_eq!(16, core::mem::align_of::<super::Vec4>());
165        const_assert_eq!(16, core::mem::size_of::<super::Vec4>());
166    }
167}