From a96866581a9e6957073c1bf506859098ada9e13e Mon Sep 17 00:00:00 2001 From: Lars Hoerttrich <larshoerttrich@uni-koblenz.de> Date: Sat, 29 May 2021 13:46:02 +0200 Subject: [PATCH] [#31] Added function to copy buffer to image --- include/vkcv/ImageManager.hpp | 2 +- src/vkcv/ImageManager.cpp | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/include/vkcv/ImageManager.hpp b/include/vkcv/ImageManager.hpp index bb4efef7..b4fe888e 100644 --- a/include/vkcv/ImageManager.hpp +++ b/include/vkcv/ImageManager.hpp @@ -31,7 +31,7 @@ namespace vkcv { ImageManager& operator=(ImageManager&& other) = delete; ImageManager& operator=(const ImageManager& other) = delete; - void copyBufferToImage(vk::Buffer bufffer, vk::Image image, uint32_t width, uint32_t height); + void copyBufferToImage(vk::Buffer buffer, vk::Image image, uint32_t width, uint32_t height); void switchImageLayout(uint64_t id, vk::ImageLayout oldLayout, vk::ImageLayout newLayout); uint64_t createImage(uint32_t width, uint32_t height); diff --git a/src/vkcv/ImageManager.cpp b/src/vkcv/ImageManager.cpp index a77976f5..46d703b4 100644 --- a/src/vkcv/ImageManager.cpp +++ b/src/vkcv/ImageManager.cpp @@ -45,9 +45,24 @@ namespace vkcv { } } - void ImageManager::copyBufferToImage(vk::Buffer bufffer, vk::Image image, uint32_t width, uint32_t height) + void ImageManager::copyBufferToImage(vk::Buffer buffer, vk::Image image, uint32_t width, uint32_t height) { - //TODO + vk::BufferImageCopy copyRegion(0,width,height); // possibly add offset etc + + SubmitInfo submitInfo; + submitInfo.queueType = QueueType::Transfer; //not sure + m_core->submitCommands( + submitInfo, + [buffer, image,copyRegion](const vk::CommandBuffer& commandBuffer) { + commandBuffer.copyBufferToImage( + buffer, + image,vk::ImageLayout::eTransferDstOptimal, + copyRegion + ); + }, + []() {} + ); + } -- GitLab