# Crevice Changelog ## Unreleased Changes ## [0.16.0] - 2024-05-06 * Upgraded to glam 0.27. [0.16.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.16.0 ## 0.15.0 - 2024-03-16 * Fixed usage in no-std environments when using math library features ([#61]) * Upgraded to glam 0.25. [#61]: https://github.com/LPGhatguy/crevice/pull/61 ## [0.14.0] - 2023-09-08 * Upgraded to glam 0.24. * Upgraded to nalgebra 0.32. [0.14.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.14.0 ## [0.13.0] - 2023-03-20 * Upgraded to glam 0.23. [0.13.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.13.0 ## [0.12.0] - 2022-11-09 * Upgraded to glam 0.22. [0.12.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.12.0 ## [0.11.0] - 2022-07-01 * Upgraded to glam 0.21. [0.11.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.11.0 ## [0.10.0] - 2022-05-26 * Removed the now-obsolete `PAD_AT_END` associated value. ([#43]) * Added support for `Point` types from mint and all supported math libraries. ([#47]) * Added `as_bytes` to generated types, reducing the need to import traits. ([#48]) * Fixed `WriteStd430` on arrays writing the first element twice. ([#46]) * Fixed no_std build and drastically improved Crevice's CI pipeline. ([#54]) [#43]: https://github.com/LPGhatguy/crevice/pull/43 [#46]: https://github.com/LPGhatguy/crevice/pull/46 [#47]: https://github.com/LPGhatguy/crevice/pull/47 [#48]: https://github.com/LPGhatguy/crevice/pull/48 [#54]: https://github.com/LPGhatguy/crevice/pull/54 [0.10.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.10.0 ## [0.9.0] - 2022-05-26 * Added correct support for bool-based types. ([#39]) * Updated to glam 0.20 and nalgebra 0.31. [#39]: https://github.com/LPGhatguy/crevice/pull/39 [0.9.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.9.0 ## [0.8.0] - 2021-10-26 * Added support for many math libraries directly: ([#37]) * cgmath 0.18, behind the `cgmath` feature * nalgebra 0.29, behind the `nalgebra` feature * glam 0.19, behind the `glam` feature * Added support for generating GLSL source from structs. ([#33]) * Fixed many, many subtle alignment bugs. ([#28], [#35]) * Disabled bool-based types temporarily ([#36]) * Renamed `AsStdN::StdNType` to `Output`. * Increased MSRV to 1.52.1. [#28]: https://github.com/LPGhatguy/crevice/issues/28 [#33]: https://github.com/LPGhatguy/crevice/pull/33 [#35]: https://github.com/LPGhatguy/crevice/pull/35 [#36]: https://github.com/LPGhatguy/crevice/issues/36 [#37]: https://github.com/LPGhatguy/crevice/pull/37 [0.8.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.8.0 ## [0.7.1] - 2021-07-24 * Fixed broken crates.io release by publishing crevice-derive too. [0.7.1]: https://github.com/LPGhatguy/crevice/releases/tag/v0.7.1 ## [0.7.0] - 2021-07-20 (Yanked) **This release was yanked due to an issue reported in [#32].** * Added `ivec`, `uvec`, and `bvec` structs ([#18]) * Improved padding behavior for structs and matrices ([#20]) * Implemented Crevice traits for more types ([#23]) * Added conversions from Std* types to AsStd* types ([#24]) * Added no_std support ([#25]) [#18]: https://github.com/LPGhatguy/crevice/pull/18 [#20]: https://github.com/LPGhatguy/crevice/pull/20 [#23]: https://github.com/LPGhatguy/crevice/pull/23 [#24]: https://github.com/LPGhatguy/crevice/pull/24 [#25]: https://github.com/LPGhatguy/crevice/pull/25 [#32]: https://github.com/LPGhatguy/crevice/issues/32 [0.7.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.7.0 ## [0.6.0] - 2021-02-24 * Added `std430` support. Most APIs between `std140` and `std430` are the same! * Added the `WriteStd140` trait. This trait is more general than `AsStd140` and is automatically implemented for all existing `AsStd140` implementers. * Added `Writer::write_std140` to write a type that implements `Std140`. * Added `AsStd140::std140_size_static`. This is similar to the old size method, `std140_size`, but no longer requires a value to be passed. For size measurements that depend on a value, use `WriteStd140::std140_size` instead. * Deprecated `Writer::write_slice`, as `Writer::write` now accepts slices. * Changed bounds of some functions, like `Writer::write` to use `WriteStd140` instead of `AsStd140`. This should affect no existing consumers. * Moved `std140_size` from `AsStd140` to `WriteStd140`. Some existing consumers may need to import the other trait to access this m ethod. [0.6.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.6.0 ## [0.5.0] - 2020-10-18 * Added f64-based std140 types: `DVec2`, `DVec3`, `DVec4`, `DMat2`, `DMat3`, and `DMat4`. * Added support for std140 structs with alignment greater than 16. * Fixed padding for std140 matrices; they were previously missing trailing padding. [0.5.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.5.0 ## [0.4.0] - 2020-10-01 * Added `AsStd140::std140_size` for easily pre-sizing buffers. * `Writer::write` and `Sizer::add` now return the offset the value is or would be written to. * Added `std140::DynamicUniform` for aligning dynamic uniform members. * Added `Writer::write_slice` for writing multiple values in a row. [0.4.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.4.0 ## [0.3.0] - 2020-09-22 * Added `Std140::as_bytes`, reducing the need to work with bytemuck directly. * Removed public re-export of bytemuck. [0.3.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.3.0 ## [0.2.0] - 2020-09-22 * Added documentation for everything in the crate. * Removed `type_layout` being exposed except for internal tests. * Fixed alignment offset not taking into account previously added alignment. * Added `std140::Writer`, for writing dynamically laid out types to buffers. * Added `std140::Sizer`, for pre-calculating buffer sizes. [0.2.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.2.0 ## [0.1.0] - 2020-09-18 * Initial MVP release [0.1.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.1.0