mirror of
https://github.com/bevyengine/bevy
synced 2024-11-14 00:47:32 +00:00
7.5 KiB
7.5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.8.7 - 2020-04-28
Added
- Added
Quat::slerp
- note that this uses asin
approximation. - Added
angle_between
method forVec2
andVec3
. - Implemented
Debug
,Display
,PartialEq
,Eq
,PartialOrd
,Ord
,Hash
, andAsRef
traits forVec2Mask
,Vec3Mask
andVec4Mask
. - Added conversion functions from
Vec2Mask
,Vec3Mask
andVec4Mask
to an array of[u32]
. - Added
build.rs
to simplify conditional feature compilation.
Changed
- Removed
cfg-if
dependency. - Increased test coverage.
0.8.6 - 2020-02-18
Added
- Added the
packed-vec3
feature flag to disable using SIMD types forVec3
andMat3
types. This avoids wasting some space due to 16 byte alignment at the cost of some performance. - Added
x_mut
,y_mut
,z_mut
,w_mut
where appropriate toVec2
,Vec3
andVec4
. - Added implementation of
core::ops::Index
andcore::ops::IndexMut
forVec2
,Vec3
andVec4
.
Changed
- Merged SSE2 and scalar
Vec3
andVec4
implementations into single files using thecfg-if
crate.
0.8.5 - 2020-01-02
Added
- Added projection functions
Mat4::perspective_lh
,Mat4::perspective_infinite_lh
,Mat4::perspective_infinite_reverse_lh
,Mat4::orthgraphic_lh
andMat4::orthographic_rh
. - Added
round
,ceil
andfloor
methods toVec2
,Vec3
andVec4
.
0.8.4 - 2019-12-17
Added
- Added
Mat4::to_scale_rotation_translation
for extracting scale, rotation and translation from a 4x4 homogeneous transformation matrix. - Added
cargo-deny
GitHub Action.
Changed
- Renamed
Quat::new
toQuat::from_xyzw
.
0.8.3 - 2019-11-27
Added
- Added
Mat4::orthographic_rh_gl
.
Changed
- Renamed
Mat4::perspective_glu_rh
toMat4::perspective_rh_gl
. - SSE2 optimizations for
Mat2::determinant
,Mat2::inverse
,Mat2::transpose
,Mat3::transpose
,Quat::conjugate
,Quat::lerp
,Quat::mul_vec3
,Quat::mul_quat
andQuat::from_rotation_ypr
. - Disabled optimizations to
Mat4::transform_point3
andMat4::transform_vector3
as they are probably incorrect and need investigating. - Added missing
#[repr(C)]
toMat2
,Mat3
andMat4
. - Benchmarks now store output of functions to better estimate the cost of a function call.
Removed
- Removed deprecated functions
Mat2::new
,Mat3::new
andMat4::new
.
0.8.2 - 2019-11-06
Changed
glam_assert!
is no longer enabled by default in debug builds, it can be enabled in any configuration using theglam-assert
feature or in debug builds only using thedebug-glam-assert
feature.
Removed
glam_assert!
's checkinglerp
is bounded between 0.0 and 1.0 and that matrix scales are non-zero have been removed.
0.8.1 - 2019-11-03
Added
- Added
Display
trait implementations forMat2
,Mat3
andMat4
.
Changed
- Disabled
glam
's SSE2sin_cos
implementation - it became less precise for large angle values. - Reduced the default epsilon used by the
is_normalized!
macro fromstd::f32::EPSILON
to1e-6
.
0.8.0 - 2019-10-14
Removed
- Removed the
approx
crate dependency. Eachglam
type has anabs_diff_eq
method added which is used by unit tests for approximate floating point comparisons. - Removed the
Angle
type. All angles are nowf32
and are expected to be in radians. - Removed the deprecated
Vec2b
,Vec3b
andVec4b
types and themask
methods onVec2Mask
,Vec3Mask
andVec4Mask
.
Changed
- The
rand
crate dependency has been removed from default features. This was required for benchmarking but a simple random number generator has been added to the benchessupport
module instead. - The
From
trait implementation converting between 1D and 2Df32
arrays and matrix types have been removed. It was ambiguous how array data would map to matrix columns so these have been replaced with explicit methodsfrom_cols_array
andfrom_cols_array_2d
. - Matrix
new
methods have been renamed tofrom_cols
to be consistent with the other methods that create matrices from data. - Renamed
Mat4::perspective_glu
toMat4::perspective_glu_rh
.
0.7.2 - 2019-09-22
Fixed
- Fixed incorrect projection matrix methods
Mat4::look_at_lh
andMat4::look_at_rh
.
Added
- Added support for building infinite projection matrices, including both
standard and reverse depth
Mat4::perspective_infinite_rh
andMat4::perspective_infinite_rh
. - Added
Vec2Mask::new
,Vec3Mask::new
andVec4Mask::new
methods. - Implemented
std::ops
BitAnd
,BitAndAssign
,BitOr
,BitOrAssign
andNot
traits forVec2Mask
,Vec3Mask
andVec4Mask
. - Added method documentation for
Vec4
andVec4Mask
types. - Added missing
serde
implementations forMat2
,Mat3
andMat4
. - Updated
rand
andcriterion
versions.
0.7.1 - 2019-07-08
Fixed
- The SSE2 implementation of
Vec4
dot
was missing a shuffle, meaning thedot
,length
,length_squared
,length_reciprocal
andnormalize
methods were sometimes incorrect.
Added
- Added the
glam_assert
macro which behaves like Rust'sdebug_assert
but can be enabled separately todebug_assert
. This is used to perform asserts on correctness. - Added
is_normalized
method toVec2
,Vec3
andVec4
.
Changed
- Replaced usage of
std::mem::uninitialized
withstd::mem::MaybeUninit
. This change requires stable Rust 1.36. - Renamed
Vec2b
toVec2Mask
,Vec3b
toVec3Mask
andVec4b
toVec4Mask
. Old names are aliased to the new name and deprecated. - Deprecate
VecNMask
mask
method, use newbitmask
method instead - Made fallback version of
VecNMask
types the same size and alignment as the SIMD versions. - Added
Default
support toVecNMask
types, will add more common traits in the future. - Added
#[inline]
tomat2
,mat3
andmat4
functions.
0.7.0 - 2019-06-28
Added
- Added
Mat2
into[f32; 4]
,Mat3
into[f32; 9]
andMat4
into[f32; 16]
.
Changed
- Removed
impl Mul<&Vec2> for Mat2
andimpl Mul<&Vec3> for Vec3
as these don't exist for any other types.
0.6.1 - 2019-06-22
Changed
Mat2
now uses aVec4
internally which gives it some performance improvements when SSE2 is available.
0.6.0 - 2019-06-13
Changed
- Switched from row vectors to column vectors
- Vectors are now on the right of multiplications with matrices and quaternions.