pub trait Instance: Sized + WasmNotSendSync {
type A: Api;
// Required methods
unsafe fn init(desc: &InstanceDescriptor<'_>) -> Result<Self, InstanceError>;
unsafe fn create_surface(
&self,
display_handle: RawDisplayHandle,
window_handle: RawWindowHandle,
) -> Result<<Self::A as Api>::Surface, InstanceError>;
unsafe fn enumerate_adapters(
&self,
surface_hint: Option<&<Self::A as Api>::Surface>,
) -> Vec<ExposedAdapter<Self::A>>;
}
Required Associated Types§
Required Methods§
unsafe fn init(desc: &InstanceDescriptor<'_>) -> Result<Self, InstanceError>
unsafe fn create_surface( &self, display_handle: RawDisplayHandle, window_handle: RawWindowHandle, ) -> Result<<Self::A as Api>::Surface, InstanceError>
Sourceunsafe fn enumerate_adapters(
&self,
surface_hint: Option<&<Self::A as Api>::Surface>,
) -> Vec<ExposedAdapter<Self::A>>
unsafe fn enumerate_adapters( &self, surface_hint: Option<&<Self::A as Api>::Surface>, ) -> Vec<ExposedAdapter<Self::A>>
surface_hint
is only used by the GLES backend targeting WebGL2
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.