logo
pub struct ImageUsage {
    pub transfer_src: bool,
    pub transfer_dst: bool,
    pub sampled: bool,
    pub storage: bool,
    pub color_attachment: bool,
    pub depth_stencil_attachment: bool,
    pub transient_attachment: bool,
    pub input_attachment: bool,
    pub _ne: NonExhaustive,
}
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, an error will occur.

Fields

transfer_src: bool

The image can be used as a source for transfer, blit, resolve and clear commands.

transfer_dst: bool

The image can be used as a destination for transfer, blit, resolve and clear commands.

sampled: bool

The image can be used as a sampled image in a shader.

storage: bool

The image can be used as a storage image in a shader.

color_attachment: bool

The image can be used as a color attachment in a render pass/framebuffer.

depth_stencil_attachment: bool

The image can be used as a depth/stencil attachment in a render pass/framebuffer.

transient_attachment: bool

The image will be used as an attachment, and will only ever be used temporarily. 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.

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.

input_attachment: bool

The image can be used as an input attachment in a render pass/framebuffer.

_ne: NonExhaustive

Implementations

Returns a ImageUsage with none of the flags set.

👎Deprecated since 0.31.0:

Use empty instead.

Returns a ImageUsage with none of the flags set.

Returns whether no flags are set in self.

Returns whether any flags are set in both self and other.

Returns whether all flags in other are set in self.

Returns the union of self and other.

Returns the intersection of self and other.

Returns self without the flags set in other.

Returns the flags set in self or other, but not both.

Trait Implementations

The resulting type after applying the & operator.
Performs the & operation. Read more
Performs the &= operation. Read more
The resulting type after applying the | operator.
Performs the | operation. Read more
Performs the |= operation. Read more
The resulting type after applying the ^ operator.
Performs the ^ operation. Read more
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
Returns the “default value” for a type. Read more
Converts to this type from the input type.
Converts to this type from the input type.
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
The resulting type after applying the - operator.
Performs the - operation. Read more
Performs the -= operation. 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

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.