33 VKCopyImageToBufferCreateInfo,
34 VKCopyImageToBufferData,
35 VK_PIPELINE_STAGE_TRANSFER_BIT,
36 VKResourceType::IMAGE | VKResourceType::BUFFER> {
45 template<
typename Node,
typename Storage>
48 node.storage_index = storage.copy_image_to_buffer.append_and_get_index(create_info.
node_data);
61 node_links.
inputs.append({src_resource,
62 VK_ACCESS_TRANSFER_READ_BIT,
63 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
66 {dst_resource, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED});
77 data.src_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
data.dst_buffer, 1, &
data.region);
BMesh const char void * data
virtual void copy_image_to_buffer(VkImage src_image, VkImageLayout src_image_layout, VkBuffer dst_buffer, uint32_t region_count, const VkBufferImageCopy *p_regions)=0
void build_links(VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const CreateInfo &create_info) override
void build_commands(VKCommandBufferInterface &command_buffer, Data &data, VKBoundPipelines &) override
static void set_node_data(Node &node, Storage &storage, const CreateInfo &create_info)
VKCopyImageToBufferCreateInfo CreateInfo
VKCopyImageToBufferData Data
ResourceWithStamp get_buffer_and_increase_stamp(VkBuffer vk_buffer)
ResourceWithStamp get_image(VkImage vk_image) const
VKCopyImageToBufferData node_data
VkImageAspectFlags vk_image_aspects
Vector< VKRenderGraphLink > inputs
Vector< VKRenderGraphLink > outputs