egui/crates/egui_glow
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
..
examples Change `Arc<glow::Context>` to `Rc<glow::Context>` (#3598) 2023-11-21 17:13:46 +01:00
src Introduce global `zoom_factor` (#3608) 2023-11-22 20:34:51 +01:00
CHANGELOG.md Release 0.23.0 - New image API 2023-09-28 08:44:33 +02:00
Cargo.toml Update puffin to 0.18 (#3600) 2023-11-21 17:58:33 +01:00
README.md We no longer use tts, so remove speech-related dependencies (#2698) 2023-02-08 18:45:44 +01:00

README.md

egui_glow

Latest version Documentation MIT Apache

This crates provides bindings between egui and glow which allows you to:

  • Render egui using glow on both native and web.
  • Write cross platform native egui apps (with the winit feature).

To write web apps using glow you can use eframe (which uses egui_glow for rendering).

To use on Linux, first run:

sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev

This crate optionally depends on egui-winit.

Text the example with:

cargo run -p egui_glow --example pure_glow --features=winit,egui/default_fonts