2023-11-20 07:41:52 +00:00
|
|
|
use wgt::{Backend, WasmNotSendSync};
|
2023-05-22 21:18:41 +00:00
|
|
|
|
2023-11-20 07:41:52 +00:00
|
|
|
pub trait HalApi: hal::Api + 'static + WasmNotSendSync {
|
2023-05-22 21:18:41 +00:00
|
|
|
const VARIANT: Backend;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl HalApi for hal::api::Empty {
|
|
|
|
const VARIANT: Backend = Backend::Empty;
|
|
|
|
}
|
|
|
|
|
2024-01-14 05:59:59 +00:00
|
|
|
#[cfg(vulkan)]
|
2023-05-22 21:18:41 +00:00
|
|
|
impl HalApi for hal::api::Vulkan {
|
|
|
|
const VARIANT: Backend = Backend::Vulkan;
|
|
|
|
}
|
|
|
|
|
2024-01-14 05:59:59 +00:00
|
|
|
#[cfg(metal)]
|
2023-05-22 21:18:41 +00:00
|
|
|
impl HalApi for hal::api::Metal {
|
|
|
|
const VARIANT: Backend = Backend::Metal;
|
|
|
|
}
|
|
|
|
|
2024-01-14 05:59:59 +00:00
|
|
|
#[cfg(dx12)]
|
2023-05-22 21:18:41 +00:00
|
|
|
impl HalApi for hal::api::Dx12 {
|
|
|
|
const VARIANT: Backend = Backend::Dx12;
|
|
|
|
}
|
|
|
|
|
2024-01-14 05:59:59 +00:00
|
|
|
#[cfg(gles)]
|
2023-05-22 21:18:41 +00:00
|
|
|
impl HalApi for hal::api::Gles {
|
|
|
|
const VARIANT: Backend = Backend::Gl;
|
|
|
|
}
|