[−][src]Struct gfx_hal::adapter::Adapter
The list of Adapter instances is obtained by calling Instance::enumerate_adapters().
Given an Adapter a Gpu can be constructed by calling PhysicalDevice::open() on its
physical_device field. However, if only a single queue family is needed or if no
additional device features are required, then the Adapter::open_with convenience method
can be used instead.
Fields
info: AdapterInfoGeneral information about this adapter.
physical_device: B::PhysicalDeviceActual physical device.
queue_families: Vec<B::QueueFamily>Queue families supported by this adapter.
Methods
impl<B: Backend> Adapter<B>[src]
pub fn open_with<F, C>(
&self,
count: usize,
selector: F
) -> Result<(B::Device, QueueGroup<B, C>), DeviceCreationError> where
F: Fn(&B::QueueFamily) -> bool,
C: Capability, [src]
&self,
count: usize,
selector: F
) -> Result<(B::Device, QueueGroup<B, C>), DeviceCreationError> where
F: Fn(&B::QueueFamily) -> bool,
C: Capability,
Open the physical device with count queues from some active queue family. The family is
the first that both provides the capability C, supports at least count queues, and for
which selector returns true.
Examples
use hal::General; let (device, queues) = adapter.open_with::<_, General>(1, |_| true).unwrap();
Return
Returns the same errors as open and InitializationFailed if no suitable
queue family could be found.
Trait Implementations
impl<B: Debug + Backend> Debug for Adapter<B> where
B::PhysicalDevice: Debug,
B::QueueFamily: Debug, [src]
B::PhysicalDevice: Debug,
B::QueueFamily: Debug,
Auto Trait Implementations
impl<B> Unpin for Adapter<B> where
<B as Backend>::PhysicalDevice: Unpin,
<B as Backend>::QueueFamily: Unpin,
<B as Backend>::PhysicalDevice: Unpin,
<B as Backend>::QueueFamily: Unpin,
impl<B> Sync for Adapter<B> where
<B as Backend>::PhysicalDevice: Sync,
<B as Backend>::QueueFamily: Sync,
<B as Backend>::PhysicalDevice: Sync,
<B as Backend>::QueueFamily: Sync,
impl<B> Send for Adapter<B> where
<B as Backend>::PhysicalDevice: Send,
<B as Backend>::QueueFamily: Send,
<B as Backend>::PhysicalDevice: Send,
<B as Backend>::QueueFamily: Send,
impl<B> UnwindSafe for Adapter<B> where
<B as Backend>::PhysicalDevice: UnwindSafe,
<B as Backend>::QueueFamily: UnwindSafe,
<B as Backend>::PhysicalDevice: UnwindSafe,
<B as Backend>::QueueFamily: UnwindSafe,
impl<B> RefUnwindSafe for Adapter<B> where
<B as Backend>::PhysicalDevice: RefUnwindSafe,
<B as Backend>::QueueFamily: RefUnwindSafe,
<B as Backend>::PhysicalDevice: RefUnwindSafe,
<B as Backend>::QueueFamily: RefUnwindSafe,
Blanket Implementations
impl<T> Supports<T> for T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,