[][src]Struct vulkano::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 Eq for ImageUsage[src]

impl Clone for ImageUsage[src]

impl PartialEq<ImageUsage> for ImageUsage[src]

impl Copy for ImageUsage[src]

impl Hash for ImageUsage[src]

impl BitOr<ImageUsage> for ImageUsage[src]

type Output = Self

The resulting type after applying the | operator.

impl Debug for ImageUsage[src]

Auto Trait Implementations

impl Send for ImageUsage

impl Unpin for ImageUsage

impl Sync for ImageUsage

impl UnwindSafe for ImageUsage

impl RefUnwindSafe for ImageUsage

Blanket Implementations

impl<T> Content 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> From<T> for 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> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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