mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 04:40:03 -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",
|
||||||
"wasm-bindgen-futures",
|
"wasm-bindgen-futures",
|
||||||
"web-sys",
|
"web-sys",
|
||||||
"wgpu",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[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.
|
## See <https://github.com/emilk/egui/issues/5889> for more details.
|
||||||
##
|
##
|
||||||
## By default, eframe will prefer WebGPU over WebGL, but
|
## 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"]
|
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`.
|
## 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",
|
"wgl",
|
||||||
] }
|
] }
|
||||||
home = { workspace = true, optional = true }
|
home = { workspace = true, optional = true }
|
||||||
wgpu = { workspace = true, optional = true }
|
|
||||||
|
|
||||||
# mac:
|
# mac:
|
||||||
[target.'cfg(any(target_os = "macos"))'.dependencies]
|
[target.'cfg(any(target_os = "macos"))'.dependencies]
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ pub use {egui, egui::emath, egui::epaint};
|
|||||||
pub use {egui_glow, glow};
|
pub use {egui_glow, glow};
|
||||||
|
|
||||||
#[cfg(feature = "wgpu_no_default_features")]
|
#[cfg(feature = "wgpu_no_default_features")]
|
||||||
pub use {egui_wgpu, wgpu};
|
pub use {egui_wgpu, egui_wgpu::wgpu};
|
||||||
|
|
||||||
mod epi;
|
mod epi;
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,12 @@ all-features = true
|
|||||||
rustdoc-args = ["--generate-link-to-definition"]
|
rustdoc-args = ["--generate-link-to-definition"]
|
||||||
|
|
||||||
[features]
|
[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.
|
## Enables the `capture` module for capturing screenshots.
|
||||||
capture = ["dep:egui"]
|
capture = ["dep:egui"]
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ serde = ["dep:serde", "egui_demo_lib/serde", "egui/serde"]
|
|||||||
syntect = ["egui_demo_lib/syntect"]
|
syntect = ["egui_demo_lib/syntect"]
|
||||||
|
|
||||||
glow = ["eframe/glow"]
|
glow = ["eframe/glow"]
|
||||||
wgpu = ["eframe/wgpu", "bytemuck", "dep:wgpu"]
|
wgpu = ["eframe/wgpu", "bytemuck"]
|
||||||
wayland = ["eframe/wayland"]
|
wayland = ["eframe/wayland"]
|
||||||
x11 = ["eframe/x11"]
|
x11 = ["eframe/x11"]
|
||||||
|
|
||||||
@@ -60,9 +60,6 @@ accesskit_consumer = { workspace = true, optional = true }
|
|||||||
bytemuck = { workspace = true, optional = true }
|
bytemuck = { workspace = true, optional = true }
|
||||||
puffin = { workspace = true, optional = true }
|
puffin = { workspace = true, optional = true }
|
||||||
puffin_http = { 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":
|
# 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 wgpu_adapter_details_ui = |ui: &mut egui::Ui, adapter: &eframe::wgpu::Adapter| {
|
||||||
let info = &adapter.get_info();
|
let info = &adapter.get_info();
|
||||||
|
|
||||||
let wgpu::AdapterInfo {
|
let eframe::wgpu::AdapterInfo {
|
||||||
name,
|
name,
|
||||||
vendor,
|
vendor,
|
||||||
device,
|
device,
|
||||||
|
|||||||
Reference in New Issue
Block a user