std::optional< Kakshya::ImageData > download_image(const std::shared_ptr< Core::VKImage > &image, const std::shared_ptr< Buffers::VKBuffer > &staging=nullptr, vk::ImageLayout restore_layout=vk::ImageLayout::eShaderReadOnlyOptimal, vk::PipelineStageFlags restore_stage=vk::PipelineStageFlagBits::eFragmentShader)
Download the base level of an image as typed pixels.
static TextureLoom & instance()
bool save_text_buffer(const std::shared_ptr< Buffers::TextBuffer > &buffer, const std::string &filepath, const ImageWriteOptions &options)
Save a TextBuffer's rendered glyph texture to disk.
bool save_image(const std::shared_ptr< Core::VKImage > &image, const std::string &filepath, const ImageWriteOptions &options)
Save a VKImage directly to disk via the ImageWriter registry.
bool save_texture_buffer(const std::shared_ptr< Buffers::TextureBuffer > &buffer, const std::string &filepath, const ImageWriteOptions &options)
Save a TextureBuffer's current GPU state to disk.