Struct vulkano::image::sys::Usage
[−]
[src]
pub struct Usage { pub transfer_source: bool, pub transfer_dest: 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 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 a source for transfers. Includes blits.
transfer_dest: bool
Can be used 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 Usage
[src]
fn all() -> Usage
Builds a Usage
with all values set to true. Note that using the returned value will
produce an error because of transient_attachment
being true.
fn none() -> Usage
Builds a Usage
with all values set to false. Useful as a default value.
Example
use vulkano::image::Usage as ImageUsage; let _usage = ImageUsage { transfer_dest: true, sampled: true, .. ImageUsage::none() };
Trait Implementations
impl Hash for Usage
[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)
Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
1.3.0
Feeds a slice of this type into the state provided.
impl Eq for Usage
[src]
impl PartialEq for Usage
[src]
fn eq(&self, __arg_0: &Usage) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Usage) -> bool
This method tests for !=
.
impl Clone for Usage
[src]
fn clone(&self) -> Usage
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more