CHANGELOG.md 4.66 KB
Newer Older
Alex Butler's avatar
Alex Butler committed
1
## 0.7.7
Alex Butler's avatar
Alex Butler committed
2 3 4
* gpu_cache: Add `CacheBuilder::align_4x4` method which forces texture updates to align to 4x4 pixel boxes.
* gpu_cache: Disable multithread code and remove dependencies on wasm32.

Alex Butler's avatar
Alex Butler committed
5 6 7
## 0.7.6
* `GlyphIter` and `LayoutIter` provide the lifetime of the font data.

Alex Butler's avatar
Alex Butler committed
8
## 0.7.5
9 10
* gpu_cache: `Cache::cache_queued` now returns `CachedBy` for successes which can allow callers to tell that the texture cache has been re-ordered.

Alex Butler's avatar
Alex Butler committed
11
## 0.7.4
12 13
* Add fn `PositionedGlyph::set_position`
* gpu_cache: Update crossbeam-deque -> `0.7`, use `Injector` for minor rasterization performance boost.
Alex Butler's avatar
Alex Butler committed
14

Alex Butler's avatar
Alex Butler committed
15 16 17
## 0.7.3
* gpu_cache: Update crossbeam-utils -> `0.6`

Alex Butler's avatar
Alex Butler committed
18 19 20
## 0.7.2
* Update ordered-float -> `1`

Alex Butler's avatar
Alex Butler committed
21
## 0.7.1
22
* Fix `PositionedGlyph::pixel_bounding_box()` size inconsistencies at different positions with identical sub-pixel positions.
23

Alex Butler's avatar
Alex Butler committed
24 25
## 0.7

26 27
* Rework `CacheBuilder` to use methods to allow non-breaking additions
  in future. New style is `Cache::builder().dimensions(512, 512).build()`.
28 29 30 31 32 33
* Support multithreaded rasterization in the gpu_cache. This yields
  significant improvements in worst case performance when more than 1
  CPU core is available. _Thrashing, resizing & population benchmarks
  are ~3x faster on a 4-core Haswell._
  Multithreading is enabled by default in environments with more than
  a single core, but can be explicitly disabled using
34 35
  `Cache::builder().multithread(false)`.
* Remove all deprecated API.
36 37
* Add `Debug` implementations for `Font`, `Glyph`, `ScaledGlyph` &
  `PositionedGlyph`
38
* Add and improve documentation + examples.
39

40 41 42 43 44
## 0.6.5

* Re-export rusttype `0.7` non-breaking main API, while keeping the current
  version of the gpu_cache module.

Alex Butler's avatar
Alex Butler committed
45 46
## 0.6.4

47 48 49 50
* Add `CacheBuilder::rebuild` & `Cache::to_builder` methods.
* gpu_cache: Only rasterize & upload after queue has successfully fit in cache
  producing a 1.16-1.29x speedup in resizing & thrashing benchmarks.

Alex Butler's avatar
Alex Butler committed
51 52 53 54 55
## 0.6.3

* Documentation clarifications
* Avoid depending on unused dependency default-features

Alex Butler's avatar
Alex Butler committed
56 57
## 0.6.2

Alex Butler's avatar
Alex Butler committed
58
* Add `From<&AsRef<[u8]>> for SharedBytes`.
59
* Optimise `gpu_cache` hashing to improve benchmark performance by ~30%.
Alex Butler's avatar
Alex Butler committed
60

Alex Butler's avatar
Alex Butler committed
61 62
## 0.6.1

63 64
* Optimise rasterizer removing internal hashing. Improves draw benchmark
  performance by 11-91%.
65

Alex Butler's avatar
Alex Butler committed
66
## 0.6
Alex Butler's avatar
Alex Butler committed
67

68 69
* Rework gpu_cache data structures allowing constant time hash lookup
  of matching cached glyph textures. Improve performance by ~60-200%.
70
* Deprecate `gpu_cache::Cache::new` in favour of `gpu_cache::CacheBuilder`.
71 72 73 74 75 76
* Deprecate `gpu_cache::Cache::set_scale_tolerance` &
  `gpu_cache::Cache::set_position_tolerance`. These are now equivalent to
  recreating the cache as they invalidate the cache keys.
