use super::Format;
impl Format {
#[doc = r" Return the number of components of this format."]
pub const fn component_count(self) -> u8 {
match self {
Format::Undefined => {
panic!("Trying to get the component count of vk::Format::Undefined")
}
Format::R4G4UnormPack8 => 2u8,
Format::R4G4B4A4UnormPack16 => 4u8,
Format::B4G4R4A4UnormPack16 => 4u8,
Format::R5G6B5UnormPack16 => 3u8,
Format::B5G6R5UnormPack16 => 3u8,
Format::R5G5B5A1UnormPack16 => 4u8,
Format::B5G5R5A1UnormPack16 => 4u8,
Format::A1R5G5B5UnormPack16 => 4u8,
Format::A1B5G5R5UnormPack16 => 4u8,
Format::A8Unorm => 1u8,
Format::R8Unorm => 1u8,
Format::R8Snorm => 1u8,
Format::R8Uscaled => 1u8,
Format::R8Sscaled => 1u8,
Format::R8Uint => 1u8,
Format::R8Sint => 1u8,
Format::R8Srgb => 1u8,
Format::R8G8Unorm => 2u8,
Format::R8G8Snorm => 2u8,
Format::R8G8Uscaled => 2u8,
Format::R8G8Sscaled => 2u8,
Format::R8G8Uint => 2u8,
Format::R8G8Sint => 2u8,
Format::R8G8Srgb => 2u8,
Format::R8G8B8Unorm => 3u8,
Format::R8G8B8Snorm => 3u8,
Format::R8G8B8Uscaled => 3u8,
Format::R8G8B8Sscaled => 3u8,
Format::R8G8B8Uint => 3u8,
Format::R8G8B8Sint => 3u8,
Format::R8G8B8Srgb => 3u8,
Format::B8G8R8Unorm => 3u8,
Format::B8G8R8Snorm => 3u8,
Format::B8G8R8Uscaled => 3u8,
Format::B8G8R8Sscaled => 3u8,
Format::B8G8R8Uint => 3u8,
Format::B8G8R8Sint => 3u8,
Format::B8G8R8Srgb => 3u8,
Format::R8G8B8A8Unorm => 4u8,
Format::R8G8B8A8Snorm => 4u8,
Format::R8G8B8A8Uscaled => 4u8,
Format::R8G8B8A8Sscaled => 4u8,
Format::R8G8B8A8Uint => 4u8,
Format::R8G8B8A8Sint => 4u8,
Format::R8G8B8A8Srgb => 4u8,
Format::B8G8R8A8Unorm => 4u8,
Format::B8G8R8A8Snorm => 4u8,
Format::B8G8R8A8Uscaled => 4u8,
Format::B8G8R8A8Sscaled => 4u8,
Format::B8G8R8A8Uint => 4u8,
Format::B8G8R8A8Sint => 4u8,
Format::B8G8R8A8Srgb => 4u8,
Format::A8B8G8R8UnormPack32 => 4u8,
Format::A8B8G8R8SnormPack32 => 4u8,
Format::A8B8G8R8UscaledPack32 => 4u8,
Format::A8B8G8R8SscaledPack32 => 4u8,
Format::A8B8G8R8UintPack32 => 4u8,
Format::A8B8G8R8SintPack32 => 4u8,
Format::A8B8G8R8SrgbPack32 => 4u8,
Format::A2R10G10B10UnormPack32 => 4u8,
Format::A2R10G10B10SnormPack32 => 4u8,
Format::A2R10G10B10UscaledPack32 => 4u8,
Format::A2R10G10B10SscaledPack32 => 4u8,
Format::A2R10G10B10UintPack32 => 4u8,
Format::A2R10G10B10SintPack32 => 4u8,
Format::A2B10G10R10UnormPack32 => 4u8,
Format::A2B10G10R10SnormPack32 => 4u8,
Format::A2B10G10R10UscaledPack32 => 4u8,
Format::A2B10G10R10SscaledPack32 => 4u8,
Format::A2B10G10R10UintPack32 => 4u8,
Format::A2B10G10R10SintPack32 => 4u8,
Format::R16Unorm => 1u8,
Format::R16Snorm => 1u8,
Format::R16Uscaled => 1u8,
Format::R16Sscaled => 1u8,
Format::R16Uint => 1u8,
Format::R16Sint => 1u8,
Format::R16Sfloat => 1u8,
Format::R16G16Unorm => 2u8,
Format::R16G16Snorm => 2u8,
Format::R16G16Uscaled => 2u8,
Format::R16G16Sscaled => 2u8,
Format::R16G16Uint => 2u8,
Format::R16G16Sint => 2u8,
Format::R16G16Sfloat => 2u8,
Format::R16G16B16Unorm => 3u8,
Format::R16G16B16Snorm => 3u8,
Format::R16G16B16Uscaled => 3u8,
Format::R16G16B16Sscaled => 3u8,
Format::R16G16B16Uint => 3u8,
Format::R16G16B16Sint => 3u8,
Format::R16G16B16Sfloat => 3u8,
Format::R16G16B16A16Unorm => 4u8,
Format::R16G16B16A16Snorm => 4u8,
Format::R16G16B16A16Uscaled => 4u8,
Format::R16G16B16A16Sscaled => 4u8,
Format::R16G16B16A16Uint => 4u8,
Format::R16G16B16A16Sint => 4u8,
Format::R16G16B16A16Sfloat => 4u8,
Format::R32Uint => 1u8,
Format::R32Sint => 1u8,
Format::R32Sfloat => 1u8,
Format::R32G32Uint => 2u8,
Format::R32G32Sint => 2u8,
Format::R32G32Sfloat => 2u8,
Format::R32G32B32Uint => 3u8,
Format::R32G32B32Sint => 3u8,
Format::R32G32B32Sfloat => 3u8,
Format::R32G32B32A32Uint => 4u8,
Format::R32G32B32A32Sint => 4u8,
Format::R32G32B32A32Sfloat => 4u8,
Format::R64Uint => 1u8,
Format::R64Sint => 1u8,
Format::R64Sfloat => 1u8,
Format::R64G64Uint => 2u8,
Format::R64G64Sint => 2u8,
Format::R64G64Sfloat => 2u8,
Format::R64G64B64Uint => 3u8,
Format::R64G64B64Sint => 3u8,
Format::R64G64B64Sfloat => 3u8,
Format::R64G64B64A64Uint => 4u8,
Format::R64G64B64A64Sint => 4u8,
Format::R64G64B64A64Sfloat => 4u8,
Format::B10G11R11UfloatPack32 => 3u8,
Format::E5B9G9R9UfloatPack32 => 3u8,
Format::D16Unorm => 1u8,
Format::X8D24UnormPack32 => 1u8,
Format::D32Sfloat => 1u8,
Format::S8Uint => 1u8,
Format::D16UnormS8Uint => 2u8,
Format::D24UnormS8Uint => 2u8,
Format::D32SfloatS8Uint => 2u8,
Format::Bc1RgbUnormBlock => 3u8,
Format::Bc1RgbSrgbBlock => 3u8,
Format::Bc1RgbaUnormBlock => 4u8,
Format::Bc1RgbaSrgbBlock => 4u8,
Format::Bc2UnormBlock => 4u8,
Format::Bc2SrgbBlock => 4u8,
Format::Bc3UnormBlock => 4u8,
Format::Bc3SrgbBlock => 4u8,
Format::Bc4UnormBlock => 1u8,
Format::Bc4SnormBlock => 1u8,
Format::Bc5UnormBlock => 2u8,
Format::Bc5SnormBlock => 2u8,
Format::Bc6HUfloatBlock => 3u8,
Format::Bc6HSfloatBlock => 3u8,
Format::Bc7UnormBlock => 4u8,
Format::Bc7SrgbBlock => 4u8,
Format::Etc2R8G8B8UnormBlock => 3u8,
Format::Etc2R8G8B8SrgbBlock => 3u8,
Format::Etc2R8G8B8A1UnormBlock => 4u8,
Format::Etc2R8G8B8A1SrgbBlock => 4u8,
Format::Etc2R8G8B8A8UnormBlock => 4u8,
Format::Etc2R8G8B8A8SrgbBlock => 4u8,
Format::EacR11UnormBlock => 1u8,
Format::EacR11SnormBlock => 1u8,
Format::EacR11G11UnormBlock => 2u8,
Format::EacR11G11SnormBlock => 2u8,
Format::Astc4x4UnormBlock => 4u8,
Format::Astc4x4SrgbBlock => 4u8,
Format::Astc5x4UnormBlock => 4u8,
Format::Astc5x4SrgbBlock => 4u8,
Format::Astc5x5UnormBlock => 4u8,
Format::Astc5x5SrgbBlock => 4u8,
Format::Astc6x5UnormBlock => 4u8,
Format::Astc6x5SrgbBlock => 4u8,
Format::Astc6x6UnormBlock => 4u8,
Format::Astc6x6SrgbBlock => 4u8,
Format::Astc8x5UnormBlock => 4u8,
Format::Astc8x5SrgbBlock => 4u8,
Format::Astc8x6UnormBlock => 4u8,
Format::Astc8x6SrgbBlock => 4u8,
Format::Astc8x8UnormBlock => 4u8,
Format::Astc8x8SrgbBlock => 4u8,
Format::Astc10x5UnormBlock => 4u8,
Format::Astc10x5SrgbBlock => 4u8,
Format::Astc10x6UnormBlock => 4u8,
Format::Astc10x6SrgbBlock => 4u8,
Format::Astc10x8UnormBlock => 4u8,
Format::Astc10x8SrgbBlock => 4u8,
Format::Astc10x10UnormBlock => 4u8,
Format::Astc10x10SrgbBlock => 4u8,
Format::Astc12x10UnormBlock => 4u8,
Format::Astc12x10SrgbBlock => 4u8,
Format::Astc12x12UnormBlock => 4u8,
Format::Astc12x12SrgbBlock => 4u8,
Format::G8B8G8R8422Unorm => 4u8,
Format::B8G8R8G8422Unorm => 4u8,
Format::G8B8R83Plane420Unorm => 3u8,
Format::G8B8R82Plane420Unorm => 3u8,
Format::G8B8R83Plane422Unorm => 3u8,
Format::G8B8R82Plane422Unorm => 3u8,
Format::G8B8R83Plane444Unorm => 3u8,
Format::R10X6UnormPack16 => 1u8,
Format::R10X6G10X6Unorm2Pack16 => 2u8,
Format::R10X6G10X6B10X6A10X6Unorm4Pack16 => 4u8,
Format::G10X6B10X6G10X6R10X6422Unorm4Pack16 => 4u8,
Format::B10X6G10X6R10X6G10X6422Unorm4Pack16 => 4u8,
Format::G10X6B10X6R10X63Plane420Unorm3Pack16 => 3u8,
Format::G10X6B10X6R10X62Plane420Unorm3Pack16 => 3u8,
Format::G10X6B10X6R10X63Plane422Unorm3Pack16 => 3u8,
Format::G10X6B10X6R10X62Plane422Unorm3Pack16 => 3u8,
Format::G10X6B10X6R10X63Plane444Unorm3Pack16 => 3u8,
Format::R12X4UnormPack16 => 1u8,
Format::R12X4G12X4Unorm2Pack16 => 2u8,
Format::R12X4G12X4B12X4A12X4Unorm4Pack16 => 4u8,
Format::G12X4B12X4G12X4R12X4422Unorm4Pack16 => 4u8,
Format::B12X4G12X4R12X4G12X4422Unorm4Pack16 => 4u8,
Format::G12X4B12X4R12X43Plane420Unorm3Pack16 => 3u8,
Format::G12X4B12X4R12X42Plane420Unorm3Pack16 => 3u8,
Format::G12X4B12X4R12X43Plane422Unorm3Pack16 => 3u8,
Format::G12X4B12X4R12X42Plane422Unorm3Pack16 => 3u8,
Format::G12X4B12X4R12X43Plane444Unorm3Pack16 => 3u8,
Format::G16B16G16R16422Unorm => 4u8,
Format::B16G16R16G16422Unorm => 4u8,
Format::G16B16R163Plane420Unorm => 3u8,
Format::G16B16R162Plane420Unorm => 3u8,
Format::G16B16R163Plane422Unorm => 3u8,
Format::G16B16R162Plane422Unorm => 3u8,
Format::G16B16R163Plane444Unorm => 3u8,
Format::Pvrtc12BppUnormBlockIMG => 4u8,
Format::Pvrtc14BppUnormBlockIMG => 4u8,
Format::Pvrtc22BppUnormBlockIMG => 4u8,
Format::Pvrtc24BppUnormBlockIMG => 4u8,
Format::Pvrtc12BppSrgbBlockIMG => 4u8,
Format::Pvrtc14BppSrgbBlockIMG => 4u8,
Format::Pvrtc22BppSrgbBlockIMG => 4u8,
Format::Pvrtc24BppSrgbBlockIMG => 4u8,
Format::Astc4x4SfloatBlock => 4u8,
Format::Astc5x4SfloatBlock => 4u8,
Format::Astc5x5SfloatBlock => 4u8,
Format::Astc6x5SfloatBlock => 4u8,
Format::Astc6x6SfloatBlock => 4u8,
Format::Astc8x5SfloatBlock => 4u8,
Format::Astc8x6SfloatBlock => 4u8,
Format::Astc8x8SfloatBlock => 4u8,
Format::Astc10x5SfloatBlock => 4u8,
Format::Astc10x6SfloatBlock => 4u8,
Format::Astc10x8SfloatBlock => 4u8,
Format::Astc10x10SfloatBlock => 4u8,
Format::Astc12x10SfloatBlock => 4u8,
Format::Astc12x12SfloatBlock => 4u8,
Format::G8B8R82Plane444Unorm => 3u8,
Format::G10X6B10X6R10X62Plane444Unorm3Pack16 => 3u8,
Format::G12X4B12X4R12X42Plane444Unorm3Pack16 => 3u8,
Format::G16B16R162Plane444Unorm => 3u8,
Format::A4R4G4B4UnormPack16 => 4u8,
Format::A4B4G4R4UnormPack16 => 4u8,
Format::R16G16Sfixed5NV => 2u8,
Format::R10X6UintPack16ARM => 1u8,
Format::R10X6G10X6Uint2Pack16ARM => 2u8,
Format::R10X6G10X6B10X6A10X6Uint4Pack16ARM => 4u8,
Format::R12X4UintPack16ARM => 1u8,
Format::R12X4G12X4Uint2Pack16ARM => 2u8,
Format::R12X4G12X4B12X4A12X4Uint4Pack16ARM => 4u8,
Format::R14X2UintPack16ARM => 1u8,
Format::R14X2G14X2Uint2Pack16ARM => 2u8,
Format::R14X2G14X2B14X2A14X2Uint4Pack16ARM => 4u8,
Format::R14X2UnormPack16ARM => 1u8,
Format::R14X2G14X2Unorm2Pack16ARM => 2u8,
Format::R14X2G14X2B14X2A14X2Unorm4Pack16ARM => 4u8,
Format::G14X2B14X2R14X22Plane420Unorm3Pack16ARM => 3u8,
Format::G14X2B14X2R14X22Plane422Unorm3Pack16ARM => 3u8,
Format::R8BoolARM => 1u8,
}
}
#[doc = r" Return the texel block size of this format in bytes"]
pub const fn block_size(self) -> u8 {
match self {
Format::Undefined => panic!("Trying to get the block size of vk::Format::Undefined"),
Format::R4G4UnormPack8 => 1u8,
Format::R4G4B4A4UnormPack16 => 2u8,
Format::B4G4R4A4UnormPack16 => 2u8,
Format::R5G6B5UnormPack16 => 2u8,
Format::B5G6R5UnormPack16 => 2u8,
Format::R5G5B5A1UnormPack16 => 2u8,
Format::B5G5R5A1UnormPack16 => 2u8,
Format::A1R5G5B5UnormPack16 => 2u8,
Format::A1B5G5R5UnormPack16 => 2u8,
Format::A8Unorm => 1u8,
Format::R8Unorm => 1u8,
Format::R8Snorm => 1u8,
Format::R8Uscaled => 1u8,
Format::R8Sscaled => 1u8,
Format::R8Uint => 1u8,
Format::R8Sint => 1u8,
Format::R8Srgb => 1u8,
Format::R8G8Unorm => 2u8,
Format::R8G8Snorm => 2u8,
Format::R8G8Uscaled => 2u8,
Format::R8G8Sscaled => 2u8,
Format::R8G8Uint => 2u8,
Format::R8G8Sint => 2u8,
Format::R8G8Srgb => 2u8,
Format::R8G8B8Unorm => 3u8,
Format::R8G8B8Snorm => 3u8,
Format::R8G8B8Uscaled => 3u8,
Format::R8G8B8Sscaled => 3u8,
Format::R8G8B8Uint => 3u8,
Format::R8G8B8Sint => 3u8,
Format::R8G8B8Srgb => 3u8,
Format::B8G8R8Unorm => 3u8,
Format::B8G8R8Snorm => 3u8,
Format::B8G8R8Uscaled => 3u8,
Format::B8G8R8Sscaled => 3u8,
Format::B8G8R8Uint => 3u8,
Format::B8G8R8Sint => 3u8,
Format::B8G8R8Srgb => 3u8,
Format::R8G8B8A8Unorm => 4u8,
Format::R8G8B8A8Snorm => 4u8,
Format::R8G8B8A8Uscaled => 4u8,
Format::R8G8B8A8Sscaled => 4u8,
Format::R8G8B8A8Uint => 4u8,
Format::R8G8B8A8Sint => 4u8,
Format::R8G8B8A8Srgb => 4u8,
Format::B8G8R8A8Unorm => 4u8,
Format::B8G8R8A8Snorm => 4u8,
Format::B8G8R8A8Uscaled => 4u8,
Format::B8G8R8A8Sscaled => 4u8,
Format::B8G8R8A8Uint => 4u8,
Format::B8G8R8A8Sint => 4u8,
Format::B8G8R8A8Srgb => 4u8,
Format::A8B8G8R8UnormPack32 => 4u8,
Format::A8B8G8R8SnormPack32 => 4u8,
Format::A8B8G8R8UscaledPack32 => 4u8,
Format::A8B8G8R8SscaledPack32 => 4u8,
Format::A8B8G8R8UintPack32 => 4u8,
Format::A8B8G8R8SintPack32 => 4u8,
Format::A8B8G8R8SrgbPack32 => 4u8,
Format::A2R10G10B10UnormPack32 => 4u8,
Format::A2R10G10B10SnormPack32 => 4u8,
Format::A2R10G10B10UscaledPack32 => 4u8,
Format::A2R10G10B10SscaledPack32 => 4u8,
Format::A2R10G10B10UintPack32 => 4u8,
Format::A2R10G10B10SintPack32 => 4u8,
Format::A2B10G10R10UnormPack32 => 4u8,
Format::A2B10G10R10SnormPack32 => 4u8,
Format::A2B10G10R10UscaledPack32 => 4u8,
Format::A2B10G10R10SscaledPack32 => 4u8,
Format::A2B10G10R10UintPack32 => 4u8,
Format::A2B10G10R10SintPack32 => 4u8,
Format::R16Unorm => 2u8,
Format::R16Snorm => 2u8,
Format::R16Uscaled => 2u8,
Format::R16Sscaled => 2u8,
Format::R16Uint => 2u8,
Format::R16Sint => 2u8,
Format::R16Sfloat => 2u8,
Format::R16G16Unorm => 4u8,
Format::R16G16Snorm => 4u8,
Format::R16G16Uscaled => 4u8,
Format::R16G16Sscaled => 4u8,
Format::R16G16Uint => 4u8,
Format::R16G16Sint => 4u8,
Format::R16G16Sfloat => 4u8,
Format::R16G16B16Unorm => 6u8,
Format::R16G16B16Snorm => 6u8,
Format::R16G16B16Uscaled => 6u8,
Format::R16G16B16Sscaled => 6u8,
Format::R16G16B16Uint => 6u8,
Format::R16G16B16Sint => 6u8,
Format::R16G16B16Sfloat => 6u8,
Format::R16G16B16A16Unorm => 8u8,
Format::R16G16B16A16Snorm => 8u8,
Format::R16G16B16A16Uscaled => 8u8,
Format::R16G16B16A16Sscaled => 8u8,
Format::R16G16B16A16Uint => 8u8,
Format::R16G16B16A16Sint => 8u8,
Format::R16G16B16A16Sfloat => 8u8,
Format::R32Uint => 4u8,
Format::R32Sint => 4u8,
Format::R32Sfloat => 4u8,
Format::R32G32Uint => 8u8,
Format::R32G32Sint => 8u8,
Format::R32G32Sfloat => 8u8,
Format::R32G32B32Uint => 12u8,
Format::R32G32B32Sint => 12u8,
Format::R32G32B32Sfloat => 12u8,
Format::R32G32B32A32Uint => 16u8,
Format::R32G32B32A32Sint => 16u8,
Format::R32G32B32A32Sfloat => 16u8,
Format::R64Uint => 8u8,
Format::R64Sint => 8u8,
Format::R64Sfloat => 8u8,
Format::R64G64Uint => 16u8,
Format::R64G64Sint => 16u8,
Format::R64G64Sfloat => 16u8,
Format::R64G64B64Uint => 24u8,
Format::R64G64B64Sint => 24u8,
Format::R64G64B64Sfloat => 24u8,
Format::R64G64B64A64Uint => 32u8,
Format::R64G64B64A64Sint => 32u8,
Format::R64G64B64A64Sfloat => 32u8,
Format::B10G11R11UfloatPack32 => 4u8,
Format::E5B9G9R9UfloatPack32 => 4u8,
Format::D16Unorm => 2u8,
Format::X8D24UnormPack32 => 4u8,
Format::D32Sfloat => 4u8,
Format::S8Uint => 1u8,
Format::D16UnormS8Uint => 3u8,
Format::D24UnormS8Uint => 4u8,
Format::D32SfloatS8Uint => 5u8,
Format::Bc1RgbUnormBlock => 8u8,
Format::Bc1RgbSrgbBlock => 8u8,
Format::Bc1RgbaUnormBlock => 8u8,
Format::Bc1RgbaSrgbBlock => 8u8,
Format::Bc2UnormBlock => 16u8,
Format::Bc2SrgbBlock => 16u8,
Format::Bc3UnormBlock => 16u8,
Format::Bc3SrgbBlock => 16u8,
Format::Bc4UnormBlock => 8u8,
Format::Bc4SnormBlock => 8u8,
Format::Bc5UnormBlock => 16u8,
Format::Bc5SnormBlock => 16u8,
Format::Bc6HUfloatBlock => 16u8,
Format::Bc6HSfloatBlock => 16u8,
Format::Bc7UnormBlock => 16u8,
Format::Bc7SrgbBlock => 16u8,
Format::Etc2R8G8B8UnormBlock => 8u8,
Format::Etc2R8G8B8SrgbBlock => 8u8,
Format::Etc2R8G8B8A1UnormBlock => 8u8,
Format::Etc2R8G8B8A1SrgbBlock => 8u8,
Format::Etc2R8G8B8A8UnormBlock => 16u8,
Format::Etc2R8G8B8A8SrgbBlock => 16u8,
Format::EacR11UnormBlock => 8u8,
Format::EacR11SnormBlock => 8u8,
Format::EacR11G11UnormBlock => 16u8,
Format::EacR11G11SnormBlock => 16u8,
Format::Astc4x4UnormBlock => 16u8,
Format::Astc4x4SrgbBlock => 16u8,
Format::Astc5x4UnormBlock => 16u8,
Format::Astc5x4SrgbBlock => 16u8,
Format::Astc5x5UnormBlock => 16u8,
Format::Astc5x5SrgbBlock => 16u8,
Format::Astc6x5UnormBlock => 16u8,
Format::Astc6x5SrgbBlock => 16u8,
Format::Astc6x6UnormBlock => 16u8,
Format::Astc6x6SrgbBlock => 16u8,
Format::Astc8x5UnormBlock => 16u8,
Format::Astc8x5SrgbBlock => 16u8,
Format::Astc8x6UnormBlock => 16u8,
Format::Astc8x6SrgbBlock => 16u8,
Format::Astc8x8UnormBlock => 16u8,
Format::Astc8x8SrgbBlock => 16u8,
Format::Astc10x5UnormBlock => 16u8,
Format::Astc10x5SrgbBlock => 16u8,
Format::Astc10x6UnormBlock => 16u8,
Format::Astc10x6SrgbBlock => 16u8,
Format::Astc10x8UnormBlock => 16u8,
Format::Astc10x8SrgbBlock => 16u8,
Format::Astc10x10UnormBlock => 16u8,
Format::Astc10x10SrgbBlock => 16u8,
Format::Astc12x10UnormBlock => 16u8,
Format::Astc12x10SrgbBlock => 16u8,
Format::Astc12x12UnormBlock => 16u8,
Format::Astc12x12SrgbBlock => 16u8,
Format::G8B8G8R8422Unorm => 4u8,
Format::B8G8R8G8422Unorm => 4u8,
Format::G8B8R83Plane420Unorm => 3u8,
Format::G8B8R82Plane420Unorm => 3u8,
Format::G8B8R83Plane422Unorm => 3u8,
Format::G8B8R82Plane422Unorm => 3u8,
Format::G8B8R83Plane444Unorm => 3u8,
Format::R10X6UnormPack16 => 2u8,
Format::R10X6G10X6Unorm2Pack16 => 4u8,
Format::R10X6G10X6B10X6A10X6Unorm4Pack16 => 8u8,
Format::G10X6B10X6G10X6R10X6422Unorm4Pack16 => 8u8,
Format::B10X6G10X6R10X6G10X6422Unorm4Pack16 => 8u8,
Format::G10X6B10X6R10X63Plane420Unorm3Pack16 => 6u8,
Format::G10X6B10X6R10X62Plane420Unorm3Pack16 => 6u8,
Format::G10X6B10X6R10X63Plane422Unorm3Pack16 => 6u8,
Format::G10X6B10X6R10X62Plane422Unorm3Pack16 => 6u8,
Format::G10X6B10X6R10X63Plane444Unorm3Pack16 => 6u8,
Format::R12X4UnormPack16 => 2u8,
Format::R12X4G12X4Unorm2Pack16 => 4u8,
Format::R12X4G12X4B12X4A12X4Unorm4Pack16 => 8u8,
Format::G12X4B12X4G12X4R12X4422Unorm4Pack16 => 8u8,
Format::B12X4G12X4R12X4G12X4422Unorm4Pack16 => 8u8,
Format::G12X4B12X4R12X43Plane420Unorm3Pack16 => 6u8,
Format::G12X4B12X4R12X42Plane420Unorm3Pack16 => 6u8,
Format::G12X4B12X4R12X43Plane422Unorm3Pack16 => 6u8,
Format::G12X4B12X4R12X42Plane422Unorm3Pack16 => 6u8,
Format::G12X4B12X4R12X43Plane444Unorm3Pack16 => 6u8,
Format::G16B16G16R16422Unorm => 8u8,
Format::B16G16R16G16422Unorm => 8u8,
Format::G16B16R163Plane420Unorm => 6u8,
Format::G16B16R162Plane420Unorm => 6u8,
Format::G16B16R163Plane422Unorm => 6u8,
Format::G16B16R162Plane422Unorm => 6u8,
Format::G16B16R163Plane444Unorm => 6u8,
Format::Pvrtc12BppUnormBlockIMG => 8u8,
Format::Pvrtc14BppUnormBlockIMG => 8u8,
Format::Pvrtc22BppUnormBlockIMG => 8u8,
Format::Pvrtc24BppUnormBlockIMG => 8u8,
Format::Pvrtc12BppSrgbBlockIMG => 8u8,
Format::Pvrtc14BppSrgbBlockIMG => 8u8,
Format::Pvrtc22BppSrgbBlockIMG => 8u8,
Format::Pvrtc24BppSrgbBlockIMG => 8u8,
Format::Astc4x4SfloatBlock => 16u8,
Format::Astc5x4SfloatBlock => 16u8,
Format::Astc5x5SfloatBlock => 16u8,
Format::Astc6x5SfloatBlock => 16u8,
Format::Astc6x6SfloatBlock => 16u8,
Format::Astc8x5SfloatBlock => 16u8,
Format::Astc8x6SfloatBlock => 16u8,
Format::Astc8x8SfloatBlock => 16u8,
Format::Astc10x5SfloatBlock => 16u8,
Format::Astc10x6SfloatBlock => 16u8,
Format::Astc10x8SfloatBlock => 16u8,
Format::Astc10x10SfloatBlock => 16u8,
Format::Astc12x10SfloatBlock => 16u8,
Format::Astc12x12SfloatBlock => 16u8,
Format::G8B8R82Plane444Unorm => 3u8,
Format::G10X6B10X6R10X62Plane444Unorm3Pack16 => 6u8,
Format::G12X4B12X4R12X42Plane444Unorm3Pack16 => 6u8,
Format::G16B16R162Plane444Unorm => 6u8,
Format::A4R4G4B4UnormPack16 => 2u8,
Format::A4B4G4R4UnormPack16 => 2u8,
Format::R16G16Sfixed5NV => 4u8,
Format::R10X6UintPack16ARM => 2u8,
Format::R10X6G10X6Uint2Pack16ARM => 4u8,
Format::R10X6G10X6B10X6A10X6Uint4Pack16ARM => 8u8,
Format::R12X4UintPack16ARM => 2u8,
Format::R12X4G12X4Uint2Pack16ARM => 4u8,
Format::R12X4G12X4B12X4A12X4Uint4Pack16ARM => 8u8,
Format::R14X2UintPack16ARM => 2u8,
Format::R14X2G14X2Uint2Pack16ARM => 4u8,
Format::R14X2G14X2B14X2A14X2Uint4Pack16ARM => 8u8,
Format::R14X2UnormPack16ARM => 2u8,
Format::R14X2G14X2Unorm2Pack16ARM => 4u8,
Format::R14X2G14X2B14X2A14X2Unorm4Pack16ARM => 8u8,
Format::G14X2B14X2R14X22Plane420Unorm3Pack16ARM => 6u8,
Format::G14X2B14X2R14X22Plane422Unorm3Pack16ARM => 6u8,
Format::R8BoolARM => 1u8,
}
}
#[doc = r" Return the number of texels in a texel block"]
pub const fn texels_per_block(self) -> u8 {
match self {
Format::Undefined => {
panic!("Trying to get the number of texels per block of vk::Format::Undefined")
}
Format::Bc1RgbUnormBlock => 16u8,
Format::Bc1RgbSrgbBlock => 16u8,
Format::Bc1RgbaUnormBlock => 16u8,
Format::Bc1RgbaSrgbBlock => 16u8,
Format::Bc2UnormBlock => 16u8,
Format::Bc2SrgbBlock => 16u8,
Format::Bc3UnormBlock => 16u8,
Format::Bc3SrgbBlock => 16u8,
Format::Bc4UnormBlock => 16u8,
Format::Bc4SnormBlock => 16u8,
Format::Bc5UnormBlock => 16u8,
Format::Bc5SnormBlock => 16u8,
Format::Bc6HUfloatBlock => 16u8,
Format::Bc6HSfloatBlock => 16u8,
Format::Bc7UnormBlock => 16u8,
Format::Bc7SrgbBlock => 16u8,
Format::Etc2R8G8B8UnormBlock => 16u8,
Format::Etc2R8G8B8SrgbBlock => 16u8,
Format::Etc2R8G8B8A1UnormBlock => 16u8,
Format::Etc2R8G8B8A1SrgbBlock => 16u8,
Format::Etc2R8G8B8A8UnormBlock => 16u8,
Format::Etc2R8G8B8A8SrgbBlock => 16u8,
Format::EacR11UnormBlock => 16u8,
Format::EacR11SnormBlock => 16u8,
Format::EacR11G11UnormBlock => 16u8,
Format::EacR11G11SnormBlock => 16u8,
Format::Astc4x4UnormBlock => 16u8,
Format::Astc4x4SrgbBlock => 16u8,
Format::Astc5x4UnormBlock => 20u8,
Format::Astc5x4SrgbBlock => 20u8,
Format::Astc5x5UnormBlock => 25u8,
Format::Astc5x5SrgbBlock => 25u8,
Format::Astc6x5UnormBlock => 30u8,
Format::Astc6x5SrgbBlock => 30u8,
Format::Astc6x6UnormBlock => 36u8,
Format::Astc6x6SrgbBlock => 36u8,
Format::Astc8x5UnormBlock => 40u8,
Format::Astc8x5SrgbBlock => 40u8,
Format::Astc8x6UnormBlock => 48u8,
Format::Astc8x6SrgbBlock => 48u8,
Format::Astc8x8UnormBlock => 64u8,
Format::Astc8x8SrgbBlock => 64u8,
Format::Astc10x5UnormBlock => 50u8,
Format::Astc10x5SrgbBlock => 50u8,
Format::Astc10x6UnormBlock => 60u8,
Format::Astc10x6SrgbBlock => 60u8,
Format::Astc10x8UnormBlock => 80u8,
Format::Astc10x8SrgbBlock => 80u8,
Format::Astc10x10UnormBlock => 100u8,
Format::Astc10x10SrgbBlock => 100u8,
Format::Astc12x10UnormBlock => 120u8,
Format::Astc12x10SrgbBlock => 120u8,
Format::Astc12x12UnormBlock => 144u8,
Format::Astc12x12SrgbBlock => 144u8,
Format::Astc4x4SfloatBlock => 16u8,
Format::Astc5x4SfloatBlock => 20u8,
Format::Astc5x5SfloatBlock => 25u8,
Format::Astc6x5SfloatBlock => 30u8,
Format::Astc6x6SfloatBlock => 36u8,
Format::Astc8x5SfloatBlock => 40u8,
Format::Astc8x6SfloatBlock => 48u8,
Format::Astc8x8SfloatBlock => 64u8,
Format::Astc10x5SfloatBlock => 50u8,
Format::Astc10x6SfloatBlock => 60u8,
Format::Astc10x8SfloatBlock => 80u8,
Format::Astc10x10SfloatBlock => 100u8,
Format::Astc12x10SfloatBlock => 120u8,
Format::Astc12x12SfloatBlock => 144u8,
_ => 1,
}
}
#[doc = r" Return the three-dimensional extent of texel blocks"]
pub const fn block_extent(self) -> [u8; 3] {
match self {
Format::Undefined => panic!("Trying to get the block extent of vk::Format::Undefined"),
Format::Bc1RgbUnormBlock => [4u8, 4u8, 1u8],
Format::Bc1RgbSrgbBlock => [4u8, 4u8, 1u8],
Format::Bc1RgbaUnormBlock => [4u8, 4u8, 1u8],
Format::Bc1RgbaSrgbBlock => [4u8, 4u8, 1u8],
Format::Bc2UnormBlock => [4u8, 4u8, 1u8],
Format::Bc2SrgbBlock => [4u8, 4u8, 1u8],
Format::Bc3UnormBlock => [4u8, 4u8, 1u8],
Format::Bc3SrgbBlock => [4u8, 4u8, 1u8],
Format::Bc4UnormBlock => [4u8, 4u8, 1u8],
Format::Bc4SnormBlock => [4u8, 4u8, 1u8],
Format::Bc5UnormBlock => [4u8, 4u8, 1u8],
Format::Bc5SnormBlock => [4u8, 4u8, 1u8],
Format::Bc6HUfloatBlock => [4u8, 4u8, 1u8],
Format::Bc6HSfloatBlock => [4u8, 4u8, 1u8],
Format::Bc7UnormBlock => [4u8, 4u8, 1u8],
Format::Bc7SrgbBlock => [4u8, 4u8, 1u8],
Format::Etc2R8G8B8UnormBlock => [4u8, 4u8, 1u8],
Format::Etc2R8G8B8SrgbBlock => [4u8, 4u8, 1u8],
Format::Etc2R8G8B8A1UnormBlock => [4u8, 4u8, 1u8],
Format::Etc2R8G8B8A1SrgbBlock => [4u8, 4u8, 1u8],
Format::Etc2R8G8B8A8UnormBlock => [4u8, 4u8, 1u8],
Format::Etc2R8G8B8A8SrgbBlock => [4u8, 4u8, 1u8],
Format::EacR11UnormBlock => [4u8, 4u8, 1u8],
Format::EacR11SnormBlock => [4u8, 4u8, 1u8],
Format::EacR11G11UnormBlock => [4u8, 4u8, 1u8],
Format::EacR11G11SnormBlock => [4u8, 4u8, 1u8],
Format::Astc4x4UnormBlock => [4u8, 4u8, 1u8],
Format::Astc4x4SrgbBlock => [4u8, 4u8, 1u8],
Format::Astc5x4UnormBlock => [5u8, 4u8, 1u8],
Format::Astc5x4SrgbBlock => [5u8, 4u8, 1u8],
Format::Astc5x5UnormBlock => [5u8, 5u8, 1u8],
Format::Astc5x5SrgbBlock => [5u8, 5u8, 1u8],
Format::Astc6x5UnormBlock => [6u8, 5u8, 1u8],
Format::Astc6x5SrgbBlock => [6u8, 5u8, 1u8],
Format::Astc6x6UnormBlock => [6u8, 6u8, 1u8],
Format::Astc6x6SrgbBlock => [6u8, 6u8, 1u8],
Format::Astc8x5UnormBlock => [8u8, 5u8, 1u8],
Format::Astc8x5SrgbBlock => [8u8, 5u8, 1u8],
Format::Astc8x6UnormBlock => [8u8, 6u8, 1u8],
Format::Astc8x6SrgbBlock => [8u8, 6u8, 1u8],
Format::Astc8x8UnormBlock => [8u8, 8u8, 1u8],
Format::Astc8x8SrgbBlock => [8u8, 8u8, 1u8],
Format::Astc10x5UnormBlock => [10u8, 5u8, 1u8],
Format::Astc10x5SrgbBlock => [10u8, 5u8, 1u8],
Format::Astc10x6UnormBlock => [10u8, 6u8, 1u8],
Format::Astc10x6SrgbBlock => [10u8, 6u8, 1u8],
Format::Astc10x8UnormBlock => [10u8, 8u8, 1u8],
Format::Astc10x8SrgbBlock => [10u8, 8u8, 1u8],
Format::Astc10x10UnormBlock => [10u8, 10u8, 1u8],
Format::Astc10x10SrgbBlock => [10u8, 10u8, 1u8],
Format::Astc12x10UnormBlock => [12u8, 10u8, 1u8],
Format::Astc12x10SrgbBlock => [12u8, 10u8, 1u8],
Format::Astc12x12UnormBlock => [12u8, 12u8, 1u8],
Format::Astc12x12SrgbBlock => [12u8, 12u8, 1u8],
Format::G8B8G8R8422Unorm => [2u8, 1u8, 1u8],
Format::B8G8R8G8422Unorm => [2u8, 1u8, 1u8],
Format::G10X6B10X6G10X6R10X6422Unorm4Pack16 => [2u8, 1u8, 1u8],
Format::B10X6G10X6R10X6G10X6422Unorm4Pack16 => [2u8, 1u8, 1u8],
Format::G12X4B12X4G12X4R12X4422Unorm4Pack16 => [2u8, 1u8, 1u8],
Format::B12X4G12X4R12X4G12X4422Unorm4Pack16 => [2u8, 1u8, 1u8],
Format::G16B16G16R16422Unorm => [2u8, 1u8, 1u8],
Format::B16G16R16G16422Unorm => [2u8, 1u8, 1u8],
Format::Pvrtc12BppUnormBlockIMG => [8u8, 4u8, 1u8],
Format::Pvrtc14BppUnormBlockIMG => [4u8, 4u8, 1u8],
Format::Pvrtc22BppUnormBlockIMG => [8u8, 4u8, 1u8],
Format::Pvrtc24BppUnormBlockIMG => [4u8, 4u8, 1u8],
Format::Pvrtc12BppSrgbBlockIMG => [8u8, 4u8, 1u8],
Format::Pvrtc14BppSrgbBlockIMG => [4u8, 4u8, 1u8],
Format::Pvrtc22BppSrgbBlockIMG => [8u8, 4u8, 1u8],
Format::Pvrtc24BppSrgbBlockIMG => [4u8, 4u8, 1u8],
Format::Astc4x4SfloatBlock => [4u8, 4u8, 1u8],
Format::Astc5x4SfloatBlock => [5u8, 4u8, 1u8],
Format::Astc5x5SfloatBlock => [5u8, 5u8, 1u8],
Format::Astc6x5SfloatBlock => [6u8, 5u8, 1u8],
Format::Astc6x6SfloatBlock => [6u8, 6u8, 1u8],
Format::Astc8x5SfloatBlock => [8u8, 5u8, 1u8],
Format::Astc8x6SfloatBlock => [8u8, 6u8, 1u8],
Format::Astc8x8SfloatBlock => [8u8, 8u8, 1u8],
Format::Astc10x5SfloatBlock => [10u8, 5u8, 1u8],
Format::Astc10x6SfloatBlock => [10u8, 6u8, 1u8],
Format::Astc10x8SfloatBlock => [10u8, 8u8, 1u8],
Format::Astc10x10SfloatBlock => [10u8, 10u8, 1u8],
Format::Astc12x10SfloatBlock => [12u8, 10u8, 1u8],
Format::Astc12x12SfloatBlock => [12u8, 12u8, 1u8],
_ => [1, 1, 1],
}
}
#[doc = r" Return true if this format is a compressed format"]
pub const fn is_compressed(self) -> bool {
match self {
Format::Bc1RgbUnormBlock
| Format::Bc1RgbSrgbBlock
| Format::Bc1RgbaUnormBlock
| Format::Bc1RgbaSrgbBlock
| Format::Bc2UnormBlock
| Format::Bc2SrgbBlock
| Format::Bc3UnormBlock
| Format::Bc3SrgbBlock
| Format::Bc4UnormBlock
| Format::Bc4SnormBlock
| Format::Bc5UnormBlock
| Format::Bc5SnormBlock
| Format::Bc6HUfloatBlock
| Format::Bc6HSfloatBlock
| Format::Bc7UnormBlock
| Format::Bc7SrgbBlock
| Format::Etc2R8G8B8UnormBlock
| Format::Etc2R8G8B8SrgbBlock
| Format::Etc2R8G8B8A1UnormBlock
| Format::Etc2R8G8B8A1SrgbBlock
| Format::Etc2R8G8B8A8UnormBlock
| Format::Etc2R8G8B8A8SrgbBlock
| Format::EacR11UnormBlock
| Format::EacR11SnormBlock
| Format::EacR11G11UnormBlock
| Format::EacR11G11SnormBlock
| Format::Astc4x4UnormBlock
| Format::Astc4x4SrgbBlock
| Format::Astc5x4UnormBlock
| Format::Astc5x4SrgbBlock
| Format::Astc5x5UnormBlock
| Format::Astc5x5SrgbBlock
| Format::Astc6x5UnormBlock
| Format::Astc6x5SrgbBlock
| Format::Astc6x6UnormBlock
| Format::Astc6x6SrgbBlock
| Format::Astc8x5UnormBlock
| Format::Astc8x5SrgbBlock
| Format::Astc8x6UnormBlock
| Format::Astc8x6SrgbBlock
| Format::Astc8x8UnormBlock
| Format::Astc8x8SrgbBlock
| Format::Astc10x5UnormBlock
| Format::Astc10x5SrgbBlock
| Format::Astc10x6UnormBlock
| Format::Astc10x6SrgbBlock
| Format::Astc10x8UnormBlock
| Format::Astc10x8SrgbBlock
| Format::Astc10x10UnormBlock
| Format::Astc10x10SrgbBlock
| Format::Astc12x10UnormBlock
| Format::Astc12x10SrgbBlock
| Format::Astc12x12UnormBlock
| Format::Astc12x12SrgbBlock
| Format::Pvrtc12BppUnormBlockIMG
| Format::Pvrtc14BppUnormBlockIMG
| Format::Pvrtc22BppUnormBlockIMG
| Format::Pvrtc24BppUnormBlockIMG
| Format::Pvrtc12BppSrgbBlockIMG
| Format::Pvrtc14BppSrgbBlockIMG
| Format::Pvrtc22BppSrgbBlockIMG
| Format::Pvrtc24BppSrgbBlockIMG
| Format::Astc4x4SfloatBlock
| Format::Astc5x4SfloatBlock
| Format::Astc5x5SfloatBlock
| Format::Astc6x5SfloatBlock
| Format::Astc6x6SfloatBlock
| Format::Astc8x5SfloatBlock
| Format::Astc8x6SfloatBlock
| Format::Astc8x8SfloatBlock
| Format::Astc10x5SfloatBlock
| Format::Astc10x6SfloatBlock
| Format::Astc10x8SfloatBlock
| Format::Astc10x10SfloatBlock
| Format::Astc12x10SfloatBlock
| Format::Astc12x12SfloatBlock => true,
_ => false,
}
}
}