pub struct CapabilityMatrix {
pub host_backend: InteropBackend,
pub gl_framebuffer_source: CapabilityStatus,
pub vulkan_external_image: CapabilityStatus,
pub metal_texture_ref: CapabilityStatus,
pub dx12_shared_texture: CapabilityStatus,
}Expand description
Reports which frame types can be imported on the current device and backend.
Obtain via HostWgpuContext::capabilities or
CapabilityMatrix::for_backend. Use this before attempting an import to
give the user an early, descriptive error rather than a runtime failure.
Fields§
§host_backend: InteropBackendThe backend detected on the host wgpu device.
gl_framebuffer_source: CapabilityStatusGL framebuffer import (the primary path — Linux Vulkan, Apple Metal).
vulkan_external_image: CapabilityStatusDirect DMABUF→Vulkan import (Linux only).
metal_texture_ref: CapabilityStatusDirect Metal texture reference import (Apple platforms only).
D3D12 shared texture import (Windows only).
Implementations§
Source§impl CapabilityMatrix
impl CapabilityMatrix
pub fn for_backend(host_backend: InteropBackend) -> Self
Trait Implementations§
Source§impl Clone for CapabilityMatrix
impl Clone for CapabilityMatrix
Source§impl Debug for CapabilityMatrix
impl Debug for CapabilityMatrix
impl Eq for CapabilityMatrix
Source§impl PartialEq for CapabilityMatrix
impl PartialEq for CapabilityMatrix
impl StructuralPartialEq for CapabilityMatrix
Auto Trait Implementations§
impl Freeze for CapabilityMatrix
impl RefUnwindSafe for CapabilityMatrix
impl Send for CapabilityMatrix
impl Sync for CapabilityMatrix
impl Unpin for CapabilityMatrix
impl UnsafeUnpin for CapabilityMatrix
impl UnwindSafe for CapabilityMatrix
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more