diff options
Diffstat (limited to 'src/image/layout.rs')
-rw-r--r-- | src/image/layout.rs | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/src/image/layout.rs b/src/image/layout.rs deleted file mode 100644 index 2e29f58..0000000 --- a/src/image/layout.rs +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) 2016 The vulkano developers -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or -// https://www.apache.org/licenses/LICENSE-2.0> or the MIT -// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, -// at your option. All files in the project carrying such -// notice may not be copied, modified, or distributed except -// according to those terms. - -/// Layout of an image. -/// -/// > **Note**: In vulkano, image layouts are mostly a low-level detail. You can ignore them, -/// > unless you use an unsafe function that states in its documentation that you must take care of -/// > an image's layout. -/// -/// In the Vulkan API, each mipmap level of each array layer is in one of the layouts of this enum. -/// -/// Unless you use some sort of high-level shortcut function, an image always starts in either -/// the `Undefined` or the `Preinitialized` layout. -/// Before you can use an image for a given purpose, you must ensure that the image in question is -/// in the layout required for that purpose. For example if you want to write data to an image, you -/// must first transition the image to the `TransferDstOptimal` layout. The `General` layout can -/// also be used as a general-purpose fit-all layout, but using it will result in slower operations. -/// -/// Transitioning between layouts can only be done through a GPU-side operation that is part of -/// a command buffer. -#[derive(Debug, Copy, Clone, PartialEq, Eq)] -#[repr(i32)] -pub enum ImageLayout { - Undefined = ash::vk::ImageLayout::UNDEFINED.as_raw(), - General = ash::vk::ImageLayout::GENERAL.as_raw(), - ColorAttachmentOptimal = ash::vk::ImageLayout::COLOR_ATTACHMENT_OPTIMAL.as_raw(), - DepthStencilAttachmentOptimal = ash::vk::ImageLayout::DEPTH_STENCIL_ATTACHMENT_OPTIMAL.as_raw(), - DepthStencilReadOnlyOptimal = ash::vk::ImageLayout::DEPTH_STENCIL_READ_ONLY_OPTIMAL.as_raw(), - ShaderReadOnlyOptimal = ash::vk::ImageLayout::SHADER_READ_ONLY_OPTIMAL.as_raw(), - TransferSrcOptimal = ash::vk::ImageLayout::TRANSFER_SRC_OPTIMAL.as_raw(), - TransferDstOptimal = ash::vk::ImageLayout::TRANSFER_DST_OPTIMAL.as_raw(), - Preinitialized = ash::vk::ImageLayout::PREINITIALIZED.as_raw(), - PresentSrc = ash::vk::ImageLayout::PRESENT_SRC_KHR.as_raw(), -} - -impl From<ImageLayout> for ash::vk::ImageLayout { - #[inline] - fn from(val: ImageLayout) -> Self { - Self::from_raw(val as i32) - } -} - -/// The set of layouts to use for an image when used in descriptor of various kinds. -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct ImageDescriptorLayouts { - /// The image layout to use in a descriptor as a storage image. - pub storage_image: ImageLayout, - /// The image layout to use in a descriptor as a combined image sampler. - pub combined_image_sampler: ImageLayout, - /// The image layout to use in a descriptor as a sampled image. - pub sampled_image: ImageLayout, - /// The image layout to use in a descriptor as an input attachment. - pub input_attachment: ImageLayout, -} |