#[non_exhaustive]pub enum NativeFrame {
GlFramebufferSource(GlFramebufferSource),
VulkanExternalImage(VulkanExternalImage),
MetalTextureRef(MetalTextureRef),
Dx12SharedTexture(Dx12SharedTexture),
}Expand description
A frame produced by a FrameProducer, ready to be imported by a
TextureImporter.
A frame produced by a FrameProducer, ready to be imported by a
TextureImporter.
GlFramebufferSource, MetalTextureRef, and Dx12SharedTexture have
complete import implementations. VulkanExternalImage is defined for API
stability but its import path is not yet implemented.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
GlFramebufferSource(GlFramebufferSource)
A GL framebuffer — the primary, fully-implemented path.
VulkanExternalImage(VulkanExternalImage)
A Vulkan external image. Not yet implemented — returns
UnsupportedReason::NativeImportNotYetImplemented.
MetalTextureRef(MetalTextureRef)
A Metal texture reference. Fully implemented via IOSurface interop.
A D3D12 shared texture. Fully implemented via shared handle interop.
Implementations§
Source§impl NativeFrame
impl NativeFrame
pub fn kind(&self) -> NativeFrameKind
pub fn producer_sync(&self) -> SyncMechanism
Auto Trait Implementations§
impl Freeze for NativeFrame
impl !RefUnwindSafe for NativeFrame
impl !Send for NativeFrame
impl !Sync for NativeFrame
impl Unpin for NativeFrame
impl UnsafeUnpin for NativeFrame
impl !UnwindSafe for NativeFrame
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> 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