29 void processing_function(std::shared_ptr<Buffer> buffer)
override;
30 void on_attach(std::shared_ptr<Buffer> buffer)
override;
31 void on_detach(std::shared_ptr<Buffer> buffer)
override;
33 [[nodiscard]]
bool is_compatible_with(std::shared_ptr<Buffer> buffer)
const override;
40 void configure_target(
const std::shared_ptr<Buffer>& source, std::shared_ptr<Buffer> target);
46 void remove_target(
const std::shared_ptr<Buffer>& source);
53 [[nodiscard]] std::shared_ptr<Buffer> get_target(
const std::shared_ptr<Buffer>& source)
const;
57 std::unordered_map<std::shared_ptr<Buffer>, std::shared_ptr<Buffer>>
m_target_map;
62 void ensure_staging_buffer(
const std::shared_ptr<VKBuffer>& source);
void download_device_local(const std::shared_ptr< VKBuffer > &source, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging_buffer)
Download data from a device-local buffer using a staging buffer.