MCPcopy Create free account
hub / github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook / copyImageToBuffer

Function copyImageToBuffer

shared/UtilsVulkan.cpp:2021–2042  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2019}
2020
2021void copyImageToBuffer(VulkanRenderDevice& vkDev, VkImage image, VkBuffer buffer, uint32_t width, uint32_t height, uint32_t layerCount)
2022{
2023 VkCommandBuffer commandBuffer = beginSingleTimeCommands(vkDev);
2024
2025 const VkBufferImageCopy region = {
2026 .bufferOffset = 0,
2027 .bufferRowLength = 0,
2028 .bufferImageHeight = 0,
2029 .imageSubresource = VkImageSubresourceLayers {
2030 .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
2031 .mipLevel = 0,
2032 .baseArrayLayer = 0,
2033 .layerCount = layerCount
2034 },
2035 .imageOffset = VkOffset3D {.x = 0, .y = 0, .z = 0 },
2036 .imageExtent = VkExtent3D {.width = width, .height = height, .depth = 1 }
2037 };
2038
2039 vkCmdCopyImageToBuffer(commandBuffer, image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, buffer, 1, &region);
2040
2041 endSingleTimeCommands(vkDev, commandBuffer);
2042}
2043
2044void destroyVulkanTexture(VkDevice device, VulkanTexture& texture)
2045{

Callers 1

downloadImageDataFunction · 0.85

Calls 2

beginSingleTimeCommandsFunction · 0.85
endSingleTimeCommandsFunction · 0.85

Tested by

no test coverage detected