1## master
2
3## 0.7.3
4* gpu_cache: Update crossbeam-utils -> `0.6`
5
6## 0.7.2
7* Update ordered-float -> `1`
8
9## 0.7.1
10* Fix `PositionedGlyph::pixel_bounding_box()` size inconsistencies at different positions with identical sub-pixel positions.
11
12## 0.7
13
14* Rework `CacheBuilder` to use methods to allow non-breaking additions
15  in future. New style is `Cache::builder().dimensions(512, 512).build()`.
16* Support multithreaded rasterization in the gpu_cache. This yields
17  significant improvements in worst case performance when more than 1
18  CPU core is available. _Thrashing, resizing & population benchmarks
19  are ~3x faster on a 4-core Haswell._
20  Multithreading is enabled by default in environments with more than
21  a single core, but can be explicitly disabled using
22  `Cache::builder().multithread(false)`.
23* Remove all deprecated API.
24* Add `Debug` implementations for `Font`, `Glyph`, `ScaledGlyph` &
25  `PositionedGlyph`
26* Add and improve documentation + examples.
27
28## 0.6.5
29
30* Re-export rusttype `0.7` non-breaking main API, while keeping the current
31  version of the gpu_cache module.
32
33## 0.6.4
34
35* Add `CacheBuilder::rebuild` & `Cache::to_builder` methods.
36* gpu_cache: Only rasterize & upload after queue has successfully fit in cache
37  producing a 1.16-1.29x speedup in resizing & thrashing benchmarks.
38
39## 0.6.3
40
41* Documentation clarifications
42* Avoid depending on unused dependency default-features
43
44## 0.6.2
45
46* Add `From<&AsRef<[u8]>> for SharedBytes`.
47* Optimise `gpu_cache` hashing to improve benchmark performance by ~30%.
48
49## 0.6.1
50
51* Optimise rasterizer removing internal hashing. Improves draw benchmark
52  performance by 11-91%.
53
54## 0.6
55
56* Rework gpu_cache data structures allowing constant time hash lookup
57  of matching cached glyph textures. Improve performance by ~60-200%.
58* Deprecate `gpu_cache::Cache::new` in favour of `gpu_cache::CacheBuilder`.
59* Deprecate `gpu_cache::Cache::set_scale_tolerance` &
60  `gpu_cache::Cache::set_position_tolerance`. These are now equivalent to
61  recreating the cache as they invalidate the cache keys.
62* gpu_cache `scale_tolerance` & `position_tolerance` now have subtly different
63  meanings but guarantee their error in all cases, where previously the
64  worst case was double the set tolerance.
65
66## 0.5.2
67
68* Add gpu cache glyph padding option to fix texture bleeding from other
69  glyphs when using interpolated texture coordinates near edges. Use
70  `CacheBuilder` to construct a `Cache` that makes use of padding.
71* Inlining performance improvements.
72
73## 0.5.1
74
75* Fix tree removal on row clear (gpu_cache).
76
77## 0.5
78
79* Let functions like `Font::glyph` and `Font::pair_kerning` work with both
80  characters and glyph ids by having them accept any type that implements the
81  new `IntoGlyphId` trait. This replaces the `CodepointOrGlyph` enum, which
82  didn't seem widely used.
83* Make `Font::glyph` always return a `Glyph`, not `Option<Glyph>`. Passing a
84  `char` the font doesn't cover returns a `.notdef` glyph (id 0), as it did
85  before. Passing an invalid glyph id now panics, like a bad array index: glyph
86  ids should only be used to index the font they were looked up for.
87* Introduce `rusttype::Error`, which implements `std::error::Error`, `Debug` and
88  `Display`, and can be converted to `std::io::Error`.
89* Use `Result<_, rusttype::Error>` to report failures in FontCollection, Font
90  and associated iterators.
91* Add `Font::from_bytes` method similar to `FontCollection::from_bytes` for 1
92  font collections.
93* Improve gpu_cache performance ~2-6%
94
95## 0.4.3
96
97* Improve gpu_cache performance ~6-17%
98
99## 0.4.2
100
101* Allow users to get font names from `Font`. (#86)
102
103## 0.4
104
105* Add more debugging features
106* Add support for unscaled fonts
107* Improve performance
108* Make gpu_cache optional
109
110## 0.3
111
112* Transfer to redox-os organization, merge a number of pull requests
113
114## 0.2.1
115
116* Made the API more convenient (courtesy of @mitchmindtree, @I1048576).
117* Fixes for the examples (@I1048576)
118* Removed the dependency on ndarray (@I1048576)
119
120## 0.2
121
122* Initial GPU caching implementation.
123* Made font data management more flexible.
124* Made the interface for font scales simpler.
125
126## 0.1.2
127
128Fixed issue #8
129
130## 0.1.1
131
132Fixed issue #7
133
134## 0.1
135
136Initial release
137