Emil Ernerfeldt
5514a8afda
Update dependencies ( #1933 )
...
* Update ahash from 0.7 to 0.8
Opt to use ahash::HashMap over ahash::AHashMap
* Fix ahash compilation for web
* Update ron to 0.8
* Add note about why we cannot update tiny-skia
* cargo update
Updating crates.io index
Updating android_system_properties v0.1.2 -> v0.1.4
Updating anyhow v1.0.58 -> v1.0.62
Updating async-broadcast v0.4.0 -> v0.4.1
Updating async-channel v1.6.1 -> v1.7.1
Updating async-io v1.7.0 -> v1.8.0
Updating async-task v4.2.0 -> v4.3.0
Updating async-trait v0.1.56 -> v0.1.57
Updating backtrace v0.3.65 -> v0.3.66
Updating bit-set v0.5.2 -> v0.5.3
Updating bumpalo v3.10.0 -> v3.11.0
Updating bytemuck v1.10.0 -> v1.12.1
Updating bytemuck_derive v1.1.0 -> v1.2.1
Updating bytes v1.1.0 -> v1.2.1
Updating cast v0.2.7 -> v0.3.0
Updating chrono v0.4.19 -> v0.4.22
Updating clap v3.2.8 -> v3.2.17
Updating clipboard-win v4.4.1 -> v4.4.2
Updating combine v4.6.4 -> v4.6.6
Updating concurrent-queue v1.2.2 -> v1.2.4
Updating criterion v0.3.5 -> v0.3.6
Updating criterion-plot v0.4.4 -> v0.4.5
Updating crossbeam-channel v0.5.5 -> v0.5.6
Updating crossbeam-deque v0.8.1 -> v0.8.2
Updating crossbeam-epoch v0.9.9 -> v0.9.10
Updating crossbeam-utils v0.8.10 -> v0.8.11
Updating document-features v0.2.1 -> v0.2.3
Updating dyn-clone v1.0.6 -> v1.0.9
Removing easy-parallel v3.2.0
Updating either v1.7.0 -> v1.8.0
Updating enum-map v2.1.0 -> v2.4.1
Updating enum-map-derive v0.8.0 -> v0.10.0
Updating event-listener v2.5.2 -> v2.5.3
Updating fastrand v1.7.0 -> v1.8.0
Updating futures-core v0.3.21 -> v0.3.23
Updating futures-io v0.3.21 -> v0.3.23
Updating futures-sink v0.3.21 -> v0.3.23
Updating futures-task v0.3.21 -> v0.3.23
Updating futures-util v0.3.21 -> v0.3.23
Updating gimli v0.26.1 -> v0.26.2
Updating gpu-descriptor v0.2.2 -> v0.2.3
Removing hashbrown v0.11.2
Removing hashbrown v0.12.1
Adding hashbrown v0.12.3
Adding iana-time-zone v0.1.46
Updating image v0.24.2 -> v0.24.3
Updating inplace_it v0.3.3 -> v0.3.4
Updating itoa v1.0.2 -> v1.0.3
Updating js-sys v0.3.58 -> v0.3.59
Updating libc v0.2.126 -> v0.2.132
Updating libm v0.2.2 -> v0.2.5
Removing memmap2 v0.3.1
Removing memmap2 v0.5.4
Adding memmap2 v0.5.7
Removing num-iter v0.1.43
Updating object v0.28.4 -> v0.29.0
Updating once_cell v1.13.0 -> v1.13.1
Updating os_str_bytes v6.1.0 -> v6.3.0
Updating owned_ttf_parser v0.15.0 -> v0.15.1
Removing parking_lot v0.11.2
Removing parking_lot_core v0.8.5
Updating plotters v0.3.1 -> v0.3.3
Updating plotters-backend v0.3.2 -> v0.3.4
Updating plotters-svg v0.3.1 -> v0.3.3
Updating proc-macro-crate v1.1.3 -> v1.2.1
Updating proc-macro2 v1.0.40 -> v1.0.43
Updating quote v1.0.20 -> v1.0.21
Updating redox_syscall v0.2.13 -> v0.2.16
Updating regex v1.5.6 -> v1.6.0
Updating regex-syntax v0.6.26 -> v0.6.27
Updating rfd v0.8.0 -> v0.8.4
Removing rustc_version v0.4.0
Updating ryu v1.0.10 -> v1.0.11
Updating sctk-adwaita v0.4.1 -> v0.4.2
Removing semver v1.0.12
Updating serde v1.0.138 -> v1.0.143
Updating serde_derive v1.0.138 -> v1.0.143
Updating serde_json v1.0.82 -> v1.0.83
Updating serde_repr v0.1.8 -> v0.1.9
Updating slab v0.4.6 -> v0.4.7
Removing smithay-client-toolkit v0.15.4
Updating smithay-clipboard v0.6.5 -> v0.6.6
Updating syn v1.0.98 -> v1.0.99
Updating thiserror v1.0.31 -> v1.0.32
Updating thiserror-impl v1.0.31 -> v1.0.32
Updating time v0.3.11 -> v0.3.13
Adding tiny-skia v0.7.0
Adding tiny-skia-path v0.7.0
Updating tracing v0.1.35 -> v0.1.36
Updating tracing-core v0.1.28 -> v0.1.29
Updating tracing-subscriber v0.3.14 -> v0.3.15
Updating unicode-ident v1.0.1 -> v1.0.3
Updating unicode_names2 v0.5.0 -> v0.5.1
Updating ureq v2.4.0 -> v2.5.0
Updating wasm-bindgen-futures v0.4.31 -> v0.4.32
Updating web-sys v0.3.58 -> v0.3.59
Updating webpki-roots v0.22.3 -> v0.22.4
Updating weezl v0.1.6 -> v0.1.7
Updating wgpu-core v0.13.1 -> v0.13.2
Updating wgpu-hal v0.13.1 -> v0.13.2
Updating wgpu-types v0.13.0 -> v0.13.2
Updating windows v0.32.0 -> v0.37.0
Updating windows_aarch64_msvc v0.32.0 -> v0.37.0
Updating windows_i686_gnu v0.32.0 -> v0.37.0
Updating windows_i686_msvc v0.32.0 -> v0.37.0
Updating windows_x86_64_gnu v0.32.0 -> v0.37.0
Updating windows_x86_64_msvc v0.32.0 -> v0.37.0
Updating x11-dl v2.19.1 -> v2.20.0
Updating zbus_names v2.1.0 -> v2.2.0
Updating zvariant v3.4.1 -> v3.6.0
Updating zvariant_derive v3.4.1 -> v3.6.0
* Add "Unicode-DFS-2016" to deny.toml whitelist
2022-08-19 11:46:38 +02:00
Matt Campbell
7a46a23db5
Update MSRV to Rust 1.61.0 ( #1846 )
2022-07-26 16:50:53 +02:00
Emil Ernerfeldt
29973e5d02
Make document-features an opt-in dependency
2022-06-09 17:41:37 +02:00
Emil Ernerfeldt
3169ce62d5
Document feature flags using crate document-features ( #1725 )
2022-06-09 15:27:22 +02:00
Emil Ernerfeldt
d6fd5dec3b
Add single-threaded deadlock detection to RwMutex ( #1619 )
2022-05-21 14:08:19 +02:00
Erlend Walstad
f27f67b76b
Make color-hex optional ( #1632 )
2022-05-16 16:38:14 +02:00
Luke Newcomb
d2decfa338
Add ability to convert from a hex string to Color32 using macros ( #1596 )
2022-05-15 17:07:30 +02:00
Emil Ernerfeldt
b30224471c
Release 0.18.1 of egui & epaint - Change Shape::Callback
to &mut dyn Any
( #1552 )
2022-05-01 11:35:29 +02:00
Emil Ernerfeldt
dc26890a80
Release 0.18.0 - Shape::Callback, Table, and better text contrast
2022-04-30 20:27:27 +02:00
Emil Ernerfeldt
00471f2887
Update cint 0.2 -> 0.3
2022-04-30 18:01:24 +02:00
Emil Ernerfeldt
cf0338d48f
Rust 1.60.0 + refactor cargo features ( #1467 )
...
* Update to rust 1.60.0
* Rename the feature `convert_bytemuck` to `bytemuck`
* Rename the feature `serialize` to `serde`.
* Make use of the "weak dependency" cargo feature
* Set rust-version = "1.60" for all crates
* egui_glow: clipboard, links, persistence & winit are now opt-in features
2022-04-09 13:54:47 +02:00
Emil Ernerfeldt
41b178b6ec
Use atomic_refcell instead of parking_lot for wasm32 targets ( #1404 )
...
Closes https://github.com/emilk/egui/issues/1401
2022-03-22 15:34:21 +01:00
Emil Ernerfeldt
15254f8235
Remove the single_threaded/multi_threaded feature flags ( #1390 )
...
Always use parking_lot for mutexes, i.e. always be multi-threaded.
Closes #1379
2022-03-21 22:20:37 +01:00
Emil Ernerfeldt
510cef02ca
Run a formatter on all toml files
2022-03-10 14:25:33 +01:00
Emil Ernerfeldt
a05520b9d3
Release 0.17.0 - Improved font selection and image handling
2022-02-22 19:32:30 +01:00
Emil Ernerfeldt
c5a9421dbd
Run wasm-bindgen in CI and update parking_lot ( #1293 )
...
* Run wasm-bindgen in CI
* Update parking_lot 0.11 -> 0.12
2022-02-22 16:30:42 +01:00
Emil Ernerfeldt
0fa4bb9c64
Clean up all Cargo.toml: put features higher, and document them better
2022-02-05 11:11:15 +01:00
Emil Ernerfeldt
b5aaa5fa6f
Improve some feature flags
2022-01-31 19:24:56 +01:00
Lampsitter
d31f7d6522
Faster dashed line generation ( #1027 )
...
* Faster dashed lines generation
* Add dashed_line benchmark
2022-01-06 10:44:53 +01:00
Emil Ernerfeldt
0146c7e7fc
Release 0.16.0 - Context menus and rich text
2021-12-29 12:07:05 +01:00
Emil Ernerfeldt
c60d17b91b
Set MSRV to 1.56.0 and use rust edition 2021 ( #998 )
2021-12-25 19:32:25 +01:00
Emil Ernerfeldt
08cc07bb2d
Release 0.15.0 - Syntax highlighting, hscroll, egui-winit and egui_glow
2021-10-24 16:15:07 +02:00
Emil Ernerfeldt
e547b149ca
Improve docs, especially of epaint, and add epaint/CHANGELOG.md
2021-10-10 15:35:13 +02:00
Emil Ernerfeldt
22a3a75eb5
Optimization: replace HashSet uses with AHashSet
2021-10-09 14:15:45 +02:00
Stock84
cd2227814f
Implement bytemuck
behind a feature ( #775 )
2021-10-07 22:30:15 +02:00
Emil Ernerfeldt
5539dbe620
Add separate serialize feature and better persitence control ( #753 )
...
* Rename epaint feature "persistence" to "serialize"
* Add separate "serialize" feature to egui
* egui_demo_lib: separate serialize and persistence features
* Add App::persist_native_window and App::persist_egui_memory
Controls what gets persisted
2021-09-29 08:45:13 +02:00
Emil Ernerfeldt
1b36863248
Split out new crate egui-winit from egui_glium ( #735 )
2021-09-28 17:33:28 +02:00
Emil Ernerfeldt
5f88d89f74
Faster galley cache ( #699 )
...
* Speed up galley cache by only using the hash as key
This hashes the job but doesn't compare them with Eq,
which speeds up demo_with_tessellate__realistic by 5-6%,
winning back all the performance lost in
https://github.com/emilk/egui/pull/682
* Remove custom Eq/PartialEq code for LayoutJob and friends
* Silence clippy
* Unrelated clippy fixes
2021-09-04 10:19:58 +02:00
Emil Ernerfeldt
3b75a84d3b
Point crate repository & homepage urls to their subfolders
2021-09-03 21:12:44 +02:00
Emil Ernerfeldt
9598596bdc
Replace all http code in epi/eframe/egui_glium/egui_web with ehttp ( #697 )
...
I've extracted all the http request code and turned it
into its own crate at <https://github.com/emilk/ehttp >.
There was never a reason for the HTTP request library to be part of
`eframe`. Much better to have it as its own crate!
2021-09-03 21:04:43 +02:00
Emil Ernerfeldt
de1a1ba9b2
New text layout ( #682 )
...
This PR introduces a completely rewritten text layout engine which is simpler and more powerful. It allows mixing different text styles (heading, body, etc) and formats (color, underlining, strikethrough, …) in the same layout pass, and baked into the same `Galley`.
This opens up the door to having a syntax-highlighed code editor, or a WYSIWYG markdown editor.
One major change is the color is now baked in at layout time. However, many widgets changes text color on hovered. But we need to do the text layout before we know if it is hovered. Therefor the painter has an option to override the text color of a galley.
## Performance
Text layout alone is about 20% slower, but a lot of that is because more tessellation is done upfront. Text tessellation is now a lot faster, but text layout + tessellation still lands at a net loss of 5-10% in performance. There are however a few tricks to speed it up (like using `smallvec`) which I am saving for later. Text layout is also cached, meaning that in most cases (when all text isn't changing each frame) text tessellation is actually more important (and that's more than 2x faster!).
Sadly, the actual text cache lookup is significantly slower (300ns -> 600ns). That's because the `TextLayoutJob` is a lot bigger (it has more options, like underlining, fonts etc), so it is slower to hash and compare. I have an idea how to speed this up, but I need to do some other work before I can implement that.
All in all, the performance impact on `demo_with_tesselate__realistic` is about 5-6% in the red. Not great; not terrible. The benefits are worth it, but I also think with some work I can get that down significantly, hopefully down to the old levels.
2021-09-03 18:18:00 +02:00
Emil Ernerfeldt
cb566fc295
Release 0.14.0 - Ui panels and bug fixes
2021-08-24 16:47:10 +02:00
Emil Ernerfeldt
d807451348
Release 0.13.0 - Better panels, plots and new visual style
2021-06-24 20:00:06 +02:00
Benjamin Bouvier
e22c242d17
Use ab_glyph instead of rusttype for font rendering ( #490 )
...
* Use ab_glyph instead of rusttype for font rendering
* address review feedback
2021-06-24 12:13:57 +02:00
Emil Ernerfeldt
6e7e88ba80
Use old 1.51 toolchain instead of bleeding edge ( #505 )
...
* Use old 1.51 toolchain instead of bleeding edge
1.52 and 1.53 has problems with incremental compilation,
so some people chose to stay on 1.51 for now.
So let's make sure egui supports 1.51 for a while!
* Update to cint 0.2.2 to get rust 1.51.0 compatability
2021-06-23 09:16:39 +02:00
Violeta Hernández
66095b69a7
Disable default features of ord-float
( #440 )
...
* Might fix #439
* `cargo update`
If the page builds, then this did fix it.
2021-05-27 20:25:30 +02:00
Gray Olson
c0929014bf
Add support for cint
(conversions to and from color types) ( #393 )
...
* implement cint for color types under feature flag
* upgrade to cint 0.2, remove from default features
* upgrade to cint 0.2.1, add a couple more from/into implementations
* changelog entry
* fix typo in changelog
* sort dependency
* fmt
2021-05-20 20:09:52 +02:00
Emil Ernerfeldt
6e5b52e3bc
Add features extra_asserts and extra_debug_asserts for more asserts
...
This replaces all debug_asserts with these opt-in asserts
Related: https://github.com/emilk/egui/issues/395
2021-05-17 22:38:39 +02:00
Emil Ernerfeldt
8f8ba16696
Release 0.12.0 - Multitouch, user memory, window pivots, and improved plots
2021-05-10 18:27:39 +02:00
Luis Wirth
87bc26fb5a
implement mint conversions ( #352 )
...
* Implement mint conversions
Implement conversions for [mint](https://docs.rs/mint ) (math interoperability standard types).
- `impl {From, Into}<mint::Point2> for Pos2`
- `impl {From, Into}<mint::Vector2> for Vec2`
* Forward `mint` feature: egui -> epaint -> emath
2021-05-08 08:17:01 +02:00
Emil Ernerfeldt
d544c3dd8b
Release 0.11.0 - Optimization, screen reader & new layout logic
2021-04-05 14:49:06 +02:00
Emil Ernerfeldt
94baf98eab
Add a galley cache to Fonts to avoid doing the same layout each frame
2021-03-29 22:49:48 +02:00
Emil Ernerfeldt
4c45ca113e
Make sure to include license files in the next release
2021-03-09 18:35:13 +01:00
Emil Ernerfeldt
fb2db4940e
Release 0.10.0 - Plot and polish
2021-02-28 20:11:37 +01:00
Emil Ernerfeldt
b61db038f2
Release 0.9.0 - light mode, right clicks and more
2021-02-07 17:06:51 +01:00
Emil Ernerfeldt
d9472035d7
Update ahash 0.6.3 -> 0.7.0
2021-02-07 17:04:03 +01:00
Emil Ernerfeldt
37a3fe7f76
Release 0.8.0 - Grid layout & new visual style
2021-01-17 15:28:52 +01:00
Emil Ernerfeldt
26d576f510
Break out mod paint into new crate epaint
2021-01-10 15:42:46 +01:00