QueueFamilyCriteria

Struct QueueFamilyCriteria 

Source
pub struct QueueFamilyCriteria {
    pub must_support: QueueFlags,
    pub should_support: QueueFlags,
    pub must_not_support: QueueFlags,
    pub should_not_support: QueueFlags,
    pub presentation_support: Option<bool>,
}
Expand description

Criteria for queue families.

Fields§

§must_support: QueueFlags

A queue family will only be considered if all these flags are set.

§should_support: QueueFlags

A queue family will be preferred over other ones if all these flags are set. The more of these flags are set, the more likely it is for the queue family to be chosen.

§must_not_support: QueueFlags

A queue family will only be considered if none of these flags are set.

§should_not_support: QueueFlags

A queue family will be preferred over other ones if none of these flags are set. The less of these flags are set, the more likely it is for the queue family to be chosen.

§presentation_support: Option<bool>

This criteria is only met if the presentation support matches with this flag. None corresponds to being indifferent to the support. Some(expected) corresponds to the criteria being met if the support matches with expected.

Implementations§

Source§

impl QueueFamilyCriteria

Source

pub fn none() -> QueueFamilyCriteria

Queue family criteria that are always met.

Source

pub fn graphics_present() -> QueueFamilyCriteria

The criteria are only met if the queue family supports graphics and presentation.

Source

pub fn preferably_separate_transfer() -> QueueFamilyCriteria

Tries to match the queue family that’s the closest to being a pure transfer queue.

Source

pub fn must_support(self, must_support: QueueFlags) -> QueueFamilyCriteria

Add an requirement that these queue flags must be present in the queue family.

Source

pub fn should_support(self, should_support: QueueFlags) -> QueueFamilyCriteria

Add an recommendation that these queue flags should be present in the queue family.

Source

pub fn must_not_support( self, must_not_support: QueueFlags, ) -> QueueFamilyCriteria

Add an requirement that these queue flags must not be present in the queue family.

Source

pub fn should_not_support( self, should_not_support: QueueFlags, ) -> QueueFamilyCriteria

Add an recommendation that these queue flags should not be present in the queue family.

Source

pub fn must_support_presentation(self) -> QueueFamilyCriteria

Require that the queue family must support presentation.

Source

pub fn must_not_support_presentation(self) -> QueueFamilyCriteria

Require that the queue family must not support presentation.

Source

pub fn choose_queue_family<'a>( &self, instance: &InstanceLoader, physical_device: PhysicalDevice, queue_family_properties: &'a [QueueFamilyProperties], surface: Option<SurfaceKHR>, ) -> Result<Option<(u32, &'a QueueFamilyProperties)>, Result>

Returns the index of the best suited queue family. Returns Ok(None) when no queue family meets the criteria. Returns Err(_) when an internal Vulkan call failed.

Trait Implementations§

Source§

impl Clone for QueueFamilyCriteria

Source§

fn clone(&self) -> QueueFamilyCriteria

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for QueueFamilyCriteria

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for QueueFamilyCriteria

Source§

fn default() -> QueueFamilyCriteria

Returns the “default value” for a type. Read more
Source§

impl Hash for QueueFamilyCriteria

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for QueueFamilyCriteria

Source§

fn eq(&self, other: &QueueFamilyCriteria) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for QueueFamilyCriteria

Source§

impl Eq for QueueFamilyCriteria

Source§

impl StructuralPartialEq for QueueFamilyCriteria

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.