use crate::backend::webgpu::webgpu_sys;
use wasm_bindgen::prelude::*;
pub trait NavigatorGpu {
fn gpu(navigator: &Self) -> webgpu_sys::Gpu;
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen]
type NavigatorWithGpu;
#[wasm_bindgen(method, getter)]
fn gpu(ext: &NavigatorWithGpu) -> webgpu_sys::Gpu;
}
impl NavigatorGpu for web_sys::Navigator {
fn gpu(navigator: &Self) -> webgpu_sys::Gpu {
let extension: &NavigatorWithGpu = navigator.unchecked_ref();
extension.gpu()
}
}
impl NavigatorGpu for web_sys::WorkerNavigator {
fn gpu(navigator: &Self) -> webgpu_sys::Gpu {
let extension: &NavigatorWithGpu = navigator.unchecked_ref();
extension.gpu()
}
}