[][src]Struct nannou::vk::image::ImageUsage

pub struct ImageUsage {
    pub transfer_source: bool,
    pub transfer_destination: bool,
    pub sampled: bool,
    pub storage: bool,
    pub color_attachment: bool,
    pub depth_stencil_attachment: bool,
    pub transient_attachment: bool,
    pub input_attachment: bool,
}

Describes how an image is going to be used. This is not just an optimization.

If you try to use an image in a way that you didn't declare, a panic will happen.

If transient_attachment is true, then only color_attachment, depth_stencil_attachment and input_attachment can be true as well. The rest must be false or an error will be returned when creating the image.

Fields

transfer_source: bool

Can be used as a source for transfers. Includes blits.

transfer_destination: bool

Can be used as a destination for transfers. Includes blits.

sampled: bool

Can be sampled from a shader.

storage: bool

Can be used as an image storage in a shader.

color_attachment: bool

Can be attached as a color attachment to a framebuffer.

depth_stencil_attachment: bool

Can be attached as a depth, stencil or depth-stencil attachment to a framebuffer.

transient_attachment: bool

Indicates that this image will only ever be used as a temporary framebuffer attachment. As soon as you leave a render pass, the content of transient images becomes undefined.

This is a hint to the Vulkan implementation that it may not need allocate any memory for this image if the image can live entirely in some cache.

input_attachment: bool

Can be used as an input attachment. In other words, you can draw to it in a subpass then read from it in a following pass.

Methods

impl ImageUsage[src]

pub fn all() -> ImageUsage[src]

Builds a ImageUsage with all values set to true. Note that using the returned value will produce an error because of transient_attachment being true.

pub fn none() -> ImageUsage[src]

Builds a ImageUsage with all values set to false. Useful as a default value.

Example

use vulkano::image::ImageUsage as ImageUsage;

let _usage = ImageUsage {
    transfer_destination: true,
    sampled: true,
    .. ImageUsage::none()
};

Trait Implementations

impl PartialEq<ImageUsage> for ImageUsage[src]

impl Copy for ImageUsage[src]

impl Eq for ImageUsage[src]

impl Hash for ImageUsage[src]

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

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for ImageUsage[src]

impl BitOr<ImageUsage> for ImageUsage[src]

type Output = ImageUsage

The resulting type after applying the | operator.

impl Clone for ImageUsage[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl Send for ImageUsage

impl Sync for ImageUsage

Blanket Implementations

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

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

type Owned = T

The resulting type after obtaining ownership.

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

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.

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

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

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

impl<T> NodeId for T where
    T: 'static + Copy + Clone + PartialEq<T> + Eq + Hash + Send
[src]

impl<T> Style for T where
    T: Any + Debug + PartialEq<T>, 
[src]

impl<T> Content for T[src]

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

impl<T> Erased for T

impl<S> FromSample<S> for S[src]

impl<T, U> ToSample<U> for T where
    U: FromSample<T>, 
[src]

impl<S, T> Duplex<S> for T where
    T: FromSample<S> + ToSample<S>, 
[src]

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.