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
sourceimpl ImageUsage
impl ImageUsage
sourcepub fn all() -> ImageUsage
pub fn all() -> ImageUsage
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.
sourcepub fn none() -> ImageUsage
pub fn none() -> ImageUsage
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
sourceimpl BitOr<ImageUsage> for ImageUsage
impl BitOr<ImageUsage> for ImageUsage
type Output = ImageUsage
type Output = ImageUsage
|
operator.sourceimpl Clone for ImageUsage
impl Clone for ImageUsage
sourcefn clone(&self) -> ImageUsage
fn clone(&self) -> ImageUsage
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more