| 2019 | } |
| 2020 | |
| 2021 | void 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, ®ion); |
| 2040 | |
| 2041 | endSingleTimeCommands(vkDev, commandBuffer); |
| 2042 | } |
| 2043 | |
| 2044 | void destroyVulkanTexture(VkDevice device, VulkanTexture& texture) |
| 2045 | { |
no test coverage detected