Previously, many labels had non-integer widths. This lead to rounding errors. This was most notable for the new `Area` sizing code: We would run the initial sizing pass, to measure the size of e.g. a tooltip. Say the tooltip contains text that was 100.123 ui points wide. With a 16pt border, that becomes 116.123, which is stored in the `Area` state as the width. The next frame, we use that stored size as the wrapping width. With perfect precision, we would then tell the label to wrap to 100.123 pts, which the text would _just_ fit in. However, due to rounding errors we might end up asking it to wrap to 100.12**2** pts, meaning the last word would now wrap and end up on the next line. By rounding label sizes to perfect integers, we avoid such rounding errors, and most ui elements will now end up on perfect integer point coordinates (and `f32` can precisely express and do arithmetic on all integers < 2^24). Visually this has very little impact. Some labels move by a pixel here and there, mostly for the better. |
||
|---|---|---|
| .. | ||
| benches | ||
| fonts | ||
| src | ||
| CHANGELOG.md | ||
| Cargo.toml | ||
| README.md | ||
README.md
epaint - egui paint library
A bare-bones 2D graphics library for turning simple 2D shapes and text into textured triangles.
Made for egui.