Add check for usage flag when writing to file

This commit is contained in:
hodasemi 2023-01-20 15:36:10 +01:00
parent b36a6ec96c
commit b1f4243ccf

View file

@ -129,7 +129,7 @@ impl ImageBuilder {
layers: preinitialized_image.layers,
levels: 1,
sample_count: preinitialized_image.sample_count,
_usage: preinitialized_image.usage,
usage: preinitialized_image.usage,
});
// TODO: check necessity
@ -414,7 +414,7 @@ impl ImageBuilder {
layers: info.vk_image_create_info.arrayLayers,
levels: info.vk_image_create_info.mipLevels,
sample_count: info.vk_image_create_info.samples,
_usage: info.vk_image_create_info.usage,
usage: info.vk_image_create_info.usage,
}))
}
@ -489,7 +489,7 @@ pub struct Image {
layers: u32, // array layers
levels: u32, // mip map levels
sample_count: VkSampleCountFlagBits,
_usage: VkImageUsageFlagBits,
usage: VkImageUsageFlagBits,
}
impl Image {
@ -779,6 +779,13 @@ impl Image {
}
pub fn to_file(self: &Arc<Image>, path: impl AsRef<Path>) -> Result<()> {
// check if image is created with correct usage flag that allows transfering data from it
if (self.usage | VK_IMAGE_USAGE_TRANSFER_SRC_BIT) == 0 {
return Err(anyhow::anyhow!(
"Image has not been create with VK_IMAGE_USAGE_TRANSFER_SRC_BIT flag!"
));
}
let buffer = self.copy_image_to_buffer()?;
let memory = buffer.map_complete()?;