1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 06:40:06 -04:00

Now viewport_id always will be in a ViewportId you cannot create a ViewportId you can only get the main one everywere or get the current viewport id with Context::get_viewport_id

This commit is contained in:
Konkitoman
2023-08-09 18:33:59 +03:00
parent 1a7c4700fd
commit 86ef11c521
34 changed files with 775 additions and 663 deletions

View File

@@ -1,6 +1,6 @@
use criterion::{criterion_group, criterion_main, Criterion};
use egui::epaint::TextShape;
use egui::{epaint::TextShape, ViewportId};
use egui_demo_lib::LOREM_IPSUM_LONG;
pub fn criterion_benchmark(c: &mut Criterion) {
@@ -13,24 +13,39 @@ pub fn criterion_benchmark(c: &mut Criterion) {
// The most end-to-end benchmark.
c.bench_function("demo_with_tessellate__realistic", |b| {
b.iter(|| {
let full_output = ctx.run(RawInput::default(), 0, 0, |ctx| {
demo_windows.ui(ctx);
});
let full_output = ctx.run(
RawInput::default(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
demo_windows.ui(ctx);
},
);
ctx.tessellate(full_output.shapes)
});
});
c.bench_function("demo_no_tessellate", |b| {
b.iter(|| {
ctx.run(RawInput::default(), 0, 0, |ctx| {
demo_windows.ui(ctx);
})
ctx.run(
RawInput::default(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
demo_windows.ui(ctx);
},
)
});
});
let full_output = ctx.run(RawInput::default(), 0, 0, |ctx| {
demo_windows.ui(ctx);
});
let full_output = ctx.run(
RawInput::default(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
demo_windows.ui(ctx);
},
);
c.bench_function("demo_only_tessellate", |b| {
b.iter(|| ctx.tessellate(full_output.shapes.clone()));
});
@@ -42,34 +57,44 @@ pub fn criterion_benchmark(c: &mut Criterion) {
let mut demo_windows = egui_demo_lib::DemoWindows::default();
c.bench_function("demo_full_no_tessellate", |b| {
b.iter(|| {
ctx.run(RawInput::default(), 0, 0, |ctx| {
demo_windows.ui(ctx);
})
ctx.run(
RawInput::default(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
demo_windows.ui(ctx);
},
)
});
});
}
{
let ctx = egui::Context::default();
let _ = ctx.run(RawInput::default(), 0, 0, |ctx| {
egui::CentralPanel::default().show(ctx, |ui| {
c.bench_function("label &str", |b| {
b.iter(|| {
ui.label("the quick brown fox jumps over the lazy dog");
let _ = ctx.run(
RawInput::default(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
egui::CentralPanel::default().show(ctx, |ui| {
c.bench_function("label &str", |b| {
b.iter(|| {
ui.label("the quick brown fox jumps over the lazy dog");
});
});
c.bench_function("label format!", |b| {
b.iter(|| {
ui.label("the quick brown fox jumps over the lazy dog".to_owned());
});
});
});
c.bench_function("label format!", |b| {
b.iter(|| {
ui.label("the quick brown fox jumps over the lazy dog".to_owned());
});
});
});
});
},
);
}
{
let ctx = egui::Context::default();
ctx.begin_frame(RawInput::default(), 0, 0);
ctx.begin_frame(RawInput::default(), ViewportId::MAIN, ViewportId::MAIN);
egui::CentralPanel::default().show(&ctx, |ui| {
c.bench_function("Painter::rect", |b| {

View File

@@ -19,6 +19,7 @@ pub mod syntax_highlighting;
pub use color_test::ColorTest;
pub use demo::DemoWindows;
use egui::ViewportId;
// ----------------------------------------------------------------------------
@@ -68,9 +69,14 @@ fn test_egui_e2e() {
const NUM_FRAMES: usize = 5;
for _ in 0..NUM_FRAMES {
let full_output = ctx.run(raw_input.clone(), 0, 0, |ctx| {
demo_windows.ui(ctx);
});
let full_output = ctx.run(
raw_input.clone(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
demo_windows.ui(ctx);
},
);
let clipped_primitives = ctx.tessellate(full_output.shapes);
assert!(!clipped_primitives.is_empty());
}
@@ -87,9 +93,14 @@ fn test_egui_zero_window_size() {
const NUM_FRAMES: usize = 5;
for _ in 0..NUM_FRAMES {
let full_output = ctx.run(raw_input.clone(), 0, 0, |ctx| {
demo_windows.ui(ctx);
});
let full_output = ctx.run(
raw_input.clone(),
ViewportId::MAIN,
ViewportId::MAIN,
|ctx| {
demo_windows.ui(ctx);
},
);
let clipped_primitives = ctx.tessellate(full_output.shapes);
assert!(
clipped_primitives.is_empty(),