Class VkBufferImageCopy

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer


    public class VkBufferImageCopy
    extends Struct
    Khronos Reference Page
    Vulkan Specification

    Specifies a region to copy.

    Valid Usage
    • imageSubresource must be a valid VkImageSubresourceLayers structure
    • bufferOffset must be a multiple of the calling command's VkImage parameter's texel size
    • bufferOffset must be a multiple of 4
    • bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
    • bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
    • imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the image subresource width
    • imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the image subresource height
    • imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the image subresource depth
    • If the calling command's VkImage parameter is a compressed format image:
    • bufferOffset, bufferRowLength, bufferImageHeight and all members of imageOffset and imageExtent must respect the image transfer granularity requirements of the queue family that it will be submitted against, as described in Physical Device Enumeration
    • The aspectMask member of imageSubresource must specify aspects present in the calling command's VkImage parameter
    • The aspectMask member of imageSubresource must only have a single bit set
    • If the calling command's VkImage parameter is of VkImageType IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of imageSubresource must be 0 and 1, respectively

    Member documentation

    • bufferOffset – the offset in bytes from the start of the buffer object where the image data is copied from or to
    • bufferRowLength – the buffer row length
    • bufferImageHeight – the buffer image height
    • imageSubresource – a VkImageSubresourceLayers used to specify the specific image subresources of the image used for the source or destination image data
    • imageOffset – selects the initial x, y, z offsets in texels of the sub-region of the source or destination image data
    • imageExtent – the size in texels of the image to copy in width, height and depth

    Layout

    struct VkBufferImageCopy {
        VkDeviceSize bufferOffset;
        uint32_t bufferRowLength;
        uint32_t bufferImageHeight;
        VkImageSubresourceLayers imageSubresource;
        VkOffset3D imageOffset;
        VkExtent3D imageExtent;
    }