[][src]Struct gfx_hal::Features

pub struct Features { /* fields omitted */ }

Features that the device supports. These only include features of the core interface and not API extensions.

Methods

impl Features[src]

pub const CORE_MASK: Features[src]

Bit mask of Vulkan Core features.

pub const PORTABILITY_MASK: Features[src]

Bit mask of Vulkan Portability features.

pub const WEBGPU_MASK: Features[src]

Bit mask for extra WebGPU features.

pub const ROBUST_BUFFER_ACCESS: Features[src]

Support for robust buffer access. Buffer access by SPIR-V shaders is checked against the buffer/image boundaries.

pub const FULL_DRAW_INDEX_U32: Features[src]

Support the full 32-bit range of indexed for draw calls. If not supported, the maximum index value is determined by Limits::max_draw_index_value.

pub const IMAGE_CUBE_ARRAY: Features[src]

Support cube array image views.

pub const INDEPENDENT_BLENDING: Features[src]

Support different color blending settings per attachments on graphics pipeline creation.

pub const GEOMETRY_SHADER: Features[src]

Support geometry shader.

pub const TESSELLATION_SHADER: Features[src]

Support tessellation shaders.

pub const SAMPLE_RATE_SHADING: Features[src]

Support per-sample shading and multisample interpolation.

pub const DUAL_SRC_BLENDING: Features[src]

Support dual source blending.

pub const LOGIC_OP: Features[src]

Support logic operations.

pub const MULTI_DRAW_INDIRECT: Features[src]

Support multiple draws per indirect call.

pub const DRAW_INDIRECT_FIRST_INSTANCE: Features[src]

Support indirect drawing with first instance value. If not supported the first instance value must be 0.

pub const DEPTH_CLAMP: Features[src]

Support depth clamping.

pub const DEPTH_BIAS_CLAMP: Features[src]

Support depth bias clamping.

pub const NON_FILL_POLYGON_MODE: Features[src]

Support non-fill polygon modes.

pub const DEPTH_BOUNDS: Features[src]

Support depth bounds test.

pub const LINE_WIDTH: Features[src]

Support lines with width other than 1.0.

pub const POINT_SIZE: Features[src]

Support points with size greater than 1.0.

pub const ALPHA_TO_ONE: Features[src]

Support replacing alpha values with 1.0.

pub const MULTI_VIEWPORTS: Features[src]

Support multiple viewports and scissors.

pub const SAMPLER_ANISOTROPY: Features[src]

Support anisotropic filtering.

pub const FORMAT_ETC2: Features[src]

Support ETC2 texture compression formats.

pub const FORMAT_ASTC_LDR: Features[src]

Support ASTC (LDR) texture compression formats.

pub const FORMAT_BC: Features[src]

Support BC texture compression formats.

pub const PRECISE_OCCLUSION_QUERY: Features[src]

Support precise occlusion queries, returning the actual number of samples. If not supported, queries return a non-zero value when at least one sample passes.

pub const PIPELINE_STATISTICS_QUERY: Features[src]

Support query of pipeline statistics.

pub const VERTEX_STORES_AND_ATOMICS: Features[src]

Support unordered access stores and atomic ops in the vertex, geometry and tessellation shader stage. If not supported, the shader resources must be annotated as read-only.

pub const FRAGMENT_STORES_AND_ATOMICS: Features[src]

Support unordered access stores and atomic ops in the fragment shader stage If not supported, the shader resources must be annotated as read-only.

pub const SHADER_TESSELLATION_AND_GEOMETRY_POINT_SIZE: Features[src]

pub const SHADER_IMAGE_GATHER_EXTENDED: Features[src]

pub const SHADER_STORAGE_IMAGE_EXTENDED_FORMATS: Features[src]

pub const SHADER_STORAGE_IMAGE_MULTISAMPLE: Features[src]

pub const SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT: Features[src]

pub const SHADER_STORAGE_IMAGE_WRITE_WITHOUT_FORMAT: Features[src]

pub const SHADER_UNIFORM_BUFFER_ARRAY_DYNAMIC_INDEXING: Features[src]

pub const SHADER_SAMPLED_IMAGE_ARRAY_DYNAMIC_INDEXING: Features[src]

pub const SHADER_STORAGE_BUFFER_ARRAY_DYNAMIC_INDEXING: Features[src]

pub const SHADER_STORAGE_IMAGE_ARRAY_DYNAMIC_INDEXING: Features[src]

pub const SHADER_CLIP_DISTANCE: Features[src]

pub const SHADER_CULL_DISTANCE: Features[src]

pub const SHADER_FLOAT64: Features[src]

pub const SHADER_INT64: Features[src]

pub const SHADER_INT16: Features[src]

pub const SHADER_RESOURCE_RESIDENCY: Features[src]

