mirror of
https://github.com/emilk/egui.git
synced 2026-06-26 14:49:06 -04:00
wgpu backend: Enable WebGL fallback (#8038)
* Fix for https://github.com/emilk/eframe_template/issues/223 * Related: https://github.com/gfx-rs/wgpu/pull/9319 By default, we would only turn on the WebGPU backend on web, which means browsers without WebGPU support would just crash. You can still opt-out of all the default `wgpu` features by enabling `eframe/wgpu_no_default_features` instead of `eframe/wgpu`
This commit is contained in:
@@ -1330,7 +1330,6 @@ dependencies = [
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"web-sys",
|
||||
"wgpu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -89,7 +89,7 @@ web_screen_reader = ["web-sys/SpeechSynthesis", "web-sys/SpeechSynthesisUtteranc
|
||||
## See <https://github.com/emilk/egui/issues/5889> for more details.
|
||||
##
|
||||
## By default, eframe will prefer WebGPU over WebGL, but
|
||||
## you can configure this at run-time with [`NativeOptions::wgpu_options`].
|
||||
## you can configure this at run-time with `WebOptions::wgpu_options`.
|
||||
wgpu = ["wgpu_no_default_features", "egui-wgpu/default"]
|
||||
|
||||
## This is exactly like the `wgpu` feature, but does NOT enable the default features of `wgpu` and `egui-wgpu`.
|
||||
@@ -155,7 +155,6 @@ glutin-winit = { workspace = true, optional = true, default-features = false, fe
|
||||
"wgl",
|
||||
] }
|
||||
home = { workspace = true, optional = true }
|
||||
wgpu = { workspace = true, optional = true }
|
||||
|
||||
# mac:
|
||||
[target.'cfg(any(target_os = "macos"))'.dependencies]
|
||||
|
||||
@@ -159,7 +159,7 @@ pub use {egui, egui::emath, egui::epaint};
|
||||
pub use {egui_glow, glow};
|
||||
|
||||
#[cfg(feature = "wgpu_no_default_features")]
|
||||
pub use {egui_wgpu, wgpu};
|
||||
pub use {egui_wgpu, egui_wgpu::wgpu};
|
||||
|
||||
mod epi;
|
||||
|
||||
|
||||
@@ -25,7 +25,12 @@ all-features = true
|
||||
rustdoc-args = ["--generate-link-to-definition"]
|
||||
|
||||
[features]
|
||||
default = ["fragile-send-sync-non-atomic-wasm", "macos-window-resize-jitter-fix", "wgpu/default"]
|
||||
default = [
|
||||
"fragile-send-sync-non-atomic-wasm",
|
||||
"macos-window-resize-jitter-fix",
|
||||
"wgpu/default",
|
||||
"wgpu/webgl", # A very important fallback for web support
|
||||
]
|
||||
|
||||
## Enables the `capture` module for capturing screenshots.
|
||||
capture = ["dep:egui"]
|
||||
|
||||
@@ -37,7 +37,7 @@ serde = ["dep:serde", "egui_demo_lib/serde", "egui/serde"]
|
||||
syntect = ["egui_demo_lib/syntect"]
|
||||
|
||||
glow = ["eframe/glow"]
|
||||
wgpu = ["eframe/wgpu", "bytemuck", "dep:wgpu"]
|
||||
wgpu = ["eframe/wgpu", "bytemuck"]
|
||||
wayland = ["eframe/wayland"]
|
||||
x11 = ["eframe/x11"]
|
||||
|
||||
@@ -60,9 +60,6 @@ accesskit_consumer = { workspace = true, optional = true }
|
||||
bytemuck = { workspace = true, optional = true }
|
||||
puffin = { workspace = true, optional = true }
|
||||
puffin_http = { workspace = true, optional = true }
|
||||
# Enable both WebGL & WebGPU when targeting the web (these features have no effect when not targeting wasm32)
|
||||
# Also enable the default features so we have a supported backend for every platform.
|
||||
wgpu = { workspace = true, features = ["default", "webgpu", "webgl"], optional = true }
|
||||
|
||||
|
||||
# feature "http":
|
||||
|
||||
@@ -211,7 +211,7 @@ fn integration_ui(ui: &mut egui::Ui, _frame: &mut eframe::Frame) {
|
||||
let wgpu_adapter_details_ui = |ui: &mut egui::Ui, adapter: &eframe::wgpu::Adapter| {
|
||||
let info = &adapter.get_info();
|
||||
|
||||
let wgpu::AdapterInfo {
|
||||
let eframe::wgpu::AdapterInfo {
|
||||
name,
|
||||
vendor,
|
||||
device,
|
||||
|
||||
Reference in New Issue
Block a user