{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Image
       (VkImageBlit, VkImageCopy, VkImageCreateInfo,
        VkImageDrmFormatModifierExplicitCreateInfoEXT,
        VkImageDrmFormatModifierListCreateInfoEXT,
        VkImageDrmFormatModifierPropertiesEXT, VkImageFormatListCreateInfo,
        VkImageFormatListCreateInfoKHR, VkImageFormatProperties,
        VkImageFormatProperties2, VkImageFormatProperties2KHR,
        VkImageMemoryBarrier, VkImageMemoryRequirementsInfo2,
        VkImageMemoryRequirementsInfo2KHR,
        VkImagePlaneMemoryRequirementsInfo,
        VkImagePlaneMemoryRequirementsInfoKHR, VkImageResolve,
        VkImageSparseMemoryRequirementsInfo2,
        VkImageSparseMemoryRequirementsInfo2KHR,
        VkImageStencilUsageCreateInfo, VkImageStencilUsageCreateInfoEXT,
        VkImageSubresource, VkImageSubresourceLayers,
        VkImageSubresourceRange, VkImageSwapchainCreateInfoKHR,
        VkImageViewASTCDecodeModeEXT, VkImageViewAddressPropertiesNVX,
        VkImageViewCreateInfo, VkImageViewHandleInfoNVX,
        VkImageViewUsageCreateInfo, VkImageViewUsageCreateInfoKHR)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes                (VkDeviceAddress,
                                                       VkDeviceSize)
import Graphics.Vulkan.Types.Enum.AccessFlags         (VkAccessFlags)
import Graphics.Vulkan.Types.Enum.Descriptor          (VkDescriptorType)
import Graphics.Vulkan.Types.Enum.Format              (VkFormat)
import Graphics.Vulkan.Types.Enum.Image               (VkImageAspectFlagBits,
                                                       VkImageAspectFlags,
                                                       VkImageCreateFlags,
                                                       VkImageLayout,
                                                       VkImageTiling,
                                                       VkImageType,
                                                       VkImageUsageFlags,
                                                       VkImageViewCreateFlags,
                                                       VkImageViewType)
import Graphics.Vulkan.Types.Enum.SampleCountFlags    (VkSampleCountFlagBits,
                                                       VkSampleCountFlags)
import Graphics.Vulkan.Types.Enum.SharingMode         (VkSharingMode)
import Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
import Graphics.Vulkan.Types.Handles                  (VkImage, VkImageView,
                                                       VkSampler,
                                                       VkSwapchainKHR)
import Graphics.Vulkan.Types.Struct.ComponentMapping  (VkComponentMapping)
import Graphics.Vulkan.Types.Struct.Extent            (VkExtent3D)
import Graphics.Vulkan.Types.Struct.Offset            (VkOffset3D)
import Graphics.Vulkan.Types.Struct.PhysicalDevice    (VkPhysicalDeviceImageFormatInfo2)
import Graphics.Vulkan.Types.Struct.SubresourceLayout (VkSubresourceLayout)
import Graphics.Vulkan.Types.Struct.Swapchain         (VkSwapchainCreateInfoKHR)

-- | > typedef struct VkImageBlit {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffsets[2];
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffsets[2];
--   > } VkImageBlit;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageBlit VkImageBlit registry at www.khronos.org>
type VkImageBlit = VkStruct VkImageBlit' -- ' closing tick for hsc2hs

data VkImageBlit' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageBlit where
    type StructRep VkImageBlit =
         'StructMeta "VkImageBlit" VkImageBlit  -- ' closing tick for hsc2hs
                                               (80)
{-# LINE 74 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 75 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "srcSubresource" VkImageSubresourceLayers 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 77 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcOffsets" VkOffset3D 'False 
                                                        (16)
{-# LINE 82 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                2
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstSubresource" VkImageSubresourceLayers 'False
                (40)
{-# LINE 87 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstOffsets" VkOffset3D 'False 
                                                        (56)
{-# LINE 92 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                2
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageCopy {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffset;
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffset;
--   >     VkExtent3D             extent;
--   > } VkImageCopy;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageCopy VkImageCopy registry at www.khronos.org>
type VkImageCopy = VkStruct VkImageCopy' -- ' closing tick for hsc2hs

data VkImageCopy' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageCopy where
    type StructRep VkImageCopy =
         'StructMeta "VkImageCopy" VkImageCopy  -- ' closing tick for hsc2hs
                                               (68)
{-# LINE 116 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 117 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "srcSubresource" VkImageSubresourceLayers 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 119 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcOffset" VkOffset3D 'False 
                                                       (16)
{-# LINE 124 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstSubresource" VkImageSubresourceLayers 'False
                (28)
{-# LINE 129 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstOffset" VkOffset3D 'False 
                                                       (44)
{-# LINE 134 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "extent" VkExtent3D 'False 
                                                    (56)
{-# LINE 139 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkImageCreateFlags     flags;
--   >     VkImageType            imageType;
--   >     VkFormat               format;
--   >     VkExtent3D             extent;
--   >     uint32_t               mipLevels;
--   >     uint32_t               arrayLayers;
--   >     VkSampleCountFlagBits  samples;
--   >     VkImageTiling          tiling;
--   >     VkImageUsageFlags      usage;
--   >     VkSharingMode          sharingMode;
--   >     uint32_t               queueFamilyIndexCount;
--   >     const uint32_t*        pQueueFamilyIndices;
--   >     VkImageLayout          initialLayout;
--   > } VkImageCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageCreateInfo VkImageCreateInfo registry at www.khronos.org>
type VkImageCreateInfo = VkStruct VkImageCreateInfo' -- ' closing tick for hsc2hs

data VkImageCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageCreateInfo where
    type StructRep VkImageCreateInfo =
         'StructMeta "VkImageCreateInfo" VkImageCreateInfo  -- ' closing tick for hsc2hs
                                                           (88)
{-# LINE 173 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 174 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 176 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 181 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkImageCreateFlags 'True 
                                                          (16)
{-# LINE 186 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageType" VkImageType 'False 
                                                        (20)
{-# LINE 191 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "format" VkFormat 'False 
                                                  (24)
{-# LINE 196 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "extent" VkExtent3D 'False 
                                                    (28)
{-# LINE 201 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mipLevels" Word32 'False 
                                                   (40)
{-# LINE 206 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "arrayLayers" Word32 'False 
                                                     (44)
{-# LINE 211 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "samples" VkSampleCountFlagBits 'False 
                                                                (48)
{-# LINE 216 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "tiling" VkImageTiling 'False 
                                                       (52)
{-# LINE 221 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "usage" VkImageUsageFlags 'False 
                                                          (56)
{-# LINE 226 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sharingMode" VkSharingMode 'False 
                                                            (60)
{-# LINE 231 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueFamilyIndexCount" Word32 'True 
                                                              (64)
{-# LINE 236 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pQueueFamilyIndices" (Ptr Word32) 'False 
                                                                   (72)
{-# LINE 241 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "initialLayout" VkImageLayout 'False 
                                                              (80)
{-# LINE 246 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     uint64_t drmFormatModifier;
--   >     uint32_t drmFormatModifierPlaneCount;
--   >     const VkSubresourceLayout* pPlaneLayouts;
--   > } VkImageDrmFormatModifierExplicitCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageDrmFormatModifierExplicitCreateInfoEXT VkImageDrmFormatModifierExplicitCreateInfoEXT registry at www.khronos.org>
type VkImageDrmFormatModifierExplicitCreateInfoEXT =
     VkStruct VkImageDrmFormatModifierExplicitCreateInfoEXT' -- ' closing tick for hsc2hs

data VkImageDrmFormatModifierExplicitCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkImageDrmFormatModifierExplicitCreateInfoEXT
         where
    type StructRep VkImageDrmFormatModifierExplicitCreateInfoEXT =
         'StructMeta "VkImageDrmFormatModifierExplicitCreateInfoEXT" -- ' closing tick for hsc2hs
           VkImageDrmFormatModifierExplicitCreateInfoEXT
           (40)
{-# LINE 274 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 275 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 277 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 282 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifier" Word64 'False 
                                                           (16)
{-# LINE 287 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifierPlaneCount" Word32 'False 
                                                                     (24)
{-# LINE 292 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pPlaneLayouts" (Ptr VkSubresourceLayout) 'False
                (32)
{-# LINE 297 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     uint32_t drmFormatModifierCount;
--   >     const uint64_t* pDrmFormatModifiers;
--   > } VkImageDrmFormatModifierListCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageDrmFormatModifierListCreateInfoEXT VkImageDrmFormatModifierListCreateInfoEXT registry at www.khronos.org>
type VkImageDrmFormatModifierListCreateInfoEXT =
     VkStruct VkImageDrmFormatModifierListCreateInfoEXT' -- ' closing tick for hsc2hs

data VkImageDrmFormatModifierListCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageDrmFormatModifierListCreateInfoEXT
         where
    type StructRep VkImageDrmFormatModifierListCreateInfoEXT =
         'StructMeta "VkImageDrmFormatModifierListCreateInfoEXT" -- ' closing tick for hsc2hs
           VkImageDrmFormatModifierListCreateInfoEXT
           (32)
{-# LINE 323 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 324 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 326 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 331 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifierCount" Word32 'False 
                                                                (16)
{-# LINE 336 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDrmFormatModifiers" (Ptr Word64) 'False 
                                                                   (24)
{-# LINE 341 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageDrmFormatModifierPropertiesEXT {
--   >     VkStructureType sType;
--   >     void* pNext;
--   >     uint64_t drmFormatModifier;
--   > } VkImageDrmFormatModifierPropertiesEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageDrmFormatModifierPropertiesEXT VkImageDrmFormatModifierPropertiesEXT registry at www.khronos.org>
type VkImageDrmFormatModifierPropertiesEXT =
     VkStruct VkImageDrmFormatModifierPropertiesEXT' -- ' closing tick for hsc2hs

data VkImageDrmFormatModifierPropertiesEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageDrmFormatModifierPropertiesEXT where
    type StructRep VkImageDrmFormatModifierPropertiesEXT =
         'StructMeta "VkImageDrmFormatModifierPropertiesEXT" -- ' closing tick for hsc2hs
           VkImageDrmFormatModifierPropertiesEXT
           (24)
{-# LINE 365 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 366 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 368 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 373 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "drmFormatModifier" Word64 'False 
                                                           (16)
{-# LINE 378 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageFormatListCreateInfo {
--   >     VkStructureType sType;
--   >     const void*                            pNext;
--   >     uint32_t               viewFormatCount;
--   >     const VkFormat*  pViewFormats;
--   > } VkImageFormatListCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageFormatListCreateInfo VkImageFormatListCreateInfo registry at www.khronos.org>
type VkImageFormatListCreateInfo =
     VkStruct VkImageFormatListCreateInfo' -- ' closing tick for hsc2hs

data VkImageFormatListCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageFormatListCreateInfo where
    type StructRep VkImageFormatListCreateInfo =
         'StructMeta "VkImageFormatListCreateInfo" -- ' closing tick for hsc2hs
           VkImageFormatListCreateInfo
           (32)
{-# LINE 403 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 404 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 406 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 411 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "viewFormatCount" Word32 'True 
                                                        (16)
{-# LINE 416 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pViewFormats" (Ptr VkFormat) 'False 
                                                              (24)
{-# LINE 421 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageCreateInfo, VkSwapchainCreateInfoKHR, -- ' closing tick for hsc2hs
             VkPhysicalDeviceImageFormatInfo2]

-- | Alias for `VkImageFormatListCreateInfo`
type VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfo

-- | > typedef struct VkImageFormatProperties {
--   >     VkExtent3D             maxExtent;
--   >     uint32_t               maxMipLevels;
--   >     uint32_t               maxArrayLayers;
--   >     VkSampleCountFlags     sampleCounts;
--   >     VkDeviceSize           maxResourceSize;
--   > } VkImageFormatProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageFormatProperties VkImageFormatProperties registry at www.khronos.org>
type VkImageFormatProperties = VkStruct VkImageFormatProperties' -- ' closing tick for hsc2hs

data VkImageFormatProperties' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageFormatProperties where
    type StructRep VkImageFormatProperties =
         'StructMeta "VkImageFormatProperties" VkImageFormatProperties -- ' closing tick for hsc2hs
           (32)
{-# LINE 449 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 450 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "maxExtent" VkExtent3D 'False  -- ' closing tick for hsc2hs
                                                       (0)
{-# LINE 452 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxMipLevels" Word32 'False 
                                                      (12)
{-# LINE 457 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxArrayLayers" Word32 'False 
                                                        (16)
{-# LINE 462 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sampleCounts" VkSampleCountFlags 'True 
                                                                 (20)
{-# LINE 467 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxResourceSize" VkDeviceSize 'False 
                                                               (24)
{-# LINE 472 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageFormatProperties2 {
--   >     VkStructureType sType;
--   >     void* pNext;
--   >     VkImageFormatProperties          imageFormatProperties;
--   > } VkImageFormatProperties2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageFormatProperties2 VkImageFormatProperties2 registry at www.khronos.org>
type VkImageFormatProperties2 = VkStruct VkImageFormatProperties2' -- ' closing tick for hsc2hs

data VkImageFormatProperties2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageFormatProperties2 where
    type StructRep VkImageFormatProperties2 =
         'StructMeta "VkImageFormatProperties2" VkImageFormatProperties2 -- ' closing tick for hsc2hs
           (48)
{-# LINE 494 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 495 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 497 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 502 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageFormatProperties" VkImageFormatProperties 'False
                (16)
{-# LINE 507 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkImageFormatProperties2`
type VkImageFormatProperties2KHR = VkImageFormatProperties2

-- | > typedef struct VkImageMemoryBarrier {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkAccessFlags          srcAccessMask;
--   >     VkAccessFlags          dstAccessMask;
--   >     VkImageLayout          oldLayout;
--   >     VkImageLayout          newLayout;
--   >     uint32_t               srcQueueFamilyIndex;
--   >     uint32_t               dstQueueFamilyIndex;
--   >     VkImage                image;
--   >     VkImageSubresourceRange subresourceRange;
--   > } VkImageMemoryBarrier;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageMemoryBarrier VkImageMemoryBarrier registry at www.khronos.org>
type VkImageMemoryBarrier = VkStruct VkImageMemoryBarrier' -- ' closing tick for hsc2hs

data VkImageMemoryBarrier' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageMemoryBarrier where
    type StructRep VkImageMemoryBarrier =
         'StructMeta "VkImageMemoryBarrier" VkImageMemoryBarrier  -- ' closing tick for hsc2hs
                                                                 (72)
{-# LINE 539 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 540 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 542 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 547 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcAccessMask" VkAccessFlags 'False 
                                                              (16)
{-# LINE 552 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstAccessMask" VkAccessFlags 'False 
                                                              (20)
{-# LINE 557 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "oldLayout" VkImageLayout 'False 
                                                          (24)
{-# LINE 562 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "newLayout" VkImageLayout 'False 
                                                          (28)
{-# LINE 567 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcQueueFamilyIndex" Word32 'False 
                                                             (32)
{-# LINE 572 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstQueueFamilyIndex" Word32 'False 
                                                             (36)
{-# LINE 577 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "image" VkImage 'False 
                                                (40)
{-# LINE 582 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "subresourceRange" VkImageSubresourceRange 'False
                (48)
{-# LINE 587 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageMemoryRequirementsInfo2 {
--   >     VkStructureType sType;
--   >     const void*                                                          pNext;
--   >     VkImage                                                              image;
--   > } VkImageMemoryRequirementsInfo2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2 registry at www.khronos.org>
type VkImageMemoryRequirementsInfo2 =
     VkStruct VkImageMemoryRequirementsInfo2' -- ' closing tick for hsc2hs

data VkImageMemoryRequirementsInfo2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageMemoryRequirementsInfo2 where
    type StructRep VkImageMemoryRequirementsInfo2 =
         'StructMeta "VkImageMemoryRequirementsInfo2" -- ' closing tick for hsc2hs
           VkImageMemoryRequirementsInfo2
           (24)
{-# LINE 611 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 612 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 614 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 619 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "image" VkImage 'False 
                                                (16)
{-# LINE 624 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkImageMemoryRequirementsInfo2`
type VkImageMemoryRequirementsInfo2KHR =
     VkImageMemoryRequirementsInfo2

-- | > typedef struct VkImagePlaneMemoryRequirementsInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkImageAspectFlagBits            planeAspect;
--   > } VkImagePlaneMemoryRequirementsInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfo registry at www.khronos.org>
type VkImagePlaneMemoryRequirementsInfo =
     VkStruct VkImagePlaneMemoryRequirementsInfo' -- ' closing tick for hsc2hs

data VkImagePlaneMemoryRequirementsInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImagePlaneMemoryRequirementsInfo where
    type StructRep VkImagePlaneMemoryRequirementsInfo =
         'StructMeta "VkImagePlaneMemoryRequirementsInfo" -- ' closing tick for hsc2hs
           VkImagePlaneMemoryRequirementsInfo
           (24)
{-# LINE 652 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 653 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 655 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 660 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "planeAspect" VkImageAspectFlagBits 'False 
                                                                    (16)
{-# LINE 665 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageMemoryRequirementsInfo2] -- ' closing tick for hsc2hs

-- | Alias for `VkImagePlaneMemoryRequirementsInfo`
type VkImagePlaneMemoryRequirementsInfoKHR =
     VkImagePlaneMemoryRequirementsInfo

-- | > typedef struct VkImageResolve {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffset;
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffset;
--   >     VkExtent3D             extent;
--   > } VkImageResolve;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageResolve VkImageResolve registry at www.khronos.org>
type VkImageResolve = VkStruct VkImageResolve' -- ' closing tick for hsc2hs

data VkImageResolve' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageResolve where
    type StructRep VkImageResolve =
         'StructMeta "VkImageResolve" VkImageResolve  -- ' closing tick for hsc2hs
                                                     (68)
{-# LINE 693 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 694 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "srcSubresource" VkImageSubresourceLayers 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 696 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcOffset" VkOffset3D 'False 
                                                       (16)
{-# LINE 701 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstSubresource" VkImageSubresourceLayers 'False
                (28)
{-# LINE 706 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstOffset" VkOffset3D 'False 
                                                       (44)
{-# LINE 711 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "extent" VkExtent3D 'False 
                                                    (56)
{-# LINE 716 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageSparseMemoryRequirementsInfo2 {
--   >     VkStructureType sType;
--   >     const void*                                                          pNext;
--   >     VkImage                                                              image;
--   > } VkImageSparseMemoryRequirementsInfo2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2 registry at www.khronos.org>
type VkImageSparseMemoryRequirementsInfo2 =
     VkStruct VkImageSparseMemoryRequirementsInfo2' -- ' closing tick for hsc2hs

data VkImageSparseMemoryRequirementsInfo2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageSparseMemoryRequirementsInfo2 where
    type StructRep VkImageSparseMemoryRequirementsInfo2 =
         'StructMeta "VkImageSparseMemoryRequirementsInfo2" -- ' closing tick for hsc2hs
           VkImageSparseMemoryRequirementsInfo2
           (24)
{-# LINE 740 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 741 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 743 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 748 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "image" VkImage 'False 
                                                (16)
{-# LINE 753 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkImageSparseMemoryRequirementsInfo2`
type VkImageSparseMemoryRequirementsInfo2KHR =
     VkImageSparseMemoryRequirementsInfo2

-- | > typedef struct VkImageStencilUsageCreateInfo {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     VkImageUsageFlags stencilUsage;
--   > } VkImageStencilUsageCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfo registry at www.khronos.org>
type VkImageStencilUsageCreateInfo =
     VkStruct VkImageStencilUsageCreateInfo' -- ' closing tick for hsc2hs

data VkImageStencilUsageCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageStencilUsageCreateInfo where
    type StructRep VkImageStencilUsageCreateInfo =
         'StructMeta "VkImageStencilUsageCreateInfo" -- ' closing tick for hsc2hs
           VkImageStencilUsageCreateInfo
           (24)
{-# LINE 781 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 782 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 784 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 789 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stencilUsage" VkImageUsageFlags 'False 
                                                                 (16)
{-# LINE 794 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageCreateInfo, VkPhysicalDeviceImageFormatInfo2] -- ' closing tick for hsc2hs

-- | Alias for `VkImageStencilUsageCreateInfo`
type VkImageStencilUsageCreateInfoEXT =
     VkImageStencilUsageCreateInfo

-- | > typedef struct VkImageSubresource {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               mipLevel;
--   >     uint32_t               arrayLayer;
--   > } VkImageSubresource;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageSubresource VkImageSubresource registry at www.khronos.org>
type VkImageSubresource = VkStruct VkImageSubresource' -- ' closing tick for hsc2hs

data VkImageSubresource' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageSubresource where
    type StructRep VkImageSubresource =
         'StructMeta "VkImageSubresource" VkImageSubresource  -- ' closing tick for hsc2hs
                                                             (12)
{-# LINE 820 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 821 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 823 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mipLevel" Word32 'False 
                                                  (4)
{-# LINE 828 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "arrayLayer" Word32 'False 
                                                    (8)
{-# LINE 833 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageSubresourceLayers {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               mipLevel;
--   >     uint32_t               baseArrayLayer;
--   >     uint32_t               layerCount;
--   > } VkImageSubresourceLayers;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageSubresourceLayers VkImageSubresourceLayers registry at www.khronos.org>
type VkImageSubresourceLayers = VkStruct VkImageSubresourceLayers' -- ' closing tick for hsc2hs

data VkImageSubresourceLayers' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageSubresourceLayers where
    type StructRep VkImageSubresourceLayers =
         'StructMeta "VkImageSubresourceLayers" VkImageSubresourceLayers -- ' closing tick for hsc2hs
           (16)
{-# LINE 856 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 857 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 859 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mipLevel" Word32 'False 
                                                  (4)
{-# LINE 864 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "baseArrayLayer" Word32 'False 
                                                        (8)
{-# LINE 869 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "layerCount" Word32 'False 
                                                    (12)
{-# LINE 874 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageSubresourceRange {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               baseMipLevel;
--   >     uint32_t               levelCount;
--   >     uint32_t               baseArrayLayer;
--   >     uint32_t               layerCount;
--   > } VkImageSubresourceRange;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageSubresourceRange VkImageSubresourceRange registry at www.khronos.org>
type VkImageSubresourceRange = VkStruct VkImageSubresourceRange' -- ' closing tick for hsc2hs

data VkImageSubresourceRange' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageSubresourceRange where
    type StructRep VkImageSubresourceRange =
         'StructMeta "VkImageSubresourceRange" VkImageSubresourceRange -- ' closing tick for hsc2hs
           (20)
{-# LINE 898 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 899 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 901 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "baseMipLevel" Word32 'False 
                                                      (4)
{-# LINE 906 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "levelCount" Word32 'False 
                                                    (8)
{-# LINE 911 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "baseArrayLayer" Word32 'False 
                                                        (12)
{-# LINE 916 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "layerCount" Word32 'False 
                                                    (16)
{-# LINE 921 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageSwapchainCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkSwapchainKHR   swapchain;
--   > } VkImageSwapchainCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageSwapchainCreateInfoKHR VkImageSwapchainCreateInfoKHR registry at www.khronos.org>
type VkImageSwapchainCreateInfoKHR =
     VkStruct VkImageSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs

data VkImageSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageSwapchainCreateInfoKHR where
    type StructRep VkImageSwapchainCreateInfoKHR =
         'StructMeta "VkImageSwapchainCreateInfoKHR" -- ' closing tick for hsc2hs
           VkImageSwapchainCreateInfoKHR
           (24)
{-# LINE 945 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 946 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 948 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 953 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "swapchain" VkSwapchainKHR 'True 
                                                          (16)
{-# LINE 958 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageViewASTCDecodeModeEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkFormat                         decodeMode;
--   > } VkImageViewASTCDecodeModeEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageViewASTCDecodeModeEXT VkImageViewASTCDecodeModeEXT registry at www.khronos.org>
type VkImageViewASTCDecodeModeEXT =
     VkStruct VkImageViewASTCDecodeModeEXT' -- ' closing tick for hsc2hs

data VkImageViewASTCDecodeModeEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageViewASTCDecodeModeEXT where
    type StructRep VkImageViewASTCDecodeModeEXT =
         'StructMeta "VkImageViewASTCDecodeModeEXT" -- ' closing tick for hsc2hs
           VkImageViewASTCDecodeModeEXT
           (24)
{-# LINE 982 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 983 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 985 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 990 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "decodeMode" VkFormat 'False 
                                                      (16)
{-# LINE 995 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageViewCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageViewAddressPropertiesNVX {
--   >     VkStructureType sType;
--   >     void*              pNext;
--   >     VkDeviceAddress    deviceAddress;
--   >     VkDeviceSize       size;
--   > } VkImageViewAddressPropertiesNVX;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageViewAddressPropertiesNVX VkImageViewAddressPropertiesNVX registry at www.khronos.org>
type VkImageViewAddressPropertiesNVX =
     VkStruct VkImageViewAddressPropertiesNVX' -- ' closing tick for hsc2hs

data VkImageViewAddressPropertiesNVX' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageViewAddressPropertiesNVX where
    type StructRep VkImageViewAddressPropertiesNVX =
         'StructMeta "VkImageViewAddressPropertiesNVX" -- ' closing tick for hsc2hs
           VkImageViewAddressPropertiesNVX
           (32)
{-# LINE 1020 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 1021 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1023 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 1028 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceAddress" VkDeviceAddress 'False 
                                                                (16)
{-# LINE 1033 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False 
                                                    (24)
{-# LINE 1038 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageViewCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkImageViewCreateFlags flags;
--   >     VkImage                image;
--   >     VkImageViewType        viewType;
--   >     VkFormat               format;
--   >     VkComponentMapping     components;
--   >     VkImageSubresourceRange subresourceRange;
--   > } VkImageViewCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageViewCreateInfo VkImageViewCreateInfo registry at www.khronos.org>
type VkImageViewCreateInfo = VkStruct VkImageViewCreateInfo' -- ' closing tick for hsc2hs

data VkImageViewCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageViewCreateInfo where
    type StructRep VkImageViewCreateInfo =
         'StructMeta "VkImageViewCreateInfo" VkImageViewCreateInfo  -- ' closing tick for hsc2hs
                                                                   (80)
{-# LINE 1065 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 1066 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1068 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 1073 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkImageViewCreateFlags 'True 
                                                              (16)
{-# LINE 1078 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "image" VkImage 'False 
                                                (24)
{-# LINE 1083 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "viewType" VkImageViewType 'False 
                                                           (32)
{-# LINE 1088 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "format" VkFormat 'False 
                                                  (36)
{-# LINE 1093 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "components" VkComponentMapping 'False 
                                                                (40)
{-# LINE 1098 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "subresourceRange" VkImageSubresourceRange 'False
                (56)
{-# LINE 1103 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageViewHandleInfoNVX {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkImageView                         imageView;
--   >     VkDescriptorType                    descriptorType;
--   >     VkSampler           sampler;
--   > } VkImageViewHandleInfoNVX;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageViewHandleInfoNVX VkImageViewHandleInfoNVX registry at www.khronos.org>
type VkImageViewHandleInfoNVX = VkStruct VkImageViewHandleInfoNVX' -- ' closing tick for hsc2hs

data VkImageViewHandleInfoNVX' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageViewHandleInfoNVX where
    type StructRep VkImageViewHandleInfoNVX =
         'StructMeta "VkImageViewHandleInfoNVX" VkImageViewHandleInfoNVX -- ' closing tick for hsc2hs
           (40)
{-# LINE 1127 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 1128 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1130 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 1135 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageView" VkImageView 'False 
                                                        (16)
{-# LINE 1140 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorType" VkDescriptorType 'False 
                                                                  (24)
{-# LINE 1145 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sampler" VkSampler 'True 
                                                   (32)
{-# LINE 1150 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkImageViewUsageCreateInfo {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     VkImageUsageFlags usage;
--   > } VkImageViewUsageCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageViewUsageCreateInfo VkImageViewUsageCreateInfo registry at www.khronos.org>
type VkImageViewUsageCreateInfo =
     VkStruct VkImageViewUsageCreateInfo' -- ' closing tick for hsc2hs

data VkImageViewUsageCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageViewUsageCreateInfo where
    type StructRep VkImageViewUsageCreateInfo =
         'StructMeta "VkImageViewUsageCreateInfo" VkImageViewUsageCreateInfo -- ' closing tick for hsc2hs
           (24)
{-# LINE 1173 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 1174 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 1176 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 1181 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "usage" VkImageUsageFlags 'False 
                                                          (16)
{-# LINE 1186 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkImageViewCreateInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkImageViewUsageCreateInfo`
type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo