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

impl Copy for Usage
[src]

impl Debug for Usage
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.