[−][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: AdapterInfo
General information about this adapter.
physical_device: B::PhysicalDevice
Actual 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> 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> 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> 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> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,