egui/crates
Skyler Lehmkuhl f5477e30e5 Add custom cursor images (OS-composited, no frame lag)
A cursor painted into the egui scene is composited with the frame, so it
always trails the pointer by a frame or more. This adds a path to hand a
cursor image to the windowing system instead, where the compositor draws
it with no lag.

- egui: PlatformOutput::cursor_image + Context::set_cursor_image().
  CursorImage carries an id alongside the pixels so backends can detect
  "same cursor as last frame" without hashing or comparing the buffer.
- egui-winit: handle_platform_output() stashes the image;
  State::apply_pending_cursor_image() builds the winit CustomCursor and
  applies it. The split is necessary because winit only creates custom
  cursors from an ActiveEventLoop, which handle_platform_output has no
  access to. Rebuilds only when the id changes, and suppresses
  set_cursor_icon while a custom cursor is active so the two don't fight.
- eframe (wgpu): run_ui_and_paint already had the ActiveEventLoop and
  simply wasn't passing it down; now it does, and applies the cursor.
- eframe (web): ignore the new field for now; the web backend could
  express it as a CSS `cursor: url(...)`.

Supported by winit on X11, Wayland, Windows, macOS and Web. The glow
backend compiles unchanged but does not apply cursor images yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 13:02:51 -04:00
..
ecolor Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
eframe Add custom cursor images (OS-composited, no frame lag) 2026-07-14 13:02:51 -04:00
egui Add custom cursor images (OS-composited, no frame lag) 2026-07-14 13:02:51 -04:00
egui-wgpu Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
egui-winit Add custom cursor images (OS-composited, no frame lag) 2026-07-14 13:02:51 -04:00
egui_demo_app Prevent widgets sometimes appearing to move relative to each other (#7710) 2025-11-13 11:53:51 +01:00
egui_demo_lib Prevent widgets sometimes appearing to move relative to each other (#7710) 2025-11-13 11:53:51 +01:00
egui_extras Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
egui_glow Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
egui_kittest Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
egui_plot Move `egui_plot` to its own repo (#4828) 2024-07-15 18:45:19 +02:00
egui_web Rename `master` branch to `main` (#7034) 2025-05-08 09:15:42 +02:00
emath Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
epaint Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00
epaint_default_fonts Update changelogs and version for 0.33.2 2025-11-13 13:53:59 +01:00