1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-01 14:20:04 -04:00
This commit is contained in:
Konkitoman
2023-09-01 11:52:00 +03:00
parent 52a63cabf9
commit 661120dc1d
28 changed files with 112 additions and 339 deletions

View File

@@ -9,7 +9,6 @@
#[cfg(not(target_arch = "wasm32"))]
mod icon_data;
use egui::ViewportRender;
#[cfg(not(target_arch = "wasm32"))]
pub use icon_data::IconData;
@@ -113,7 +112,7 @@ pub trait App {
/// The [`egui::Context`] can be cloned and saved if you like.
///
/// To force a repaint, call [`egui::Context::request_repaint`] at any time (e.g. from another thread).
fn update(&mut self, ctx: &egui::Context, frame: &mut Frame, render: Option<&ViewportRender>);
fn update(&mut self, ctx: &egui::Context, frame: &mut Frame);
/// Get a handle to the app.
///
@@ -805,7 +804,7 @@ impl Frame {
/// struct MyApp;
///
/// impl eframe::App for MyApp {
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame, _render: Option<&egui::ViewportRender>) {
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
/// // In real code the app would render something here
/// frame.request_screenshot();
/// // Things that are added to the frame after the call to

View File

@@ -32,7 +32,7 @@
//! }
//!
//! impl eframe::App for MyEguiApp {
//! fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame, _render: Option<&egui::ViewportRender>) {
//! fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
//! egui::CentralPanel::default().show(ctx, |ui| {
//! ui.heading("Hello World!");
//! });
@@ -192,7 +192,7 @@ pub use native::file_storage::storage_dir;
/// }
///
/// impl eframe::App for MyEguiApp {
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame, _render: Option<&egui::ViewportRender>) {
/// fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
/// egui::CentralPanel::default().show(ctx, |ui| {
/// ui.heading("Hello World!");
/// });
@@ -274,24 +274,13 @@ pub fn run_simple_native(
native_options: NativeOptions,
update_fun: impl FnMut(&egui::Context, &mut Frame) + 'static,
) -> Result<()> {
use egui::{ViewportId, ViewportRender};
struct SimpleApp<U> {
update_fun: U,
}
impl<U: FnMut(&egui::Context, &mut Frame)> App for SimpleApp<U> {
fn update(
&mut self,
ctx: &egui::Context,
frame: &mut Frame,
render: Option<&ViewportRender>,
) {
if ctx.get_viewport_id() == ViewportId::MAIN {
(self.update_fun)(ctx, frame);
} else if let Some(render_function) = render {
render_function(ctx);
}
fn update(&mut self, ctx: &egui::Context, frame: &mut Frame) {
(self.update_fun)(ctx, frame);
}
}

View File

@@ -502,7 +502,11 @@ impl EpiIntegration {
.egui_ctx
.run(raw_input, viewport_id, parent_id, |egui_ctx| {
crate::profile_scope!("App::update");
app.update(egui_ctx, &mut self.frame, render.as_ref().map(|r| &***r));
if let Some(render) = render {
render(egui_ctx);
} else {
app.update(egui_ctx, &mut self.frame);
}
});
self.pending_full_output.append(full_output);

View File

@@ -182,7 +182,7 @@ impl AppRunner {
let full_output =
self.egui_ctx
.run(raw_input, ViewportId::MAIN, ViewportId::MAIN, |egui_ctx| {
self.app.update(egui_ctx, &mut self.frame, None);
self.app.update(egui_ctx, &mut self.frame);
});
let egui::FullOutput {
platform_output,

View File

@@ -1,7 +1,7 @@
use std::sync::Arc;
use eframe::egui_glow;
use egui::{mutex::Mutex, ViewportRender};
use egui::mutex::Mutex;
use egui_glow::glow;
pub struct Custom3d {
@@ -21,16 +21,7 @@ impl Custom3d {
}
impl eframe::App for Custom3d {
fn update(
&mut self,
ctx: &egui::Context,
_frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
egui::ScrollArea::both()
.auto_shrink([false; 2])

View File

@@ -4,7 +4,6 @@ use eframe::{
egui_wgpu::wgpu::util::DeviceExt,
egui_wgpu::{self, wgpu},
};
use egui::ViewportRender;
pub struct Custom3d {
angle: f32,
@@ -97,16 +96,7 @@ impl Custom3d {
}
impl eframe::App for Custom3d {
fn update(
&mut self,
ctx: &egui::Context,
_frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
egui::ScrollArea::both()
.auto_shrink([false; 2])

View File

@@ -1,4 +1,3 @@
use egui::ViewportRender;
use egui_extras::RetainedImage;
use poll_promise::Promise;
@@ -55,12 +54,7 @@ impl Default for HttpApp {
}
impl eframe::App for HttpApp {
fn update(
&mut self,
ctx: &egui::Context,
frame: &mut eframe::Frame,
_: Option<&ViewportRender>,
) {
fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
egui::TopBottomPanel::bottom("http_bottom").show(ctx, |ui| {
let layout = egui::Layout::top_down(egui::Align::Center).with_main_justify(true);
ui.allocate_ui_with_layout(ui.available_size(), layout, |ui| {

View File

@@ -1,4 +1,3 @@
use egui::ViewportRender;
use egui_demo_lib::is_mobile;
#[cfg(feature = "glow")]
@@ -14,16 +13,7 @@ struct EasyMarkApp {
}
impl eframe::App for EasyMarkApp {
fn update(
&mut self,
ctx: &egui::Context,
_frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
self.editor.panels(ctx);
}
}
@@ -37,16 +27,7 @@ pub struct DemoApp {
}
impl eframe::App for DemoApp {
fn update(
&mut self,
ctx: &egui::Context,
_frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
self.demo_windows.ui(ctx);
}
}
@@ -60,16 +41,7 @@ pub struct FractalClockApp {
}
impl eframe::App for FractalClockApp {
fn update(
&mut self,
ctx: &egui::Context,
_frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default()
.frame(egui::Frame::dark_canvas(&ctx.style()))
.show(ctx, |ui| {
@@ -88,16 +60,7 @@ pub struct ColorTestApp {
}
impl eframe::App for ColorTestApp {
fn update(
&mut self,
ctx: &egui::Context,
frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
if frame.is_web() {
ui.label(
@@ -272,16 +235,7 @@ impl eframe::App for WrapApp {
visuals.panel_fill.to_normalized_gamma_f32()
}
fn update(
&mut self,
ctx: &egui::Context,
frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
if let Some(render) = render {
render(ctx);
return;
}
fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
#[cfg(target_arch = "wasm32")]
if let Some(anchor) = frame.info().web_info.location.hash.strip_prefix('#') {
let anchor = Anchor::all().into_iter().find(|x| x.to_string() == anchor);
@@ -310,7 +264,7 @@ impl eframe::App for WrapApp {
cmd = self.backend_panel(ctx, frame);
}
self.show_selected_app(ctx, frame, render);
self.show_selected_app(ctx, frame);
self.state.backend_panel.end_of_frame(ctx);
@@ -397,16 +351,11 @@ impl WrapApp {
});
}
fn show_selected_app(
&mut self,
ctx: &egui::Context,
frame: &mut eframe::Frame,
render: Option<&ViewportRender>,
) {
fn show_selected_app(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
let selected_anchor = self.state.selected_anchor;
for (_name, anchor, app) in self.apps_iter_mut() {
if anchor == selected_anchor || ctx.memory(|mem| mem.everything_is_visible()) {
app.update(ctx, frame, render);
app.update(ctx, frame);
}
}
}