mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 04:40:03 -04:00
## Related * https://github.com/emilk/egui/pull/5851 * https://github.com/emilk/egui/pull/7988 ## What We want to make it easier to understand the lineage of a `Id` (which is the parent `Id`, and the parent of that, etc?) As a first step of that, we want to clarify the different between a globally unique `Id`, and an `IdSalt` I also introduced the `AsId` and `AsIdSalt` traits, which are implemented of anything that implements `Hash` and `Debug`. The `Debug` half of that is unused here, but will later be used in `Debug` builds to produce a proper tree.
egui demo library
This crate contains example code for egui.
The demo library is a separate crate for three reasons:
- To ensure it only uses the public
eguiapi. - To remove the amount of code in
eguiproper. - To make it easy for 3rd party egui integrations to use it for tests.
This crate also contains benchmarks for egui. Run them with
# Run all benchmarks
cargo bench -p egui_demo_lib
# Run a single benchmark
cargo bench -p egui_demo_lib "benchmark name"
# Profile benchmarks with cargo-flamegraph (--root flag is necessary for MacOS)
CARGO_PROFILE_BENCH_DEBUG=true cargo flamegraph --bench benchmark --root -p egui_demo_lib -- --bench "benchmark name"
# Profile with cargo-instruments
CARGO_PROFILE_BENCH_DEBUG=true cargo instruments --profile bench --bench benchmark -p egui_demo_lib -t time -- --bench "benchmark name"