pub const SHADER_RESOURCE_MIN_LOD: Features[src]

pub const SPARSE_BINDING: Features[src]

pub const SPARSE_RESIDENCY_BUFFER: Features[src]

pub const SPARSE_RESIDENCY_IMAGE_2D: Features[src]

pub const SPARSE_RESIDENCY_IMAGE_3D: Features[src]

pub const SPARSE_RESIDENCY_2_SAMPLES: Features[src]

pub const SPARSE_RESIDENCY_4_SAMPLES: Features[src]

pub const SPARSE_RESIDENCY_8_SAMPLES: Features[src]

pub const SPARSE_RESIDENCY_16_SAMPLES: Features[src]

pub const SPARSE_RESIDENCY_ALIASED: Features[src]

pub const VARIABLE_MULTISAMPLE_RATE: Features[src]

pub const INHERITED_QUERIES: Features[src]

pub const SAMPLER_MIRROR_CLAMP_EDGE: Features[src]

Support for

pub const TRIANGLE_FAN: Features[src]

Support triangle fan primitive topology.

pub const SEPARATE_STENCIL_REF_VALUES: Features[src]

Support separate stencil reference values for front and back sides.

pub const INSTANCE_RATE: Features[src]

Support manually specified vertex attribute rates (divisors).

pub const SAMPLER_MIP_LOD_BIAS: Features[src]

Support non-zero mipmap bias on samplers.

pub const NDC_Y_UP: Features[src]

Make the NDC coordinate system pointing Y up, to match D3D and Metal.

pub const fn empty() -> Features[src]

Returns an empty set of flags

pub const fn all() -> Features[src]

Returns the set containing all flags.

pub const fn bits(&self) -> u128[src]

Returns the raw value of the flags currently stored.

pub fn from_bits(bits: u128) -> Option<Features>[src]

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

pub const fn from_bits_truncate(bits: u128) -> Features[src]

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

pub const unsafe fn from_bits_unchecked(bits: u128) -> Features[src]

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

pub const fn is_empty(&self) -> bool[src]

Returns true if no flags are currently stored.

pub const fn is_all(&self) -> bool[src]

Returns true if all flags are currently set.

pub const fn intersects(&self, other: Features) -> bool[src]

Returns true if there are flags common to both self and other.

pub const fn contains(&self, other: Features) -> bool[src]

Returns true all of the flags in other are contained within self.

pub fn insert(&mut self, other: Features)[src]

Inserts the specified flags in-place.

pub fn remove(&mut self, other: Features)[src]

Removes the specified flags in-place.

pub fn toggle(&mut self, other: Features)[src]

Toggles the specified flags in-place.

pub fn set(&mut self, other: Features, value: bool)[src]

Inserts or removes the specified flags depending on the passed value.

Trait Implementations

impl Binary for Features[src]

impl BitAnd<Features> for Features[src]

type Output = Features

The resulting type after applying the & operator.

fn bitand(self, other: Features) -> Features[src]

Returns the intersection between the two sets of flags.

impl BitAndAssign<Features> for Features[src]

fn bitand_assign(&mut self, other: Features)[src]

Disables all flags disabled in the set.

impl BitOr<Features> for Features[src]

type Output = Features

The resulting type after applying the | operator.

fn bitor(self, other: Features) -> Features[src]

Returns the union of the two sets of flags.

impl BitOrAssign<Features> for Features[src]

fn bitor_assign(&mut self, other: Features)[src]

Adds the set of flags.

impl BitXor<Features> for Features[src]

type Output = Features

The resulting type after applying the ^ operator.

fn bitxor(self, other: Features) -> Features[src]

Returns the left flags, but with all the right flags toggled.

impl BitXorAssign<Features> for Features[src]

fn bitxor_assign(&mut self, other: Features)[src]

Toggles the set of flags.

impl Clone for Features[src]

impl Copy for Features[src]

impl Debug for Features[src]

impl Eq for Features[src]

impl Extend<Features> for Features[src]

impl FromIterator<Features> for Features[src]

impl Hash for Features[src]

impl LowerHex for Features[src]

impl Not for Features[src]

type Output = Features

The resulting type after applying the ! operator.

fn not(self) -> Features[src]

Returns the complement of this set of flags.

impl Octal for Features[src]

impl Ord for Features[src]

impl PartialEq<Features> for Features[src]

impl PartialOrd<Features> for Features[src]

impl StructuralEq for Features[src]

impl StructuralPartialEq for Features[src]

impl Sub<Features> for Features[src]

type Output = Features

The resulting type after applying the - operator.

fn sub(self, other: Features) -> Features[src]

Returns the set difference of the two sets of flags.

impl SubAssign<Features> for Features[src]

fn sub_assign(&mut self, other: Features)[src]

Disables all flags enabled in the set.

impl UpperHex for Features[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.