pub struct Image {
    pub info: ImageInfo,
    pub name: Option<String>,
    /* private fields */
}
Expand description

Smart pointer handle to an image object.

Also contains information about the object.

Deref behavior

Image automatically dereferences to vk::Image (via the Deref trait), so you can call vk::Image’s methods on a value of type Image. To avoid name clashes with vk::Image’s methods, the methods of Image itself are associated functions, called using fully qualified syntax:

let prev = Image::access(&my_image, AccessType::AnyShaderWrite);

Fields

info: ImageInfo

Information used to create this object.

name: Option<String>

A name for debugging purposes.

Implementations

Creates a new image on the given device.

Examples

Basic usage:

let info = ImageInfo::new_2d(vk::Format::R8G8B8A8_UNORM, 32, 32, vk::ImageUsageFlags::SAMPLED);
let image = Image::create(&device, info)?;

assert_ne!(*image, vk::Image::null());
assert_eq!(image.info.width, 32);
assert_eq!(image.info.height, 32);

Keeps track of some next_access which affects this object.

Returns the previous access for which a pipeline barrier should be used to prevent data corruption.

Note

Used to maintain object state when passing a Screen 13-created vk::Image handle to external code such as Ash or Erupt bindings.

Examples

Basic usage:

// Initially we want to "Read Other"
let next = AccessType::AnyShaderReadOther;
let prev = Image::access(&my_image, next);
assert_eq!(prev, AccessType::Nothing);

// External code may now "Read Other"; no barrier required

// Subsequently we want to "Write"
let next = AccessType::FragmentShaderWrite;
let prev = Image::access(&my_image, next);
assert_eq!(prev, AccessType::AnyShaderReadOther);

// A barrier on "Read Other" before "Write" is required!

Trait Implementations

Binds the resource to a graph-like object. Read more
Formats the value using the given formatter. Read more
The resulting type after dereferencing.
Dereferences the value.
Executes the destructor for this type. Read more
Lease a resource.
Lease a resource.
Lease a resource.
Lease a resource.

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 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.