Error on missing web_sys_unstable_apis (#5104)

This commit is contained in:
Lucas Kent 2024-01-21 14:36:29 +11:00 committed by GitHub
parent 6c7c6fb999
commit e128d6c261
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 22 additions and 5 deletions

View File

@ -5,3 +5,6 @@ xtask = "run --manifest-path xtask/Cargo.toml"
rustflags = [
"--cfg=web_sys_unstable_apis"
]
rustdocflags = [
"--cfg=web_sys_unstable_apis"
]

View File

@ -56,7 +56,7 @@ env:
RUST_BACKTRACE: full
PKG_CONFIG_ALLOW_CROSS: 1 # allow android to work
RUSTFLAGS: --cfg=web_sys_unstable_apis -D warnings
RUSTDOCFLAGS: -Dwarnings
RUSTDOCFLAGS: --cfg=web_sys_unstable_apis -D warnings
WASM_BINDGEN_TEST_TIMEOUT: 300 # 5 minutes
CACHE_SUFFIX: c # cache busting

View File

@ -1,9 +1,23 @@
#[cfg(webgpu)]
#[cfg(all(webgpu, web_sys_unstable_apis))]
mod webgpu;
#[cfg(webgpu)]
#[cfg(all(webgpu, web_sys_unstable_apis))]
pub(crate) use webgpu::{get_browser_gpu_property, ContextWebGpu};
#[cfg(all(webgpu, not(web_sys_unstable_apis)))]
compile_error!(
"webgpu feature used without web_sys_unstable_apis config:
Here are some ways to resolve this:
* If you wish to use webgpu backend, create a .cargo/config.toml in the root of the repo containing:
[build]
rustflags = [ \"--cfg=web_sys_unstable_apis\" ]
rustdocflags = [ \"--cfg=web_sys_unstable_apis\" ]
* If you wish to disable webgpu backend and instead use webgl backend, change your wgpu Cargo.toml entry to:
wgpu = { version = \"\", default-features = false, features = [\"webgl\"] }
"
);
#[cfg(wgpu_core)]
mod wgpu_core;
#[cfg(wgpu_core)]
pub(crate) use wgpu_core::ContextWgpuCore;

View File

@ -1812,7 +1812,7 @@ impl Instance {
);
}
#[cfg(webgpu)]
#[cfg(all(webgpu, web_sys_unstable_apis))]
{
let is_only_available_backend = !cfg!(wgpu_core);
let requested_webgpu = _instance_desc.backends.contains(Backends::BROWSER_WEBGPU);
@ -3086,7 +3086,7 @@ impl<'a> BufferSlice<'a> {
/// this function directly hands you the ArrayBuffer that we mapped the data into in js.
///
/// This is only available on WebGPU, on any other backends this will return `None`.
#[cfg(webgpu)]
#[cfg(all(webgpu, web_sys_unstable_apis))]
pub fn get_mapped_range_as_array_buffer(&self) -> Option<js_sys::ArrayBuffer> {
self.buffer
.context