Trait IsCommandEnabled

Source
pub trait IsCommandEnabled {
    // Required method
    fn is_command_enabled(
        self,
        api_version: &ApiVersion,
        enabled_extensions: &BTreeSet<Extension>,
    ) -> bool;
}
Available on crate feature unstable only.
Expand description

Used to extend an iterator of Feature.

Required Methods§

Source

fn is_command_enabled( self, api_version: &ApiVersion, enabled_extensions: &BTreeSet<Extension>, ) -> bool

Given a list of Features where the command is defined, the Vulkan API version and a set of enabled extensions, returns if the command is enabled.

One command with the same name can appear in different features, e.g. vkCmdBindVertexBuffers2EXT is defined in both VK_EXT_extended_dynamic_state and VK_EXT_shader_object. vkGetDeviceProcAddr should return a valid function pointer vkCmdBindVertexBuffers2EXT if either extension is enabled.

§Examples
use ash::vk;
use std::collections::BTreeSet;
use vulkan_layer::{
    unstable_api::{ApiVersion, Feature, IsCommandEnabled},
    Extension,
};

let features: Vec<Feature> = vec![
    Extension::EXTExtendedDynamicState.into(),
    Extension::EXTShaderObject.into(),
];
assert!(features.is_command_enabled(
    &ApiVersion::V1_1,
    &BTreeSet::from([Extension::EXTExtendedDynamicState.into()])
));
assert!(features.is_command_enabled(
    &ApiVersion::V1_1,
    &BTreeSet::from([Extension::EXTShaderObject.into()])
));
assert!(!features.is_command_enabled(&ApiVersion::V1_1, &BTreeSet::new()));

Implementors§

Source§

impl<'a, T: IntoIterator<Item = &'a Feature>> IsCommandEnabled for T