1
0
mirror of https://github.com/emilk/egui.git synced 2026-08-31 22:00:03 -04:00

Update wgpu to 0.19 (#3824)

* Closes https://github.com/emilk/egui/issues/3675

---------

Co-authored-by: Andreas Reich <r_andreas2@web.de>
Co-authored-by: Mingun <Alexander_Sergey@mail.ru>
This commit is contained in:
Emil Ernerfeldt
2024-01-19 10:14:13 +01:00
committed by GitHub
parent 7733d1d87c
commit b766a48fa7
27 changed files with 578 additions and 344 deletions

View File

@@ -184,6 +184,103 @@ fn integration_ui(ui: &mut egui::Ui, _frame: &mut eframe::Frame) {
ui.monospace(format!("{:#?}", _frame.info().web_info.location));
});
#[cfg(feature = "glow")]
if _frame.gl().is_some() {
ui.horizontal(|ui| {
ui.label("Renderer:");
ui.hyperlink_to("glow", "https://github.com/grovesNL/glow");
});
}
#[cfg(feature = "wgpu")]
if let Some(render_state) = _frame.wgpu_render_state() {
let wgpu_adapter_details_ui = |ui: &mut egui::Ui, adapter: &eframe::wgpu::Adapter| {
let info = &adapter.get_info();
let wgpu::AdapterInfo {
name,
vendor,
device,
device_type,
driver,
driver_info,
backend,
} = &info;
// Example values:
// > name: "llvmpipe (LLVM 16.0.6, 256 bits)", device_type: Cpu, backend: Vulkan, driver: "llvmpipe", driver_info: "Mesa 23.1.6-arch1.4 (LLVM 16.0.6)"
// > name: "Apple M1 Pro", device_type: IntegratedGpu, backend: Metal, driver: "", driver_info: ""
// > name: "ANGLE (Apple, Apple M1 Pro, OpenGL 4.1)", device_type: IntegratedGpu, backend: Gl, driver: "", driver_info: ""
egui::Grid::new("adapter_info").show(ui, |ui| {
ui.label("Backend:");
ui.label(format!("{backend:?}"));
ui.end_row();
ui.label("Device Type:");
ui.label(format!("{device_type:?}"));
ui.end_row();
if !name.is_empty() {
ui.label("Name:");
ui.label(format!("{name:?}"));
ui.end_row();
}
if !driver.is_empty() {
ui.label("Driver:");
ui.label(format!("{driver:?}"));
ui.end_row();
}
if !driver_info.is_empty() {
ui.label("Driver info:");
ui.label(format!("{driver_info:?}"));
ui.end_row();
}
if *vendor != 0 {
// TODO(emilk): decode using https://github.com/gfx-rs/wgpu/blob/767ac03245ee937d3dc552edc13fe7ab0a860eec/wgpu-hal/src/auxil/mod.rs#L7
ui.label("Vendor:");
ui.label(format!("0x{vendor:04X}"));
ui.end_row();
}
if *device != 0 {
ui.label("Device:");
ui.label(format!("0x{device:02X}"));
ui.end_row();
}
});
};
let wgpu_adapter_ui = |ui: &mut egui::Ui, adapter: &eframe::wgpu::Adapter| {
let info = &adapter.get_info();
ui.label(format!("{:?}", info.backend)).on_hover_ui(|ui| {
wgpu_adapter_details_ui(ui, adapter);
});
};
egui::Grid::new("wgpu_info").num_columns(2).show(ui, |ui| {
ui.label("Renderer:");
ui.hyperlink_to("wgpu", "https://wgpu.rs/");
ui.end_row();
ui.label("Backend:");
wgpu_adapter_ui(ui, &render_state.adapter);
ui.end_row();
#[cfg(not(target_arch = "wasm32"))]
if 1 < render_state.available_adapters.len() {
ui.label("Others:");
ui.vertical(|ui| {
for adapter in &*render_state.available_adapters {
if adapter.get_info() != render_state.adapter.get_info() {
wgpu_adapter_ui(ui, adapter);
}
}
});
ui.end_row();
}
});
}
#[cfg(not(target_arch = "wasm32"))]
{
ui.horizontal(|ui| {
@@ -214,15 +311,6 @@ fn integration_ui(ui: &mut egui::Ui, _frame: &mut eframe::Frame) {
ui.close_menu();
}
});
let fullscreen = ui.input(|i| i.viewport().fullscreen.unwrap_or(false));
if !fullscreen
&& ui
.button("Drag me to drag window")
.is_pointer_button_down_on()
{
ui.ctx().send_viewport_cmd(egui::ViewportCommand::StartDrag);
}
}
}