# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog][kc], and this project adheres to
[Semantic Versioning][sv].
[kc]: http://keepachangelog.com/
[sv]: http://semver.org/
## [Unreleased]
### Added
### Changed
### Fixed
## [0.15.3] - 2020-08-22
0.15.3 is a corrected version of 0.15.2, which was inadvertently published based off of an incorrect (and broken) commit.
## [0.15.2] - 2020-08-22 - YANKED
### Changed
- Internal CI improvements
- Recommend `cargo new pong` instead of deprecated `amethyst new pong` in the book tutorial ([#2448])
### Fixed
- Fix `Camera::screen_ray` bug introduced in 0.15.1 ([#2447])
[#2447]: https://github.com/amethyst/amethyst/pull/2447
[#2448]: https://github.com/amethyst/amethyst/pull/2448
## [0.15.1] - 2020-08-14
### Added
- New `optional_graphics` example demonstrating running an app with and without graphics ([#2282])
- Return a standalone `Dispatcher` from `GameDataBuilder::build_dispatcher`
instead of using `DataInit` to build a `GameData` ([#2294])
- Added _User Interface_ chapter to The Book ([#2311], [#2346], [#2347], [#2368], [#2373])
- Support text alignment in `UiButton` and `UiLabel` ([#2316])
- You can now bind multiple inputs to a single axis via `Axis::Multiple` ([#2341])
- Support layer to be set in `UiLabelBuilder` ([#2358])
- Support line mode to be set in `UiLabelBuilder` and `UiButtonBuilder` ([#2358])
- `GltfPrefab` now also imports lights from a glTF source ([#2362])
- Added _Tiles_ chapter to The Book ([#2391])
- Added `SpriteRender::new` for cleaner instantiation ([#2395], [#2419])
- `amethyst_ui::UiButtonActionRetrigger` now derives `Default` and `Clone`. ([#2388])
### Changed
- Removed far plane from perspective projection ([#2118])
- Experimented with CI solutions, selected GitHub Actions. Fixed bors & stalebot. ([#2262], [#2380], [#2382], [#2410], [#2413], [#2414], [#2415])
- `amethyst_rendy::shape::Shape::upload` takes `&ShapeUpload`. ([#2264])
- Updated examples, with special attention to the pong example. Improved readmes, updated screenshots, colocated assets with example code ([#2248], [#2289], [#2305], [#2201], [#2310], [#2312], [#2349], [#2384], [#2396], [#2422])
- `UiText` now requires 2 more arguments `line_mode` and `align` ([#2358])
- Updated the style of The Book ([#2355])
### Fixed
- Fix tile example's `MapMovementSystem` to look for the correct components ([#2209])
- Fix issue where all `TileMap`s were rendered with the same transformation. ([#2210])
- Fix the bind method for `DynamicVertexBuffer::<B,u32>` ([#2221])
- Fix examples which would not run due to incorrect system order. ([#2213], [#2223], [#2239], [#2243], [#2267])
- Fix Texture asset debugging representation ([#2231])
- Fix fixed updates being tied to time_scale ([#2255])
- Fix incorrect assets being used when asset handles get reused ([#2258])
- Fix bug causing only one TileMap to be rendered ([#2296])
- Fix `UiButtonBuilder` so buttons it builds get rendered ([#2299])
- Fix `Tint` so its color is converted from sRGBA to linear RGBA so shader color is correct. Also update various documentation regarding linear RGBA ([#2314], [#2398])
- Fix text alignment in `UiText` ([#2316], [#2358])
- Fix release build path resolution on Windows ([#2337])
- Fix textures sometimes showing up incorrectly or not at all. ([#2339])
[#2118]: https://github.com/amethyst/amethyst/pull/2118
[#2201]: https://github.com/amethyst/amethyst/pull/2201
[#2209]: https://github.com/amethyst/amethyst/pull/2209
[#2210]: https://github.com/amethyst/amethyst/issues/2210
[#2213]: https://github.com/amethyst/amethyst/pull/2213
[#2221]: https://github.com/amethyst/amethyst/pull/2221
[#2223]: https://github.com/amethyst/amethyst/pull/2223
[#2231]: https://github.com/amethyst/amethyst/pull/2231
[#2239]: https://github.com/amethyst/amethyst/pull/2239
[#2243]: https://github.com/amethyst/amethyst/pull/2243
[#2248]: https://github.com/amethyst/amethyst/pull/2248
[#2254]: https://github.com/amethyst/amethyst/issues/2254
[#2255]: https://github.com/amethyst/amethyst/pull/2255
[#2258]: https://github.com/amethyst/amethyst/pull/2258
[#2262]: https://github.com/amethyst/amethyst/pull/2262
[#2264]: https://github.com/amethyst/amethyst/pull/2264
[#2267]: https://github.com/amethyst/amethyst/pull/2267
[#2282]: https://github.com/amethyst/amethyst/pull/2282
[#2289]: https://github.com/amethyst/amethyst/pull/2289
[#2294]: https://github.com/amethyst/amethyst/pull/2294
[#2296]: https://github.com/amethyst/amethyst/pull/2296
[#2299]: https://github.com/amethyst/amethyst/pull/2299
[#2305]: https://github.com/amethyst/amethyst/pull/2305
[#2310]: https://github.com/amethyst/amethyst/pull/2310
[#2311]: https://github.com/amethyst/amethyst/pull/2311
[#2312]: https://github.com/amethyst/amethyst/pull/2312
[#2314]: https://github.com/amethyst/amethyst/pull/2314
[#2316]: https://github.com/amethyst/amethyst/pull/2316
[#2337]: https://github.com/amethyst/amethyst/pull/2337
[#2339]: https://github.com/amethyst/amethyst/pull/2339
[#2341]: https://github.com/amethyst/amethyst/pull/2341
[#2346]: https://github.com/amethyst/amethyst/pull/2346
[#2347]: https://github.com/amethyst/amethyst/pull/2347
[#2349]: https://github.com/amethyst/amethyst/pull/2349
[#2355]: https://github.com/amethyst/amethyst/pull/2355
[#2358]: https://github.com/amethyst/amethyst/pull/2358
[#2362]: https://github.com/amethyst/amethyst/pull/2362
[#2368]: https://github.com/amethyst/amethyst/pull/2368
[#2373]: https://github.com/amethyst/amethyst/pull/2373
[#2380]: https://github.com/amethyst/amethyst/pull/2380
[#2382]: https://github.com/amethyst/amethyst/pull/2382
[#2384]: https://github.com/amethyst/amethyst/pull/2384
[#2388]: https://github.com/amethyst/amethyst/pull/2388
[#2391]: https://github.com/amethyst/amethyst/pull/2391
[#2395]: https://github.com/amethyst/amethyst/pull/2395
[#2398]: https://github.com/amethyst/amethyst/pull/2398
[#2410]: https://github.com/amethyst/amethyst/pull/2410
[#2413]: https://github.com/amethyst/amethyst/pull/2413
[#2414]: https://github.com/amethyst/amethyst/pull/2414
[#2415]: https://github.com/amethyst/amethyst/pull/2415
[#2419]: https://github.com/amethyst/amethyst/pull/2419
[#2422]: https://github.com/amethyst/amethyst/pull/2422
## [0.15.0] - 2020-03-24
### Added
- Support settings module log levels from a RON file. ([#2115])
- Export the `get_parent_pixel_size` functions from the ui module. ([[#2128])
- Export the `pixel_width` and `pixel_height` methods on the `UiTransform`. ([[#2128])
- Support UiEvents targeting multiple overlapping entities. ([#2138])
- `"storage-event-control"` feature enables the `specs` `"storage-event-control"` feature. ([#2152])
### Changed
- Re-export `TargetedEvent` from `amethyst_ui`. ([#2114])
- `amethyst::ui::Anchor` is now `Copy`. ([#2148])
- `amethyst::ui::LineMode` is now `Copy`. ([#2148])
- `UiButtonBuilder::build` takes in `&mut UiButtonBuilderResources`. ([#2148])
- ***Breaking:*** `UiBundle` depends on `InputBundle` being registered with the dispatcher first. ([#2151])
- Re-export `UiImageLoadPrefab` from `amethyst_ui`. ([#2169], [#2181])
- Don't remove `HiddenPropagate` components set by users manually. ([#2155])
### Removed
- `"nightly"` feature is removed, missing resource panic message includes type name on stable. ([#2136])
### Fixed
- Fixed an issue with `states_ui` example loading items incorrectly. ([#2117])
- Editable text fields now correctly highlight strings containing spaces. ([#2108], [#2143])
- Caret for editable text box is drawn in correct position. ([#2146], [#2149])
- Caret for editable text box is positioned correctly on first click. ([#2151])
- Editable text is correctly blurred / unfocused when clicking outside its bounds. ([#2091], [#2151])
- `amethyst_test` crate features now map 1-1 to `amethyst` features. ([#2153])
[#1917]: https://github.com/amethyst/amethyst/pull/1917
[#1988]: https://github.com/amethyst/amethyst/pull/1988
[#2091]: https://github.com/amethyst/amethyst/issues/2091
[#2108]: https://github.com/amethyst/amethyst/issues/2108
[#2114]: https://github.com/amethyst/amethyst/pull/2114
[#2115]: https://github.com/amethyst/amethyst/pull/2115
[#2117]: https://github.com/amethyst/amethyst/pull/2117
[#2128]: https://github.com/amethyst/amethyst/pull/2128
[#2136]: https://github.com/amethyst/amethyst/pull/2136
[#2138]: https://github.com/amethyst/amethyst/pull/2138
[#2143]: https://github.com/amethyst/amethyst/pull/2143
[#2146]: https://github.com/amethyst/amethyst/issues/2146
[#2148]: https://github.com/amethyst/amethyst/pull/2148
[#2149]: https://github.com/amethyst/amethyst/pull/2149
[#2151]: https://github.com/amethyst/amethyst/pull/2151
[#2152]: https://github.com/amethyst/amethyst/pull/2152
[#2153]: https://github.com/amethyst/amethyst/pull/2153
[#2155]: https://github.com/amethyst/amethyst/pull/2155
[#2169]: https://github.com/amethyst/amethyst/pull/2169
[#2181]: https://github.com/amethyst/amethyst/pull/2181
## [0.14.0] - 2020-01-30
### Added
- Implement `Debug` for `ProgressCounter` and `ProgressCounterTracker`. ([#1973])
- Added a custom render pass Example. ([#1904])
- Add an entry for `examples/tiles` to the examples readme. ([#1978])
- Added UI states/menu example. [#1986]
- Allow user to specify custom completion function in `amethyst_test::WaitForLoad`. ([#1984])
- Log warning when `amethyst_test::WaitForLoad` has not completed in 10 seconds. ([#1984])
- Derive `Copy` and `PartialEq` for `amethyst::renderer::resources::Tint`. ([#2033])
- Derive `Hash` for `amethyst::input::{Button, ControllerButton, ScrollDirection}`. ([#2041])
- Added Trans::Replace, Trans::NewStack, and Trans::Sequence to the State Machine Transitions. ([#2067],[#2071])
- Add rendy/gfx-backend log verbosity through configuration. ([#1652]) ([#2048])
- Add `Draggable` component that can be used with `UiTransform` to make widgets draggable. ([#2080])
### Changed
- Use a premultiplied view_proj matrix in vertex shaders. ([#1964])
- amethyst_network completely rewritten to provide a new baseline with which to build. ([#1917])
- Cleaned up tiles example. Added rotation and translation tests, fixed raycast debug box. Added default zoom to PROJECT
perspective projection since no one knew to zoom out. ([#1974])
- TileMaps to_tile and to_world now take an Option<&Transform> that allows them to work if the entire map in
translated. ([#1987],[#1991])
- `AmethystApplication::with_fn` constraint relaxed from `Fn` to `FnOnce`. ([#1983])
- ScreenDimensions now consistently reports window size in physical pixels. ([#1988])
- `Config::load` now returns an error or failure rather than silently falling back to the default config. Same is true for the `from_config_file` methods on `RenderToWindow`, `WindowBundle`, and `WindowSystem` ([#1989])
- Adds `get` methods to the underlying net::transport resources ([#2005])
- Changed `SpriteSheetFormat::import_simple` to allow importing grid based `SpriteSheets` ([#2023])
Migration Note: Rons need to wrap their content in either Grid() or List()
***Migration Note:*** Rons need to wrap their content in either `Grid()` or `List()`
- TileMap to_tile doesn't panic in debug mode. It instead return Result<Point<u32>,TileOutOfBounds>. ([#2020],[#2070])
- Added new Error options for `NetworkSimulationEvent`.
- Changed amethyst config directory from `$HOME/.amethyst` to `$HOME/.config/amethyst` ([#2079])
- Changed `world_to_screen` camera transformation to match inverse of the one in `screen_ray` ([#2057])
- `amethyst_input::Axis::Mouse` now only has a single radius value. One of the two values was guaranteed to be unused. ([#2099])
- Updated `rodio` from `0.9` to `0.10`. ([#2044])
- Updated `cpal` from `0.8` to `0.10`. ([#2044])
### Deprecated
- `Config::load_no_fallback`, use `Config::load` instead ([#1989])
### Removed
### Fixed
- Tilemap rotation was incorrect and not transposed. Fixed and uses component rotation. ([#1974])
- `Config` types no longer require a `Default` impl ([#1989])
- Fixed Incorrect path for sprite_camera_follow example ([#2004])
- Run `System::setup` for pausable systems' delegate. ([#2029])
- Fixed an incorrect dimensions being used in Tile Encoders, causing bad lookups in assymetric maps in any Z-level besides 0 ([#2017])
- Fix encoders dimensional cases and optimize storage space ([#2059])
- Fixed off by one issue in to_tile function ([#2103])
- Fix dragging UI widgets that have ScaleMode::Percent ([#2111])
### Security
[#1652]: https://github.com/amethyst/amethyst/issues/1652
[#1904]: https://github.com/amethyst/amethyst/pull/1904
[#1964]: https://github.com/amethyst/amethyst/pull/1964
[#1973]: https://github.com/amethyst/amethyst/pull/1973
[#1974]: https://github.com/amethyst/amethyst/pull/1974
[#1978]: https://github.com/amethyst/amethyst/pull/1978
[#1987]: https://github.com/amethyst/amethyst/issue/1987
[#1983]: https://github.com/amethyst/amethyst/pull/1983
[#1991]: https://github.com/amethyst/amethyst/pull/1991
[#1984]: https://github.com/amethyst/amethyst/pull/1984
[#1986]: https://github.com/amethyst/amethyst/pull/1986
[#1989]: https://github.com/amethyst/amethyst/pull/1989
[#2004]: https://github.com/amethyst/amethyst/pull/2004
[#2005]: https://github.com/amethyst/amethyst/pull/2005
[#2017]: https://github.com/amethyst/amethyst/pull/2017
[#2020]: https://github.com/amethyst/amethyst/issue/2020
[#2023]: https://github.com/amethyst/amethyst/pull/2023
[#2029]: https://github.com/amethyst/amethyst/pull/2029
[#2033]: https://github.com/amethyst/amethyst/pull/2033
[#2041]: https://github.com/amethyst/amethyst/pull/2041
[#2044]: https://github.com/amethyst/amethyst/pull/2044
[#2048]: https://github.com/amethyst/amethyst/pull/2048
[#2057]: https://github.com/amethyst/amethyst/issues/2057
[#2059]: https://github.com/amethyst/amethyst/pull/2059
[#2067]: https://github.com/amethyst/amethyst/issue/2067
[#2070]: https://github.com/amethyst/amethyst/pull/2070
[#2071]: https://github.com/amethyst/amethyst/pull/2071
[#2079]: https://github.com/amethyst/amethyst/pull/2079
[#2080]: https://github.com/amethyst/amethyst/pull/2080
[#2099]: https://github.com/amethyst/amethyst/issues/2099
[#2103]: https://github.com/amethyst/amethyst/pull/2103
[#2111]: https://github.com/amethyst/amethyst/pull/2111
## [0.13.3] - 2019-10-4
### Fixed
- Fixed a silent shader error causing amethyst_tiles not to work. ([#1968])
[#1968]: https://github.com/amethyst/amethyst/pull/1968
## [0.13.2] - 2019-10-4
### Fixed
- Fix fluent and unic-langid alignment ([#1966])
[#1966]: https://github.com/amethyst/amethyst/pull/1966
## [0.13.1] - 2019-10-3
### Added
- `FlatEncoder` added to amethyst_tiles for flat linear encoding which is optimized for space. ([#1950])
- `SystemDesc` derive no longer requires any imports. ([#1995])
### Changed
- Updated `syn`, `quote`, and `proc-macro2` to `1.0`. ([#1952])
### Fixed
- `TileMap` was not allocating enough space for to compensate for morton encoding alignment. This means that
all tilemap allocation must occur on 2^n boundary aligned on all axis (or x-y axis for Morton2D) ([#1950])
- Add missing re-export for HideHierarchySystemDesc ([#1945])
- `TileArgs` POD had incorrect format for `tile_coordinate` argument, caused a crash on metal backend. ([#1957])
[#1945]: https://github.com/amethyst/amethyst/pull/1945
[#1950]: https://github.com/amethyst/amethyst/pull/1950
[#1952]: https://github.com/amethyst/amethyst/pull/1952
[#1957]: https://github.com/amethyst/amethyst/pull/1957
[#1995]: https://github.com/amethyst/amethyst/pull/1995
## [0.13.0] - 2019-09-25
### Major breaking changes
- Systems needing initialization with world resources must go through a `SystemDesc` intermediate builder. ([#1780])
### Added
- `SystemDesc` proc macro derive to simplify defining `SystemDesc`s. ([#1780])
- `UiButtonData` is now exported from `amethyst_ui` and can be used for custom widgets. ([#1859])
- Add an audio subchapter to the pong chapter. ([#1842])
- Add `DispatcherOperation` to store dispatcher build logic, which can be executed lazily. ([#1870])
- `AmethystApplication` takes in `SystemDesc`s through `with_system_desc`. ([#1882])
- `AmethystApplication::with_thread_local_desc` takes in `RunNowDesc`. ([#1882])
- Add `NineSlice` support to `UiImage`. ([#1896])
- `RenderingBundle` for full manual control of the rendering pipeline via a custom `GraphCreator`. ([#1839])
- `CameraOrtho::new` takes in `CameraOrthoWorldCoordinates`, which can be set to custom dimensions. ([#1916])
- `Camera::screen_ray` method added, returning an appropriate `Ray` structure ([#1918]).
- `amethyst_test`: `InMemorySource` and `WaitForLoad` helpers ([#1933]).
- Animations are available with `UiTransform`s. ([#1935])
### Changed
- All `-Builder` structs in amethyst_ui/prefab.rs are now called `-Data`. ([#1859])
- `AmethystApplication` takes in a `System` instead of a closure for `with_system`. ([#1882])
- `AmethystApplication::with_thread_local` constraint relaxed to `RunNow` (previously `System`). ([#1882])
- `SystemDesc` proc macro supports `#[system_desc(event_reader_id)]` to register event reader. ([#1883])
- `SystemDesc` proc macro supports `#[system_desc(flagged_storage_reader(Component))]`. ([#1886])
- Use `SystemDesc` derive to generate `SystemDesc` implementations for common case systems. ([#1887])
- `DispatcherOperation` stores system name and dependencies as `String`s. ([#1891])
- `TextureProcessor` renamed to `TextureProcessorSystem`. ([#1839])
- `MeshProcessor` renamed to `MeshProcessorSystem`. ([#1839])
- `AmethystApplication::with_setup` now takes in `FnOnce(&mut World) + Send + 'static`. ([#1912])
- `AmethystApplication::with_setup` runs the function before the dispatcher. ([#1912])
- `UiImage:PartialTexture` & `UiImage:Sprite` texture coordinates are correct. Clarified types. ([#1906],[#1919])
- `Camera::screen_to_world` renamed `Camera::screen_to_world_point` and its API has changed to a Point3 ([#1918]).
- 'amethyst_tiles' crate added supporting 2d and 3d tile map rendering with sprites. ([#1820])
### Fixed
- `RenderingBundle` is registered last in all examples. ([#1881])
[#1780]: https://github.com/amethyst/amethyst/pull/1780
[#1859]: https://github.com/amethyst/amethyst/pull/1859
[#1842]: https://github.com/amethyst/amethyst/pull/1842
[#1870]: https://github.com/amethyst/amethyst/pull/1870
[#1881]: https://github.com/amethyst/amethyst/pull/1881
[#1882]: https://github.com/amethyst/amethyst/pull/1882
[#1883]: https://github.com/amethyst/amethyst/pull/1883
[#1886]: https://github.com/amethyst/amethyst/pull/1886
[#1887]: https://github.com/amethyst/amethyst/pull/1887
[#1891]: https://github.com/amethyst/amethyst/pull/1891
[#1896]: https://github.com/amethyst/amethyst/pull/1896
[#1839]: https://github.com/amethyst/amethyst/pull/1839
[#1906]: https://github.com/amethyst/amethyst/issues/1906
[#1912]: https://github.com/amethyst/amethyst/pull/1912
[#1916]: https://github.com/amethyst/amethyst/pull/1916
[#1919]: https://github.com/amethyst/amethyst/pull/1919
[#1918]: https://github.com/amethyst/amethyst/pull/1918
[#1933]: https://github.com/amethyst/amethyst/pull/1933
[#1820]: https://github.com/amethyst/amethyst/pull/1820
## [0.12.0] - 2019-07-30
### Breaking changes
- `Float` newtype removed, moved back to `f32` primitive for all values ([#1747])
- `TextureProcessor` and `MeshProcessor` systems are now separated from `RenderingSystem` ([#1772])
### Added
- Add a feature flag `sentry` to disable the sentry dependency. ([#1804]) ([#1825])
- Fixes and renames regression from ([#1442]) added back `position_from_world` as `screen_to_world`. Also added
`world_to_screen`. Also adds `Transform::copy_local_to_global()' for`debug_assertion` builds ([#1733])
- Add `add_rectangle`, `add_rotated_rectangle`, `add_box`, `add_rotated_box`, `add_circle`, `add_rotated_circle`,
`add_cylinder`, `add_rotated_cylinder` and `add_sphere` functions to `DebugLinesComponent`
and the corresponding draw functions to `DebugLines`, to draw simple shapes with debug lines. ([#1766])
- `InputEvent::AxisMoved` is sent upon button press / release. ([#1512], [#1797])
- `UiImage` is updated to allow for partial textures and sprites. ([#1809],[#1811])
- Added `RenderingBundle` with a rendering plugin system, making rendering setup easier ([#1772])
- Documentation for `Tint` component. ([#1802])
### Changed
- Splitted the `/resources` directory of amethyst projects into `/assets` and `/config`. ([#1806])
- Rename FPSCounter, FPSCounterBundle, FPSCounterSystem to FpsCounter, FpsCounterBundle, FpsCounterSystem. ([#1719])
- Add Tint component support for sprites. ([#1756])
- Remove remaining <N: RealField> type parameter on GameDataBuilder, add Debug derive to LoggerConfig ([#1758])
- Inverted mouse wheel scroll direction event. Now using winit's standard. ([#1767])
- Add `load_from_data_async` to Asset Loader. ([#1753])
- Add `SerializableFormat` marker trait which is now needed to be implemented for all the formats that are supposed to be serialized. ([#1720])
- Make the GltfSceneOptions field of GltfSceneFormat public. ([#1791])
- Updated fluent to version 0.6. ([#1800])
`InputEvent<T>` now takes in the `BindingTypes` as a type parameter. ([#1797])
- Use `crossbeam-queue` crate directly. ([#1822])
### Fixed
- Fix stack overflow on serializing `Box<dyn Format<_>>`. ([#1720])
- Fix the steps for enabling the nightly flag in the pong tutorial. ([#1805])
- Fix animation unwrap on missing animated component. ([#1773])
- Fix tangent generation in procedural shapes. ([#1807])
[#1512]: https://github.com/amethyst/amethyst/issues/1512
[#1719]: https://github.com/amethyst/amethyst/pull/1719
[#1720]: https://github.com/amethyst/amethyst/pull/1720
[#1733]: https://github.com/amethyst/amethyst/pull/1733
[#1747]: https://github.com/amethyst/amethyst/pull/1747
[#1753]: https://github.com/amethyst/amethyst/pull/1753
[#1756]: https://github.com/amethyst/amethyst/pull/1756
[#1758]: https://github.com/amethyst/amethyst/pull/1758
[#1766]: https://github.com/amethyst/amethyst/pull/1766
[#1767]: https://github.com/amethyst/amethyst/pull/1719
[#1772]: https://github.com/amethyst/amethyst/pull/1772
[#1773]: https://github.com/amethyst/amethyst/pull/1773
[#1791]: https://github.com/amethyst/amethyst/pull/1791
[#1797]: https://github.com/amethyst/amethyst/pull/1797
[#1800]: https://github.com/amethyst/amethyst/pull/1800
[#1802]: https://github.com/amethyst/amethyst/pull/1802
[#1804]: https://github.com/amethyst/amethyst/pull/1804
[#1805]: https://github.com/amethyst/amethyst/pull/1805
[#1806]: https://github.com/amethyst/amethyst/pull/1806
[#1807]: https://github.com/amethyst/amethyst/pull/1807
[#1809]: https://github.com/amethyst/amethyst/issues/1809
[#1811]: https://github.com/amethyst/amethyst/pull/1811
[#1822]: https://github.com/amethyst/amethyst/pull/1822
[#1825]: https://github.com/amethyst/amethyst/pull/1825
## [0.11.0] - 2019-06
### Added
- Introduce `application_dir` utility ([#1213])
- Derive `Copy`, `PartialEq`, `Eq`, `Serialize`, `Deserialize` for `Flipped` component. ([#1237])
- A way to change the default `Source` using `set_default_source` and `with_default_source`. ([#1256])
- "How To" guides for using assets and defining custom assets. ([#1251])
- Explanation on how prefabs function in Amethyst. ([#1114])
- `amethyst_renderer::Rgba` is now a `Component` that changes the color and transparency of the entity
it is attached to. ([#1282])
- `AutoFov` and `AutoFovSystem` to adjust horizontal FOV to screen aspect ratio. ([#1281])
- Add `icon` to `DisplayConfig` to set a window icon using a path to a file ([#1373])
- Added setting to control gfx_device_gl logging level separately, and set it to Warn by default. ([#1404])
- Add `loaded_icon` to `DisplayConfig` to set a window icon programatically ([#1405])
- Added optional feature gates which will reduce compilation times when used. ([#1412])
- Several passes got `with_transparency_settings` which changes the transparency settings for the pass. ([#1419])
- Add `SpriteRenderPrefab`. ([#1435])
- Add `ScreenSpace` component. Draws entities using the screen coordinates. ([#1424])
- Add `add_removal_to_entity` function. ([#1445])
- Add `position_from_screen` to `Camera`. Transforms position from screen space to camera space. ([#1442])
- Add `SpriteScenePrefab`. Allows load sprites from a grid and add them to the `SpriteRenderer`. ([#1469])
- Add `Widgets` resource. Allows keeping track of UI entities and their components and iterating over them. ([#1390])
- `AmethystApplication` takes in application name using `with_app_name(..)`. ([#1499])
- Add `NetEvent::Reliable` variant. When added to NetConnection, these events will eventually reach the target. ([#1513])
- "How To" guides for defining state-specific dispatchers. ([#1498])
- Adding support for AMETHYST_NUM_THREADS environment variable to control size of the threads pool used by thread_pool_builder.
- Add `Input` variant to `StateEvent`. ([#1478])
- Support type parameters in `EventReader` derive. ([#1478])
- Derive `Debug`, `PartialEq`, `Eq` for `Source`. ([#1591])
- Added `events` example which demonstrates working even reader and writer in action. ([#1538])
- Implement builder like functionality for `AnimationSet` and `AnimationControlSet` ([#1568])
- Add `get_mouse_button` and `is_mouse_button_down` utility functions to amethyst_input. ([#1582])
- Add `amethyst_input::Axis::MouseWheel` ([#1642])
- Add `amethyst_input::BindingError::MouseWheelAlreadyBound` ([#1642])
- Add `amethyst_input::InputHandler::send_frame_begin` ([#1642])
- Add `amethyst_input::InputHandler::mouse_wheel_value` ([#1642])
- Added `Float::from_f32` and `Float::from_f64` `const fn`s so `Float` can be used as `const`. ([#1687])
- Add `debug_lines_ortho` example. ([#1703])
### Changed
- `#[derive(PrefabData)]` now supports enums as well as structs
- Make `frame_limiter::do_sleep` calculate the amount of time to sleep instead of calling `sleep(0)` ([#1446])
- Make `application_root_dir` return a `Result<Path>` instead of a `String` ([#1213])
- Remove unnecessary texture coordinates offset in `Sprite::from_pixel_values` ([#1267])
- Changed `ActiveCamera` to have the `Option` inside. ([#1280])
- `AudioBundle::new()` no longer exists, as `AudioBundle` is now a unit type. It also no longer initializes the `DjSystem` ([#1356])
- Convert everything to use err-derive and amethyst_error ([#1365])
- Removed redundant code in `renderer.rs` ([#1375])
- Refactored audio initialization to be more bundle-centric ([#1388])
- Changed argument types of `exec_removal` to allow use of both Read and Write Storages. ([#1397])
- Changed default log level to Info. ([#1404])
- Remove unnecessary `mut` from `AnimationControlSet::has_animation` ([#1408])
- Moved amethyst*gltf from development workspace to be like the other amethyst*\* subcrates. ([#1411])
- Re-exported amethyst_gltf by amethyst as amethyst::gltf. ([#1411])
- `Default::default` now returns a pass with transparency enabled for all applicable passes. ([#1419])
- Several passes had a function named `with_transparency` changed to accept a boolean. ([#1419])
- `FrameRateLimitConfig` has a `new` constructor, and its fields are made public. ([#1436])
- Derive `Deserialize, Serialize` for `MaterialPrimitive` and `SpriteRenderPrimitive`, remove
extra bounds from `AnimatablePrefab` and `AnimationSetPrefab` ([#1435])
- Renamed `amethyst_core::specs` to `amethyst_core::ecs` and `amethyst_core::nalgebra` to `amethyst_core::math`. ([#1410])
- Simplified some of the conditionals in the Pong tutorial. ([#1439])
- Changed the names of many Transform functions to better reflect their actual function and reduce potential semantic confusion ([#1451])
- `ProgressCounter#num_loading()` no longer includes failed assets. ([#1452])
- `SpriteSheetFormat` field renamed from `spritesheet_*` to `texture_*`. ([#1469])
- Add new `keep_aspect_ratio` field to `Stretch::XY`. ([#1480])
- Renamed `Text` UI Prefab to `Label` in preparation for full widget integration in prefabs. ([#1390])
- `amethyst_test` includes the application name of a failing test. ([#1499])
- `amethyst_test` returns the panic message of a failed execution. ([#1499])
- Rename `NetEvent::Custom` variant to `NetEvent::Unreliable`. ([#1513])
- Updated laminar to 0.2.0. ([#1502])
- Large binary files in examples are now tracked with `git-lfs`. ([#1509])
- Allowed the user to arrange with laminar. ([#1523])
- Removed `NetEvent::Custom` and added `NetEvent::Packet(NetPacket)` ([#1523])
- Fixed update is no longer frame rate dependent ([#1516])
- Display the syntax error when failing to parse sprite sheets ([#1526])
- Added generic parameter type to `Transform` to configure floating point precision (then removed). ([#1334]) ([#1584])
- `NetConnection` is automatically created when client starts sends data to server. ([#1539])
- User will receive `NetEvent::Connected` on new connection and `NetEvent::Disconnected` on disconnect. ([#1539])
- Added a `pivot` field to `UiTransform`. ([#1571])
- Fix fly_camera example initial camera and cube position. ([#1582])
- Add to fly_camera example code to release and capture back mouse input, and to show and hide cursor. ([#1582])
- Updated `rodio` to `0.9`. ([#1683])
#### Rendy support
- Brand new way to define rendering pipelines.
- OpenGL support temporarily dropped, Vulkan and Metal support added.
- Normalized texel coordinates are now in Vulkan convention (top-left 0.0, bottom-right 1.0), mirrored vertically compared to old one.
- World space is now Y-up consistently for all projections (2D and 3D).
- `Format` type no longer has associated `Options` and is now object-safe. It is expected to carry required options itself.
- `Format` now supports tag-based deserialization, it is no longer required to provide specific format to prefab type.
- Combined input axis/action generics into single type.
- `Material` is now an asset. Must be turned into handle before putting on an entity.
- Removed `Flipped` component. Use `flip_horizontal` and `flip_vertical` sprite property instead.
- Added [Rendy migration guide][rendy_migration]. ([#1626])
### Removed
- Removed all `NetEvent's` because they were not used. ([#1539])
- Removed filter logic, because it didn't do anything, will be added back in a later version (NetFilter, FilterConnected). ([#1539])
### Fixed
- Optimize loading of wavefront obj mesh assets by getting rid of unnecessary allocations. ([#1454])
- Fixed the "json" feature for amethyst_assets. ([#1302])
- Fixed default system font loading to accept uppercase extension ("TTF"). ([#1328])
- Set width and height of Pong Paddles ([#1363])
- Fix omission in `PosNormTangTex` documentation. ([#1371])
- Fix division by zero in vertex data building ([#1481])
- Fix tuple index generation on `PrefabData` and `EventReader` proc macros. ([#1501])
- Avoid segmentation fault on Windows when using `AudioBundle` in `amethyst_test`. ([#1595], [#1599])
[rendy_migration]: https://book.amethyst.rs/master/appendices/b_migration_notes/rendy_migration.html
[#1114]: https://github.com/amethyst/amethyst/pull/1114
[#1213]: https://github.com/amethyst/amethyst/pull/1213
[#1237]: https://github.com/amethyst/amethyst/pull/1237
[#1251]: https://github.com/amethyst/amethyst/pull/1251
[#1256]: https://github.com/amethyst/amethyst/pull/1256
[#1267]: https://github.com/amethyst/amethyst/pull/1267
[#1280]: https://github.com/amethyst/amethyst/pull/1280
[#1282]: https://github.com/amethyst/amethyst/pull/1282
[#1281]: https://github.com/amethyst/amethyst/pull/1281
[#1302]: https://github.com/amethyst/amethyst/pull/1302
[#1328]: https://github.com/amethyst/amethyst/pull/1328
[#1334]: https://github.com/amethyst/amethyst/pull/1334
[#1356]: https://github.com/amethyst/amethyst/pull/1356
[#1363]: https://github.com/amethyst/amethyst/pull/1363
[#1365]: https://github.com/amethyst/amethyst/pull/1365
[#1371]: https://github.com/amethyst/amethyst/pull/1371
[#1373]: https://github.com/amethyst/amethyst/pull/1373
[#1375]: https://github.com/amethyst/amethyst/pull/1375
[#1388]: https://github.com/amethyst/amethyst/pull/1388
[#1390]: https://github.com/amethyst/amethyst/pull/1390
[#1397]: https://github.com/amethyst/amethyst/pull/1397
[#1404]: https://github.com/amethyst/amethyst/pull/1404
[#1408]: https://github.com/amethyst/amethyst/pull/1408
[#1405]: https://github.com/amethyst/amethyst/pull/1405
[#1411]: https://github.com/amethyst/amethyst/pull/1411
[#1412]: https://github.com/amethyst/amethyst/pull/1412
[#1419]: https://github.com/amethyst/amethyst/pull/1419
[#1424]: https://github.com/amethyst/amethyst/pull/1424
[#1435]: https://github.com/amethyst/amethyst/pull/1435
[#1436]: https://github.com/amethyst/amethyst/pull/1436
[#1410]: https://github.com/amethyst/amethyst/pull/1410
[#1439]: https://github.com/amethyst/amethyst/pull/1439
[#1445]: https://github.com/amethyst/amethyst/pull/1445
[#1446]: https://github.com/amethyst/amethyst/pull/1446
[#1451]: https://github.com/amethyst/amethyst/pull/1451
[#1452]: https://github.com/amethyst/amethyst/pull/1452
[#1454]: https://github.com/amethyst/amethyst/pull/1454
[#1442]: https://github.com/amethyst/amethyst/pull/1442
[#1469]: https://github.com/amethyst/amethyst/pull/1469
[#1478]: https://github.com/amethyst/amethyst/pull/1478
[#1481]: https://github.com/amethyst/amethyst/pull/1481
[#1480]: https://github.com/amethyst/amethyst/pull/1480
[#1498]: https://github.com/amethyst/amethyst/pull/1498
[#1499]: https://github.com/amethyst/amethyst/pull/1499
[#1501]: https://github.com/amethyst/amethyst/pull/1501
[#1502]: https://github.com/amethyst/amethyst/pull/1515
[#1513]: https://github.com/amethyst/amethyst/pull/1513
[#1509]: https://github.com/amethyst/amethyst/pull/1509
[#1523]: https://github.com/amethyst/amethyst/pull/1523
[#1524]: https://github.com/amethyst/amethyst/pull/1524
[#1526]: https://github.com/amethyst/amethyst/pull/1526
[#1538]: https://github.com/amethyst/amethyst/pull/1538
[#1539]: https://github.com/amethyst/amethyst/pull/1543
[#1568]: https://github.com/amethyst/amethyst/pull/1568
[#1571]: https://github.com/amethyst/amethyst/pull/1571
[#1584]: https://github.com/amethyst/amethyst/pull/1584
[#1591]: https://github.com/amethyst/amethyst/pull/1591
[#1582]: https://github.com/amethyst/amethyst/pull/1582
[#1595]: https://github.com/amethyst/amethyst/issues/1595
[#1599]: https://github.com/amethyst/amethyst/pull/1599
[#1626]: https://github.com/amethyst/amethyst/pull/1626
[#1642]: https://github.com/amethyst/amethyst/pull/1642
[#1683]: https://github.com/amethyst/amethyst/pull/1683
[#1687]: https://github.com/amethyst/amethyst/pull/1687
[#1703]: https://github.com/amethyst/amethyst/pull/1703
## [0.10.0] - 2018-12
### Added
- Derive `PrefabData` for `CameraOrtho` component ([#1188])
- Partially migrate the project to Rust 2018. Full migration will be completed at some point after 2019-01-31 ([#1098])
- `SystemExt::pausable` for better ergonomics when pausing systems for specific states ([#1146]).
- `amethyst_test` test framework for ergonomic testing of Amethyst applications ([#1000])
- combinations of buttons triggering actions ([#1043])
- `UiPrefab` field `hidden: bool` to hide entities ([#1051])
- `PrefabData` can now be derived for many situations, see the book for more information ([#1035])
- Support for DirectionalLight and SpotLight in PBM pass. ([#1074], [#1081])
- `UiWidget` variant `Custom` for custom composited widgets ([#1112])
- `AssetLoaderSystemData` abstracts resources needed from `World` to do asset loading ([#1090])
- `amethyst_ui::get_default_font` supports loading system font from Path. ([#1108])
- Added render utilities to easily create `Material` and `Handle<Texture>`. ([#1126])
- Added `Callback` and `CallbackQueue` for use in asynchronous contexts. ([#1125])
- Added Trans event queue. Used to trigger state transitions from systems. Also used to trigger multiple state transitions at once. (For example, to `Trans::Pop` two states.) ([#1069])
- `sprite_camera_follow` example showing how to use a Camera that has a sprite Parent ([#1099])
- Added capabilities for the `DrawFlat2D` pass to draw `TextureHandle`s by themselves. Also added a simple example for this. ([#1153])
- Added a `Flipped` component which allows flipping sprites or images horizontally and vertically. ([#1153])
- Added transform constructor function `Transform::new()`. ([#1187])
- Implement generic `EventRetriggerSystem`, which enables dispatching new events as a reaction to other events ([#1189])
### Changed
- Minimum Rust version is now `1.31.0` – Rust 2018. ([#1224])
- `Transform::look_at` renamed to `Transform::face_towards` and behavior fixed. ([#1142])
- `Material` animations now directly use `Handle<Texture>` instead of using indirection. ([#1089])
- `SpriteRenderPrimitive::SpriteSheet` now takes `Handle<SpriteSheet>` instead of a `u64` ID. ([#1089])
- `nalgebra` is now the math library used by the engine. ([#1066])
- The `amethyst::renderer::Projection::orthographic` function has had its parameter order changed to match that of `nalgebra` ([#1066])
- `SpriteSheet` now use `TextureHandle` directly instead of a `u64` ID coupled with `MaterialTextureSet`. ([#1117])
- Updated `specs` to `0.14` and `specs-hierarchy` to `0.3`. ([#1122])
- Updated `winit` to `0.18` (see [Winit's changelog][winit_018]). ([#1131])
- Updated `glutin` to `0.19` (see [Glutin's changelog][glutin_019]). ([#1131])
- Renamed the `DrawSprite` pass to `DrawFlat2D` as it now handles both sprites and images without spritesheets. ([#1153])
- `BasicScenePrefab` deserialization now returns an error on invalid fields. ([#1164])
- Reordered arguments for `Transform::set_rotation_euler` to match nalgebra's Euler angles. ([#1052])
- Remove lifetimes from `SimpleState` ([#1198])
- Button interactions are now handled through an `EventRetriggerSystem`, specifically hover/click sounds and image/color changes ([#1189])
### Removed
- `SpriteSheetSet` is removed as it is no longer needed. ([#1089])
- `MaterialTextureSet` is removed as it is no longer needed. ([#1117])
- `amethyst::core::Orientation` has been removed because of limited use. ([#1066])
- `TimedDestroySystem` has been split into `DestroyAtTimeSystem` and `DestroyInTimeSystem`. ([#1129])
- Reverted [MacOS OpenGL workaround][#972] in favor of the upstream fix in `glutin`. ([#1184])
- `OnUiActionImage` and `OnUiActionSound` have been removed as they now work through `EventRetrigger`s ([#1189])
### Fixed
- `SpriteSheetFormat` converts pixel coordinates to texture coordinates on load. ([#1181])
[#1146]: https://github.com/amethyst/amethyst/pull/1146
[#1144]: https://github.com/amethyst/amethyst/pull/1144
[#1000]: https://github.com/amethyst/amethyst/pull/1000
[#1043]: https://github.com/amethyst/amethyst/pull/1043
[#1051]: https://github.com/amethyst/amethyst/pull/1051
[#1035]: https://github.com/amethyst/amethyst/pull/1035
[#1069]: https://github.com/amethyst/amethyst/pull/1069
[#1074]: https://github.com/amethyst/amethyst/pull/1074
[#1081]: https://github.com/amethyst/amethyst/pull/1081
[#1090]: https://github.com/amethyst/amethyst/pull/1090
[#1112]: https://github.com/amethyst/amethyst/pull/1112
[#1089]: https://github.com/amethyst/amethyst/pull/1089
[#1098]: https://github.com/amethyst/amethyst/pull/1098
[#1099]: https://github.com/amethyst/amethyst/pull/1099
[#1108]: https://github.com/amethyst/amethyst/pull/1108
[#1126]: https://github.com/amethyst/amethyst/pull/1126
[#1125]: https://github.com/amethyst/amethyst/pull/1125
[#1066]: https://github.com/amethyst/amethyst/pull/1066
[#1117]: https://github.com/amethyst/amethyst/pull/1117
[#1122]: https://github.com/amethyst/amethyst/pull/1122
[#1129]: https://github.com/amethyst/amethyst/pull/1129
[#1131]: https://github.com/amethyst/amethyst/pull/1131
[#1153]: https://github.com/amethyst/amethyst/pull/1153
[#1164]: https://github.com/amethyst/amethyst/pull/1164
[#1142]: https://github.com/amethyst/amethyst/pull/1142
[#1052]: https://github.com/amethyst/amethyst/pull/1052
[#1181]: https://github.com/amethyst/amethyst/pull/1181
[#1184]: https://github.com/amethyst/amethyst/pull/1184
[#1187]: https://github.com/amethyst/amethyst/pull/1187
[#1188]: https://github.com/amethyst/amethyst/pull/1188
[#1198]: https://github.com/amethyst/amethyst/pull/1198
[#1224]: https://github.com/amethyst/amethyst/pull/1224
[#1189]: https://github.com/amethyst/amethyst/pull/1189
[winit_018]: https://github.com/tomaka/winit/blob/v0.18.0/CHANGELOG.md#version-0180-2018-11-07
[glutin_019]: https://github.com/tomaka/glutin/blob/master/CHANGELOG.md#version-0190-2018-11-09
## [0.9.0] - 2018-10
### Added
- Added base networking implementation and the `amethyst_network` crate. ([#969])
- Support for debug lines using `DebugLines` pass, and `DebugLines` component or resource. ([#917], [#957])
- Added JsonFormat ([#950]).
- `SpriteRender` pass to draw sprites without using `Material` and `Mesh`. ([#829], [#830])
- Sprite animation uses the `SpriteRenderChannel`. ([#829], [#830])
- State::handle_event can now handle multiple types of events. ([#887])
- Added Named Component. ([#879])([#896])
- Support for progressive jpeg loading. ([#877])
- New `application_root_dir()` function in `amethyst_utils`. ([#831])
- Load node names for glTF prefabs. ([#905])
- Added automatic camera matrix resizing to allow clean screen resizes. ([#920])
- Added the Removal component to facilitate manual entity removal and scene cleaning. ([#920])
- Added DestroyAtTime and DestroyInTime components to easily destroy entities. ([#920])
- Support for loading TGA images. ([#934])
- GltfPrefab adds MeshData as a component on loaded entities. This is not configurable until the Prefab rework. ([#946])
- Added implementation of From<Vector3<f32>> for Transform which creates a Transform using Vector3 as the translation vector. ([#946])
- New vertices() method on MeshCreator trait. ([#946])
- Support for text alignment (align left, center, right). ([#965])
- Support for multiline text. ([#965])
- Added custom aspect ratio to OrthoCamera. ([#983])
- Added AntiStorage documentation to the book. ([#997])
- You can now stop the rotation of the FreeRotationSystem by setting HideCursor.hide value to false. ([#997])
- Support for logging to file, toggle for logging to stdout. ([#976], [#994])
- Added a `Hidden` Component, that hides a single entity, and a HideHierarchySystem that toggles `Hidden` on all children when used. ([#1001])
- Documentation for drawing sprites. ([#971])
- Added `shadow_update()` and `shadow_fixed_update()` to the `State` trait. ([#1006])
- Added configurable width for debug lines. ([#1016])
- Added `TextureMetadata::srgb_scale()` for default texture metadata with nearest filter. ([#1023])
- Added motivation to use Amethyst over gluing the building blocks yourself in the book. ([#1057])
- Added `Config::load_bytes` for reading configuration from raw bytes. ([#1067])
### Changed
- Sprites contain their dimensions and offsets to render them with the right size and desired position. ([#829], [#830])
- Texture coordinates for sprites are 1.0 at the top of the texture and 0.0 at the bottom. ([#829], [#830])
- Made get_camera public. ([#878])
- Simplified creating states with SimpleState and EmptyState. ([#887])
- Updated ProgressCounter to show loading errors. ([#892])
- Replaced the `imagefmt` crate with `image`. ([#877])
- Optimize Sprite rendering via batching. ([#902])
- Derive `Debug` and `PartialEq` for `amethyst_input::Axis`. ([#903], [#904])
- Updated `winit` to `0.17` (see [Winit's changelog][winit_017]). ([#906])
- Updated `glutin` to `0.18` (see [Glutin's changelog][glutin_018]). ([#906])
- Updated `gfx_window_glutin` to `0.26`. ([#906])
- Updated `hetseq` to `0.2`. ([#906])
- Removed unwraps from StateMachine ([#940])
- Renamed ArcBallMovementSystem to ArcBallRotationSystem. ([#946])
- Moved the ArcBallMovementSystem::get_axis method to amethyst_input/src/utils: get_input_axis_simple ([#946])
- Ui Y axis is now from bottom to top. ([#946])
- Fixed issue with global anchors not actually aligning ui elements and containers properly. ([#946])
- Fixed issue with ui events not triggering at times. ([#946])
- Reduced the complexity of the UiPass and associated shaders. ([#946])
- Added comments to UiPass and shaders explaining what is going on. ([#946])
- The z in UiTransformBuilder now defaults to 1 instead of 0, allowing to skip defining the z in the ui prefabs. ([#946])
- Added comments to ui prefab. ([#946])
- Summarized all `use amethyst::` statements to allow collapsing in IDE's. ([#974])
- `Application` now uses `EventReader`s to determine what events to send to the `State`s, more information in the `State`
book chapter ([#996])
- Breaking: Refactor `TextureMetadata` so filter method and clamping can be configured more easily ([#981])
- Renamed `PrefabData` functions to be easier to understand ([#1008])
### Removed
- `LMenu` and `RMenu` key codes, following the `winit` update. ([#906])
### Fixed
- Material ids in GLTF loader caused multiple GLTF files to get incorrect materials applied. ([#915])
- Fix render gamma for most textures. ([#868])
- Joint entities can only be part of a single skin: Materials are not swapped anymore. ([#933])
- Fixed regression in sprite positioning after batching. ([#929])
- Now loading default fonts from the system for UiButton ([#964])
- Fixed single frame animation ([#1015])
- Improved compatibility with older drivers ([#1012])
- Forgotten `channel` field on `examples/ui` prefab ([#1024])
- `AssetPrefab` loaded files at an incorrect time ([#1020])
- Removed unreachable code in `TexturePrefab` ([#1020])
- Fix OpenGL not rendering on window creation due to `glutin` bug ([#972])
- Fix debug lines panic when no lines are rendered ([#1049])
[#829]: https://github.com/amethyst/amethyst/issues/829
[#830]: https://github.com/amethyst/amethyst/pull/830
[#879]: https://github.com/amethyst/amethyst/pull/879
[#878]: https://github.com/amethyst/amethyst/pull/878
[#887]: https://github.com/amethyst/amethyst/pull/887
[#892]: https://github.com/amethyst/amethyst/pull/892
[#877]: https://github.com/amethyst/amethyst/pull/877
[#878]: https://github.com/amethyst/amethyst/pull/878
[#896]: https://github.com/amethyst/amethyst/pull/896
[#831]: https://github.com/amethyst/amethyst/pull/831
[#902]: https://github.com/amethyst/amethyst/pull/902
[#905]: https://github.com/amethyst/amethyst/pull/905
[#920]: https://github.com/amethyst/amethyst/pull/920
[#903]: https://github.com/amethyst/amethyst/issues/903
[#904]: https://github.com/amethyst/amethyst/pull/904
[#906]: https://github.com/amethyst/amethyst/pull/906
[#915]: https://github.com/amethyst/amethyst/pull/915
[#868]: https://github.com/amethyst/amethyst/pull/868
[#917]: https://github.com/amethyst/amethyst/issues/917
[#933]: https://github.com/amethyst/amethyst/pull/933
[#929]: https://github.com/amethyst/amethyst/pull/929
[#934]: https://github.com/amethyst/amethyst/pull/934
[#940]: https://github.com/amethyst/amethyst/pull/940
[#946]: https://github.com/amethyst/amethyst/pull/946
[#950]: https://github.com/amethyst/amethyst/pull/950
[#957]: https://github.com/amethyst/amethyst/pull/957
[#964]: https://github.com/amethyst/amethyst/pull/964
[#965]: https://github.com/amethyst/amethyst/pull/965
[#969]: https://github.com/amethyst/amethyst/pull/969
[#983]: https://github.com/amethyst/amethyst/pull/983
[#971]: https://github.com/amethyst/amethyst/pull/971
[#972]: https://github.com/amethyst/amethyst/issue/972
[#974]: https://github.com/amethyst/amethyst/pull/974
[#976]: https://github.com/amethyst/amethyst/pull/976
[#981]: https://github.com/amethyst/amethyst/pull/981
[#994]: https://github.com/amethyst/amethyst/pull/994
[#996]: https://github.com/amethyst/amethyst/pull/996
[#997]: https://github.com/amethyst/amethyst/pull/997
[#1001]: https://github.com/amethyst/amethyst/pull/1001
[#1006]: https://github.com/amethyst/amethyst/pull/1006
[#1008]: https://github.com/amethyst/amethyst/pull/1008
[#1012]: https://github.com/amethyst/amethyst/pull/1012
[#1015]: https://github.com/amethyst/amethyst/pull/1015
[#1016]: https://github.com/amethyst/amethyst/pull/1016
[#1024]: https://github.com/amethyst/amethyst/pull/1024
[#1020]: https://github.com/amethyst/amethyst/pull/1020
[#1023]: https://github.com/amethyst/amethyst/pull/1023
[#1057]: https://github.com/amethyst/amethyst/pull/1057
[#1049]: https://github.com/amethyst/amethyst/pull/1049
[#1067]: https://github.com/amethyst/amethyst/pull/1067
[winit_017]: https://github.com/tomaka/winit/blob/master/CHANGELOG.md#version-0172-2018-08-19
[glutin_018]: https://github.com/tomaka/glutin/blob/master/CHANGELOG.md#version-0180-2018-08-03
## [0.8.0] - 2018-08
### Added
- UI `ScaleMode` is now functional, permitting percentage based `UiTransform`s. ([#774])
- Add serde trait derives to many core components ([#760])
- Add a generic asset `Format` for `ron` files ([#760])
- Improve error handling for asset loading ([#773])
- Add bundle for the arc ball camera ([#770])
- Add utility functions for dealing with common input ([#759])
- Add alpha cutoff support to the PBR shader ([#756])
- Basic renderer setup helper function ([#771])
- Shape mesh generators ([#777])
- Derive `PartialEq` for `SpriteSheet` ([#789])
- Add core support for Prefabs ([#716])
- Add shape prefab support ([#785])
- Specialised UI prefab format ([#786])
- Add generation of normals/tangents in GLTF ([#784])
- Localisation using FTL files and the fluent-rs library ([#663])
- Add basic scene prefab ([#791])
- Improve ergonomics of examples ([#793])
- Beginner-friendly utilities for sprite rendering ([#804])
- Derive `PartialEq` for `MaterialPrimitive` ([#809])
- Make `with_bindings_from_file` return a Result ([#811])
- Logger initialization is now optional and can be enabled with a call to `amethyst::start_logger()` ([#815])
- Gamepad support with optional builtin SDL controller event source ([#818])
- Promote `UiButton` to a fundamental Ui component ([#798])
### Changed
- UI systems will now never overwrite your local `UiTransform` values ([#774])
- Global `UiTransform` values are no longer writable ([#774])
- `UiResize` refactored to be more user friendly and more helpful ([#774])
- `Anchored` and `Stretched` components have been folded into `UiTransform` ([#774])
- Refactored asset loading so `Processor`s can defer storage insertion ([#760])
- Moved `MaterialTextureSet` to the renderer crate ([#760])
- Use `fresnel` function in PBR shader ([#772])
- Remove boilerplate for `run` + `main` in examples ([#764])
- Update dependencies ([#752], [#751], [#817])
- Formalized and documented support for overriding the global logger ([#776])
- Refactor GLTF loader to use prefabs ([#784])
- Point lights use `GlobalTransform` for positioning rather than a separate `center` ([#794])
- Point lights now require a `GlobalTransform` component to be included in rendering ([#794])
- `amethyst_input::input_handler::{keys_that_are_down, mouse_buttons_that_are_down, scan_codes_that_are_down, buttons_that_are_down}` now all return `impl Iterator` instead of concrete wrapper types ([#816])
- Renamed is_key to is_key_down and fixed example to react when the key is pressed instead of released. ([#822])
- SpriteRenderData now allows to retrieve the MeshHandle and Material before inserting them into an entity. ([#825])
- Update the pong tutorial + changelog for SpriteRenderData. ([#805])
- Loosen up generic type bounds for InputBundle. ([#808])
### Removed
- Remove `amethyst_input::{KeyCodes, ScanCodes, MouseButtons, Buttons}` in favor of `impl trait` ([#816])
### Fixed
- Resizing fixed on OSX ([#767])
- Fix color format ([#766])
- Remove individual example READMEs ([#758])
- Log an error if a pass tries to render a mesh with incompatible vertex buffers ([#749])
- Standardize vsync across examples ([#746])
- Minor Pong tutorial fixes. ([#807])
- Fix wrong resource paths in examples. ([#812])
[#663]: https://github.com/amethyst/amethyst/pull/663
[#746]: https://github.com/amethyst/amethyst/pull/746
[#749]: https://github.com/amethyst/amethyst/pull/749
[#751]: https://github.com/amethyst/amethyst/pull/751
[#752]: https://github.com/amethyst/amethyst/pull/752
[#756]: https://github.com/amethyst/amethyst/pull/756
[#758]: https://github.com/amethyst/amethyst/pull/758
[#759]: https://github.com/amethyst/amethyst/pull/759
[#760]: https://github.com/amethyst/amethyst/pull/760
[#764]: https://github.com/amethyst/amethyst/pull/764
[#766]: https://github.com/amethyst/amethyst/pull/766
[#767]: https://github.com/amethyst/amethyst/pull/767
[#770]: https://github.com/amethyst/amethyst/pull/770
[#771]: https://github.com/amethyst/amethyst/pull/771
[#772]: https://github.com/amethyst/amethyst/pull/772
[#773]: https://github.com/amethyst/amethyst/pull/773
[#774]: https://github.com/amethyst/amethyst/pull/774
[#777]: https://github.com/amethyst/amethyst/pull/777
[#776]: https://github.com/amethyst/amethyst/pull/776
[#798]: https://github.com/amethyst/amethyst/pull/798
[#716]: https://github.com/amethyst/amethyst/pull/716
[#784]: https://github.com/amethyst/amethyst/pull/784
[#785]: https://github.com/amethyst/amethyst/pull/785
[#786]: https://github.com/amethyst/amethyst/pull/786
[#791]: https://github.com/amethyst/amethyst/pull/791
[#789]: https://github.com/amethyst/amethyst/pull/789
[#793]: https://github.com/amethyst/amethyst/pull/793
[#804]: https://github.com/amethyst/amethyst/pull/804
[#805]: https://github.com/amethyst/amethyst/pull/805
[#807]: https://github.com/amethyst/amethyst/pull/807
[#808]: https://github.com/amethyst/amethyst/pull/808
[#809]: https://github.com/amethyst/amethyst/pull/809
[#811]: https://github.com/amethyst/amethyst/pull/811
[#794]: https://github.com/amethyst/amethyst/pull/794
[#812]: https://github.com/amethyst/amethyst/pull/812
[#816]: https://github.com/amethyst/amethyst/pull/816
[#815]: https://github.com/amethyst/amethyst/pull/815
[#817]: https://github.com/amethyst/amethyst/pull/817
[#818]: https://github.com/amethyst/amethyst/pull/818
[#822]: https://github.com/amethyst/amethyst/pull/822
[#825]: https://github.com/amethyst/amethyst/pull/825
## [0.7.0] - 2018-05
### Added
- Documentation for Animation crate ([#631]).
- Support for rendering sprites ([#638]).
- Fly Camera ([#578]).
- UI Layouts ([#591]).
- UI Events ([#580]).
- Introduce a generic animation system, with support for both transform and texture animation ([#558]), ([#566]), ([#567]), ([#569]), ([#570]), ([#611]), ([#641]), ([#644])
- Add transparency support to core passes ([#543]), ([#574]), ([#584])
- Add vertex skinning ([#545]), ([#619])
- Expose a basic visibility ordering system, with the ability to swap in better replacement systems ([#595])
- Audio `Output` is now added directly rather than as an `Option`, should now be fetched with `Option<Read<'a, Output>>` ([#679])
- New nightly feature that enables `shred`s nightly feature ([#689])
- `Transform` refactored, and added lots of utility functions ([#660])
- Add new raw mouse events for use with camera rotation ([#699])
- Add UiButtons and UiButtonBuilder ([#613])
- Add arc ball camera ([#700])
### Changed
- Update dependencies to the newest versions: cgmath, winit, glutin, gfx, gfx_glyph ([#527]), ([#572]), ([#648])
- Rodio updated to 0.7 ([#676])
- Refactored bundles to only contain `System`s ([#675])
- Refactor to use new specs, major breakage! ([#674]), ([#679]), ([#683]), ([#662]).
- Upgrade to winit 1.13.1 ([#698])
- Refactor game data, permit greater extensibility ([#691])
- Disable multisampling on all examples, and add a single example with multisampling on ([#671])
### Fixed
- Asset loading tolerates paths constructed using back slashes ([#623]).
- Pong text alignment ([#621]).
- Updated book introduction ([#588]).
- Renderable runtime crash ([#586]).
[#580]: https://github.com/amethyst/amethyst/pull/580
[#591]: https://github.com/amethyst/amethyst/pull/591
[#578]: https://github.com/amethyst/amethyst/pull/578
[#586]: https://github.com/amethyst/amethyst/pull/586
[#588]: https://github.com/amethyst/amethyst/pull/588
[#631]: https://github.com/amethyst/amethyst/pull/631
[#638]: https://github.com/amethyst/amethyst/pull/638
[#623]: https://github.com/amethyst/amethyst/pull/623
[#621]: https://github.com/amethyst/amethyst/pull/621
[#558]: https://github.com/amethyst/amethyst/pull/558
[#566]: https://github.com/amethyst/amethyst/pull/566
[#567]: https://github.com/amethyst/amethyst/pull/567
[#569]: https://github.com/amethyst/amethyst/pull/569
[#570]: https://github.com/amethyst/amethyst/pull/570
[#611]: https://github.com/amethyst/amethyst/pull/611
[#641]: https://github.com/amethyst/amethyst/pull/641
[#644]: https://github.com/amethyst/amethyst/pull/644
[#543]: https://github.com/amethyst/amethyst/pull/543
[#574]: https://github.com/amethyst/amethyst/pull/574
[#584]: https://github.com/amethyst/amethyst/pull/584
[#545]: https://github.com/amethyst/amethyst/pull/545
[#619]: https://github.com/amethyst/amethyst/pull/619
[#527]: https://github.com/amethyst/amethyst/pull/527
[#572]: https://github.com/amethyst/amethyst/pull/572
[#648]: https://github.com/amethyst/amethyst/pull/648
[#595]: https://github.com/amethyst/amethyst/pull/595
[#679]: https://github.com/amethyst/amethyst/pull/679
[#675]: https://github.com/amethyst/amethyst/pull/675
[#676]: https://github.com/amethyst/amethyst/pull/676
[#674]: https://github.com/amethyst/amethyst/pull/674
[#679]: https://github.com/amethyst/amethyst/pull/679
[#683]: https://github.com/amethyst/amethyst/pull/683
[#660]: https://github.com/amethyst/amethyst/pull/660
[#671]: https://github.com/amethyst/amethyst/pull/671
[#689]: https://github.com/amethyst/amethyst/pull/689
[#691]: https://github.com/amethyst/amethyst/pull/691
[#698]: https://github.com/amethyst/amethyst/pull/698
[#699]: https://github.com/amethyst/amethyst/pull/699
[#662]: https://github.com/amethyst/amethyst/pull/662
[#613]: https://github.com/amethyst/amethyst/pull/613
[#700]: https://github.com/amethyst/amethyst/pull/700
## [0.5.1] - 2017-08-30
- Fix syntax highlighting in documentation.
## [0.5.0] - 2017-08-29
### Added
- Add audio support ([#265])
### Changed
- Asset management rewrite (pull request [#244]).
- Use RON as config format ([#269])
- Overhaul input system ([#247]), ([#261]), and ([#274])
- Total overhaul of the game renderer ([#285])
[#244]: https://github.com/amethyst/amethyst/pull/244
[#247]: https://github.com/amethyst/amethyst/pull/247
[#261]: https://github.com/amethyst/amethyst/pull/261
[#265]: https://github.com/amethyst/amethyst/pull/265
[#269]: https://github.com/amethyst/amethyst/pull/269
[#274]: https://github.com/amethyst/amethyst/pull/274
[#285]: https://github.com/amethyst/amethyst/pull/285
## [0.4.3] - 2017-06-03
### Added
- Add mouse button events to `InputHandler` (pull request [#181]).
- Built-in application profiler using [`thread_profiler`][tp] (pull request
[#212]).
- Screenshots for all in-repo examples (pull request [#213]).
- Pre-commit hook to automate local testing for commits (pull request [#228]).
### Changed
- Changes to `CONTRIBUTING.md` (pull requests [#206], [#226]).
- Update to `specs` 0.8.1 (pull request [#219]).
### Fixed
- Fix deferred rendering in renderable example (pull request [#211]).
- Fix AppVeyor curl command (pull request [#217]).
- Ignore IntelliJ IDEA project files (pull request [#218]).
- Fix `InputHandler` key press bug (pull request [#227]).
- Fix CRLF normalization on extensionless files (pull request [#207]).
- Update code to latest template (pull request [#215]).
[#181]: https://github.com/amethyst/amethyst/pull/181
[#206]: https://github.com/amethyst/amethyst/pull/206
[#207]: https://github.com/amethyst/amethyst/pull/207
[#211]: https://github.com/amethyst/amethyst/pull/211
[#212]: https://github.com/amethyst/amethyst/pull/212
[#213]: https://github.com/amethyst/amethyst/pull/213
[#215]: https://github.com/amethyst/amethyst/pull/215
[#217]: https://github.com/amethyst/amethyst/pull/217
[#218]: https://github.com/amethyst/amethyst/pull/218
[#219]: https://github.com/amethyst/amethyst/pull/219
[#226]: https://github.com/amethyst/amethyst/pull/226
[#228]: https://github.com/amethyst/amethyst/pull/228
[#227]: https://github.com/amethyst/amethyst/pull/227
[tp]: https://github.com/glennw/thread_profiler
## [0.4.2] - 2017-03-07
### Added
- Allow loading configuration files directly from strings.
- Add `#[derive(Default)]` for some types in ECS module.
- Add Ilya Bogdanov, Konstantin Zverev, and Scott Corbeil to `AUTHORS.md`.
### Changed
- Implement some clippy suggestions.
- Use `FnvHasher` instead of Rust's default SipHash implementation for better
performance.
### Fixed
- Correct the quick example given in `README.md`.
- Replace constant paddle width with actual value in Pong example.
- Minor fix of line numbers in link in `CONTRIBUTING.md`.
- Add backticks around word in doc comment within `input.rs`.
- Match `Stopwatch` behavior to API documentation.
- Fix AppVeyor build failures due to `timing.rs` test failure.
## [0.4.1] - 2017-02-10
### Added
- Make `CONTRIBUTING.md` have teeth by enabling `#[deny(missing_docs)]`.
- Add lots of shiny new API documentation.
- Convert `amethyst` crate into a workspace.
- Add Travis and Appveyor badges to Cargo manifests.
### Changed
- Bump `amethyst` to version 0.4.1, `amethyst_renderer` to 0.4.1, and
`amethyst_config` to 0.2.1.
- Temporarily disable `cargo fmt` checking in Travis due to panics.
- Update to `dds` 0.4.
- Update to `gfx` 0.14, fix breaking changes relating to shaders, PSO, and
module layout changes.
- Update to `gfx_device_gl` 0.13.
- Update to `gfx_window_glutin` 0.14.
- Update to `glutin` 0.7.
- Improve quality of existing doc comments.
- Implement `Deref` and `DerefMut` into `glutin::Event` for `WindowEvent`.
- Re-export contents of `engine` to top-level and make module private.
- Shorten certain variable names to help combat rightward drift.
- Update `.travis.yml` and `appveyor.yml` to use `cargo test --all` instead of
specifying explicit crates.
- Rename `06_assets` to `05_assets`.
- Make Git line endings consistent for source and config files throughout the
repo.
- Process entire codebase through `cargo fmt`.
- Improve wording and formatting in `CONTRIBUTING.md` and in `README.md`.
### Removed
- Delete `rustfmt.toml` from `amethyst_renderer`.
- Delete outdated example from `amethyst_renderer`.
- Delete redundant `extern crate` directives outside of `lib.rs`.
## [0.4.0] - 2017-02-07
### Added
- Add transform system, transform components, light components, `specs`
resources (camera, input handler, game time counter, screen dimensions, event
handling).
- Make mesh primitives with [genmesh][gm].
- Add basic asset management.
- Add support for Wavefront OBJ assets with [wavefront_obj][wo], and
texture loading with [imagefmt][if].
- Add support for DirectDraw surfaces (.dds files).
- Moar examples! Oh, and we have a [basic pong game][pg] too.
- Fix several `unused_variables` and `unused_mut` warnings.
- Add gitattributes to prevent line-ending conversion for binary files.
- Add lots of API documentation.
[gm]: https://github.com/gfx-rs/genmesh
[wo]: https://github.com/PistonDevelopers/wavefront_obj
[if]: https://github.com/lgvz/imagefmt
[pg]: examples/pong/
### Changed
- Relicense under the terms of both MIT/Apache-2.0.
- Revamp `amethyst_renderer`
- Graphics backend chosen at compile time using features.
- Add specular lighting, switching propagation -> attenuation.
- Update instructions for generating a new project using Cargo templates.
- Scale number of `specs` threads according to system core count.
- Improve Travis CI build speeds.
- Rewrite `Stopwatch` to be an enum.
- Update contribution guidelines and change log.
- Update book to reflect new API changes.
- Update dependency versions.
### Removed
- Remove `amethyst_ecs` crate in favor of using `specs` directly.
- Remove `amethyst_context` and refactor to greatly improve performance.
- Remove unused lights from included forward and deferred renderer pipelines.
- Remove dependency on `time` crate.
## [0.3.1] - 2016-09-07
### Fixed
- Fixed broken API reference link in `README.md`.
- amethyst.rs book: link to API reference broken (issue [#86]).
- Master branch no longer builds on beta/nightly Rust (issue [#94]).
[#86]: https://github.com/amethyst/amethyst/issues/86
[#94]: https://github.com/amethyst/amethyst/issues/94
## 0.3.0 - 2016-03-31
### Added
- Initial version of `amethyst_ecs` crate (issue [#37]).
- Add Gitter webhooks support to Travis (issue [#27]).
### Changed
- Update `amethyst_renderer` crate slightly (issue [#37]).
- Remove `publish.sh` script since website repo handles docs now (issue [#27]).
- Updated contribution guidelines on submitting code (issue [#37]).
### Fixed
- Update broken links for website, wiki, chat, and blog (issue [#27]).
[#27]: https://github.com/amethyst/amethyst/issues/27
[#37]: https://github.com/amethyst/amethyst/issues/37
## 0.2.1 (2016-01-27)
### Changed
- Add keywords to sub-crates.
- Remove reference to missing README file from `amethyst_engine`
## 0.2.0 (2016-01-27) [YANKED]
### Added
- Pass slice references to functions instead of `&Vec<T>`.
- Add state machine unit tests (issue [#9], pull request [#15])
### Changed
- Mention nightly Rust in "Hello World" tutorial (issue [#11], pull request
[#12])
- Split amethyst` into separate sub-crates (issue [#13], pull request [#14])
- Update example to reflect API changes
- Depend on gfx-rs to reduce workload and foster cooperation, removed old
renderer backend code
[#9]: https://github.com/amethyst/amethyst/issues/9
[#11]: https://github.com/amethyst/amethyst/issues/11
[#12]: https://github.com/amethyst/amethyst/issues/12
[#13]: https://github.com/amethyst/amethyst/issues/13
[#14]: https://github.com/amethyst/amethyst/issues/14
[#15]: https://github.com/amethyst/amethyst/issues/15
## 0.1.4 - 2016-01-10
### Added
- Stabilize state machine API (pull request [#6]).
- Implement pushdown automaton state machine.
- Implement state transitions.
### Changed
- Remove standardized `State` constructor (pull request [#6]).
- Update book and doc comments.
[#6]: https://github.com/amethyst/amethyst/issues/6
### Fixed
- Fix unreachable shutdown statement bug (issue [#5]).
[#5]: https://github.com/amethyst/amethyst/issues/5
## 0.1.3 - 2016-01-09
### Changed
- Clean up use statements.
- Renderer design progress (issue [#7]).
- Split `ir.rs` and `frontend.rs` into separate files.
- Frontend
- Objects and Lights (enums) are now structs impl'ing `Renderable` trait.
- `Frame` is a container of `Renderable` trait objects.
- Start compiling library of common objects and light types.
- Intermediate Representation
- Move GPU state modeling out of Backend and into IR.
- CommandBuffers are now directly sortable.
- CommandQueue now takes in CommandBuffers directly
- Backend
- Consolidate traits into one short file.
[#7]: https://github.com/amethyst/amethyst/issues/7
## 0.1.1 - 2016-01-06
### Added
- Add `Frame::with_data` constructor to renderer.
### Changed
- Hide engine submodule, reexport desired contents as public.
- Updated hello_world.rs to new API.
- Significantly expanded Amethyst book and doc comments.
## 0.1.0 - 2016-01-03
- Initial release
[unreleased]: https://github.com/amethyst/amethyst/compare/v0.15.3...HEAD
[0.15.3]: https://github.com/amethyst/amethyst/compare/v0.15.2...v0.15.3
[0.15.2]: https://github.com/amethyst/amethyst/compare/v0.15.1...v0.15.2
[0.15.1]: https://github.com/amethyst/amethyst/compare/v0.15.0...v0.15.1
[0.15.0]: https://github.com/amethyst/amethyst/compare/v0.14.0...v0.15.0
[0.14.0]: https://github.com/amethyst/amethyst/compare/v0.13.3...v0.14.0
[0.13.3]: https://github.com/amethyst/amethyst/compare/v0.13.2...v0.13.3
[0.13.2]: https://github.com/amethyst/amethyst/compare/v0.13.1...v0.13.2
[0.13.1]: https://github.com/amethyst/amethyst/compare/v0.13.0...v0.13.1
[0.13.0]: https://github.com/amethyst/amethyst/compare/v0.12.0...v0.13.0
[0.12.0]: https://github.com/amethyst/amethyst/compare/v0.11.0...v0.12.0
[0.11.0]: https://github.com/amethyst/amethyst/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/amethyst/amethyst/compare/v0.9.0...v0.10.0
[0.9.0]: https://github.com/amethyst/amethyst/compare/v0.8.0...v0.9.0
[0.8.0]: https://github.com/amethyst/amethyst/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/amethyst/amethyst/compare/v0.5.1...v0.7.0
[0.5.1]: https://github.com/amethyst/amethyst/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/amethyst/amethyst/compare/v0.4.3...v0.5.0
[0.4.3]: https://github.com/amethyst/amethyst/compare/v0.4.2...v0.4.3
[0.4.2]: https://github.com/amethyst/amethyst/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/amethyst/amethyst/compare/v0.4...v0.4.1
[0.4.0]: https://github.com/amethyst/amethyst/compare/v0.3.1...v0.4
[0.3.1]: https://github.com/amethyst/amethyst/compare/v0.3...v0.3.1