mirror of
https://github.com/emilk/egui.git
synced 2026-09-02 14:50:03 -04:00
Simplify render_immediate_viewport
This commit is contained in:
@@ -2146,9 +2146,8 @@ mod wgpu_integration {
|
|||||||
viewport_maps,
|
viewport_maps,
|
||||||
} = &mut *shared;
|
} = &mut *shared;
|
||||||
|
|
||||||
// Creating a new native window if is needed
|
|
||||||
if !viewports.contains_key(&ids.this) {
|
|
||||||
if builder.icon.is_none() {
|
if builder.icon.is_none() {
|
||||||
|
// Inherit icon from parent
|
||||||
builder.icon = viewports
|
builder.icon = viewports
|
||||||
.get(&ids.parent)
|
.get(&ids.parent)
|
||||||
.and_then(|vp| vp.builder.icon.clone());
|
.and_then(|vp| vp.builder.icon.clone());
|
||||||
@@ -2162,13 +2161,10 @@ mod wgpu_integration {
|
|||||||
egui_winit: None,
|
egui_winit: None,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if viewport.window.is_none() {
|
||||||
viewport.init_window(viewport_maps, painter, event_loop);
|
viewport.init_window(viewport_maps, painter, event_loop);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Render sync viewport:
|
|
||||||
let Some(viewport) = viewports.get_mut(&ids.this) else {
|
|
||||||
return;
|
|
||||||
};
|
|
||||||
let Some(winit_state) = &mut viewport.egui_winit else {
|
let Some(winit_state) = &mut viewport.egui_winit else {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
@@ -2756,6 +2752,7 @@ mod wgpu_integration {
|
|||||||
match viewports.entry(ids.this) {
|
match viewports.entry(ids.this) {
|
||||||
std::collections::hash_map::Entry::Vacant(entry) => {
|
std::collections::hash_map::Entry::Vacant(entry) => {
|
||||||
// New viewport:
|
// New viewport:
|
||||||
|
log::debug!("Creating new viewport {:?} ({:?})", ids.this, builder.title);
|
||||||
entry.insert(Viewport {
|
entry.insert(Viewport {
|
||||||
ids,
|
ids,
|
||||||
builder,
|
builder,
|
||||||
@@ -2775,6 +2772,11 @@ mod wgpu_integration {
|
|||||||
let (commands, recreate) = viewport.builder.patch(&builder);
|
let (commands, recreate) = viewport.builder.patch(&builder);
|
||||||
|
|
||||||
if recreate {
|
if recreate {
|
||||||
|
log::debug!(
|
||||||
|
"Recreating window for viewport {:?} ({:?})",
|
||||||
|
ids.this,
|
||||||
|
builder.title
|
||||||
|
);
|
||||||
viewport.window = None;
|
viewport.window = None;
|
||||||
viewport.egui_winit = None;
|
viewport.egui_winit = None;
|
||||||
} else if let Some(window) = &viewport.window {
|
} else if let Some(window) = &viewport.window {
|
||||||
|
|||||||
Reference in New Issue
Block a user