egui/crates/egui_demo_app
Emil Ernerfeldt 63e48dc855
Introduce global `zoom_factor` (#3608)
* Closes https://github.com/emilk/egui/issues/3602

You can now zoom any egui app by pressing Cmd+Plus, Cmd+Minus or Cmd+0,
just like in a browser. This will change the current `zoom_factor`
(default 1.0) which is persisted in the egui memory, and is the same for
all viewports.
You can turn off the keyboard shortcuts with `ctx.options_mut(|o|
o.zoom_with_keyboard = false);`

`zoom_factor` can also be explicitly read/written with
`ctx.zoom_factor()` and `ctx.set_zoom_factor()`.

This redefines `pixels_per_point` as `zoom_factor *
native_pixels_per_point`, where `native_pixels_per_point` is whatever is
the native scale factor for the monitor that the current viewport is in.

This adds some complexity to the interaction with winit, since we need
to know the current `zoom_factor` in a lot of places, because all egui
IO is done in ui points. I'm pretty sure this PR fixes a bunch of subtle
bugs though that used to be in this code.

`egui::gui_zoom::zoom_with_keyboard_shortcuts` is now gone, and is no
longer needed, as this is now the default behavior.

`Context::set_pixels_per_point` is still there, but it is recommended
you use `Context::set_zoom_factor` instead.
2023-11-22 20:34:51 +01:00
..
src Introduce global `zoom_factor` (#3608) 2023-11-22 20:34:51 +01:00
Cargo.toml Introduce global `zoom_factor` (#3608) 2023-11-22 20:34:51 +01:00
README.md Rename `sh/` folder to `scripts/` 2023-04-18 17:10:52 +02:00

README.md

egui demo app

This app demonstrates egui and eframe.

View the demo app online at https://egui.rs.

Run it locally with cargo run --release -p egui_demo_app.

egui_demo_app can be compiled to WASM and viewed in a browser locally with:

./scripts/start_server.sh &
./scripts/build_demo_web.sh --open

egui_demo_app uses egui_demo_lib.

Running with wgpu backend

(cd egui_demo_app && cargo r --features wgpu)