* gpu_cache `scale_tolerance` & `position_tolerance` now have subtly different
  meanings but guarantee their error in all cases, where previously the
  worst case was double the set tolerance.
Azriel Hoh's avatar
Azriel Hoh committed
77

Jeremy Soller's avatar
Jeremy Soller committed
78 79
## 0.5.2

Alex Butler's avatar
Alex Butler committed
80 81 82
* Add gpu cache glyph padding option to fix texture bleeding from other
  glyphs when using interpolated texture coordinates near edges. Use
  `CacheBuilder` to construct a `Cache` that makes use of padding.
Alex Butler's avatar
Alex Butler committed
83
* Inlining performance improvements.
84

Jeremy Soller's avatar
Jeremy Soller committed
85 86
## 0.5.1

87
* Fix tree removal on row clear (gpu_cache).
Jeremy Soller's avatar
Jeremy Soller committed
88

Alex Butler's avatar
Alex Butler committed
89
## 0.5
90 91 92 93 94

* Let functions like `Font::glyph` and `Font::pair_kerning` work with both
  characters and glyph ids by having them accept any type that implements the
  new `IntoGlyphId` trait. This replaces the `CodepointOrGlyph` enum, which
  didn't seem widely used.
95 96 97 98
* Make `Font::glyph` always return a `Glyph`, not `Option<Glyph>`. Passing a
  `char` the font doesn't cover returns a `.notdef` glyph (id 0), as it did
  before. Passing an invalid glyph id now panics, like a bad array index: glyph
  ids should only be used to index the font they were looked up for.
99 100
* Introduce `rusttype::Error`, which implements `std::error::Error`, `Debug` and
  `Display`, and can be converted to `std::io::Error`.
101 102 103 104
* Use `Result<_, rusttype::Error>` to report failures in FontCollection, Font
  and associated iterators.
* Add `Font::from_bytes` method similar to `FontCollection::from_bytes` for 1
  font collections.
105
* Improve gpu_cache performance ~2-6%
106

Jeremy Soller's avatar
Jeremy Soller committed
107 108
## 0.4.3

109
* Improve gpu_cache performance ~6-17%
Jeremy Soller's avatar
Jeremy Soller committed
110 111 112

## 0.4.2

Azriel Hoh's avatar
Azriel Hoh committed
113 114
* Allow users to get font names from `Font`. (#86)

Alex Butler's avatar
Alex Butler committed
115
## 0.4
Jeremy Soller's avatar
Jeremy Soller committed
116 117 118 119 120 121

* Add more debugging features
* Add support for unscaled fonts
* Improve performance
* Make gpu_cache optional

Alex Butler's avatar
Alex Butler committed
122
## 0.3
Jeremy Soller's avatar
Jeremy Soller committed
123 124 125

* Transfer to redox-os organization, merge a number of pull requests

Azriel Hoh's avatar
Azriel Hoh committed
126
## 0.2.1
Dylan Ede's avatar
Dylan Ede committed
127 128 129 130 131

* Made the API more convenient (courtesy of @mitchmindtree, @I1048576).
* Fixes for the examples (@I1048576)
* Removed the dependency on ndarray (@I1048576)

Alex Butler's avatar
Alex Butler committed
132
## 0.2
133

Dylan Ede's avatar
Dylan Ede committed
134 135
* Initial GPU caching implementation.
* Made font data management more flexible.
136
* Made the interface for font scales simpler.
137

Azriel Hoh's avatar
Azriel Hoh committed
138
## 0.1.2
Dylan Ede's avatar
Dylan Ede committed
139 140 141

Fixed issue #8

Azriel Hoh's avatar
Azriel Hoh committed
142
## 0.1.1
Dylan Ede's avatar
Dylan Ede committed
143 144 145

Fixed issue #7

Azriel Hoh's avatar
Azriel Hoh committed
146
## 0.1
Dylan Ede's avatar
Dylan Ede committed
147 148

Initial release