Struct vulkano::image::ImageUsage

source ·
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,
}
Expand description

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.

Implementations

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.

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

The resulting type after applying the | operator.
Performs the | operation. Read more
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Builds a pointer to this type from a raw pointer.
Returns true if the size is suitable to store a type like this.
Returns the size of an individual element.

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.