From 4b4b82c77daed377ae54992e281252708666e581 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Wed, 27 Sep 2023 10:07:57 +0200 Subject: [PATCH] Move history of immediate mode to docs --- crates/egui/src/lib.rs | 11 +++++++++-- crates/egui_demo_lib/src/demo/about.rs | 9 ++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/crates/egui/src/lib.rs b/crates/egui/src/lib.rs index dc500516d4b..e26e262543e 100644 --- a/crates/egui/src/lib.rs +++ b/crates/egui/src/lib.rs @@ -163,7 +163,14 @@ //! //! # Understanding immediate mode //! -//! `egui` is an immediate mode GUI library. It is useful to fully grok what "immediate mode" implies. +//! `egui` is an immediate mode GUI library. +//! +//! Immediate mode has its roots in gaming, where everything on the screen is painted at the +//! display refresh rate, i.e. at 60+ frames per second. +//! In immediate mode GUIs, the entire interface is laid out and painted at the same high rate. +//! This makes immediate mode GUIs especially well suited for highly interactive applications. +//! +//! It is useful to fully grok what "immediate mode" implies. //! //! Here is an example to illustrate it: //! @@ -198,7 +205,7 @@ //! # }); //! ``` //! -//! Here egui will read `value` to display the slider, then look if the mouse is dragging the slider and if so change the `value`. +//! Here egui will read `value` (an `f32`) to display the slider, then look if the mouse is dragging the slider and if so change the `value`. //! Note that `egui` does not store the slider value for you - it only displays the current value, and changes it //! by how much the slider has been dragged in the previous few milliseconds. //! This means it is responsibility of the egui user to store the state (`value`) so that it persists between frames. diff --git a/crates/egui_demo_lib/src/demo/about.rs b/crates/egui_demo_lib/src/demo/about.rs index 57cbcd0c5d8..451654de2df 100644 --- a/crates/egui_demo_lib/src/demo/about.rs +++ b/crates/egui_demo_lib/src/demo/about.rs @@ -65,15 +65,10 @@ fn about_immediate_mode(ui: &mut egui::Ui) { ); ui.add_space(8.0); - ui.label("Note how there are no callbacks or messages, and no button state to store."); - - ui.label("Immediate mode has its roots in gaming, where everything on the screen is painted at the display refresh rate, i.e. at 60+ frames per second. \ - In immediate mode GUIs, the entire interface is laid out and painted at the same high rate. \ - This makes immediate mode GUIs especially well suited for highly interactive applications."); - ui.horizontal_wrapped(|ui| { ui.spacing_mut().item_spacing.x = 0.0; - ui.label("More about immediate mode "); + ui.label("There are no callbacks or messages, and no button state to store. "); + ui.label("Read more about immediate mode "); ui.hyperlink_to("here", "https://github.com/emilk/egui#why-immediate-mode"); ui.label("."); });