pub struct UnsafeImage { /* private fields */ }
Expand description
A storage for pixels or arbitrary data.
Safety
UnsafeImage
is not unsafe to create, but it is unsafe to use:
- You must manually bind memory to the image with
bind_memory
. The memory must respect the requirements returned bymemory_requirements
. - The memory that you bind to the image must be manually kept alive.
- The queue family ownership must be manually enforced.
- The usage must be manually enforced.
- The image layout must be manually enforced and transitioned.
Implementations
Starts constructing a new UnsafeImage
.
Returns the memory requirements for this image.
pub unsafe fn bind_memory(
&self,
memory: &DeviceMemory,
offset: DeviceSize
) -> Result<(), OomError>
Returns the dimensions of the image.
Returns the flags the image was created with.
Returns the features supported by the image’s format.
Returns the number of mipmap levels in the image.
Returns the initial layout of the image.
Returns the number of samples for the image.
Returns the tiling of the image.
Returns the usage the image was created with.
Returns a key unique to each UnsafeImage
. Can be used for the conflicts_key
method.
Queries the layout of an image in memory. Only valid for images with linear tiling.
This function is only valid for images with a color format. See the other similar functions for the other aspects.
The layout is invariant for each image. However it is not cached, as this would waste memory in the case of non-linear-tiling images. You are encouraged to store the layout somewhere in order to avoid calling this semi-expensive function at every single memory access.
Note that while Vulkan allows querying the array layers other than 0, it is redundant as you can easily calculate the position of any layer.
Panic
- Panics if the mipmap level is out of range.
Safety
- The image must not have a depth, stencil or depth-stencil format.
- The image must have been created with linear tiling.
Same as color_linear_layout
, except that it retrieves layout for the requested YCbCr
component too if the format is a YCbCr format.
Panic
- Panics if plane aspect is out of range.
- Panics if the aspect is not a color or planar aspect.
- Panics if the number of mipmaps is not 1.
Trait Implementations
Returns a reference to the object.
Auto Trait Implementations
impl RefUnwindSafe for UnsafeImage
impl Send for UnsafeImage
impl Sync for UnsafeImage
impl Unpin for UnsafeImage
impl UnwindSafe for UnsafeImage
Blanket Implementations
Mutably borrows from an owned value. Read more
Builds a pointer to this type from a raw pointer.
Returns true if the size is suitable to store a type like this.
Returns the size of an individual element.