{-# 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,
        VkImageFormatListCreateInfoKHR, VkImageFormatProperties,
        VkImageFormatProperties2, VkImageFormatProperties2KHR,
        VkImageMemoryBarrier, VkImageMemoryRequirementsInfo2,
        VkImageMemoryRequirementsInfo2KHR,
        VkImagePlaneMemoryRequirementsInfo,
        VkImagePlaneMemoryRequirementsInfoKHR, VkImageResolve,
        VkImageSparseMemoryRequirementsInfo2,
        VkImageSparseMemoryRequirementsInfo2KHR, VkImageSubresource,
        VkImageSubresourceLayers, VkImageSubresourceRange,
        VkImageSwapchainCreateInfoKHR, VkImageViewCreateInfo,
        VkImageViewUsageCreateInfo, VkImageViewUsageCreateInfoKHR)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
import Graphics.Vulkan.Types.Bitmasks                (VkImageViewCreateFlags)
import Graphics.Vulkan.Types.Enum.AccessFlags        (VkAccessFlags)
import Graphics.Vulkan.Types.Enum.Format             (VkFormat)
import Graphics.Vulkan.Types.Enum.Image              (VkImageAspectFlagBits,
                                                      VkImageAspectFlags,
                                                      VkImageCreateFlags,
                                                      VkImageLayout,
                                                      VkImageTiling,
                                                      VkImageType,
                                                      VkImageUsageFlags,
                                                      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, VkSwapchainKHR)
import Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
import Graphics.Vulkan.Types.Struct.Extent           (VkExtent3D)
import Graphics.Vulkan.Types.Struct.Offset           (VkOffset3D)

-- | > typedef struct VkImageBlit {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffsets[2];
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffsets[2];
--   > } VkImageBlit;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-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 61 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 62 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "srcSubresource" VkImageSubresourceLayers 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 64 "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 69 "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 74 "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 79 "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.1-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 103 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 104 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "srcSubresource" VkImageSubresourceLayers 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 106 "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 111 "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 116 "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 121 "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 126 "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.1-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 160 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 161 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 163 "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 168 "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 173 "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 178 "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 183 "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 188 "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 193 "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 198 "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 203 "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 208 "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 213 "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 218 "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 223 "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 228 "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 233 "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 VkImageFormatListCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     uint32_t               viewFormatCount;
--   >     const VkFormat*      pViewFormats;
--   > } VkImageFormatListCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatListCreateInfoKHR VkImageFormatListCreateInfoKHR registry at www.khronos.org>
type VkImageFormatListCreateInfoKHR =
     VkStruct VkImageFormatListCreateInfoKHR' -- ' closing tick for hsc2hs

data VkImageFormatListCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImageFormatListCreateInfoKHR where
    type StructRep VkImageFormatListCreateInfoKHR =
         'StructMeta "VkImageFormatListCreateInfoKHR" -- ' closing tick for hsc2hs
           VkImageFormatListCreateInfoKHR
           (32)
{-# LINE 258 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 259 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 261 "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 266 "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 271 "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 276 "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 VkImageFormatProperties {
--   >     VkExtent3D             maxExtent;
--   >     uint32_t               maxMipLevels;
--   >     uint32_t               maxArrayLayers;
--   >     VkSampleCountFlags     sampleCounts;
--   >     VkDeviceSize           maxResourceSize;
--   > } VkImageFormatProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-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 300 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 301 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "maxExtent" VkExtent3D 'False  -- ' closing tick for hsc2hs
                                                       (0)
{-# LINE 303 "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 308 "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 313 "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 318 "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 323 "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.1-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 345 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 346 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 348 "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 353 "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 358 "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.1-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 390 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 391 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 393 "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 398 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcAccessMask" VkAccessFlags 'True
                                                             (16)
{-# LINE 403 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstAccessMask" VkAccessFlags 'True
                                                             (20)
{-# LINE 408 "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 413 "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 418 "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 423 "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 428 "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 433 "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 438 "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.1-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 462 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 463 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 465 "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 470 "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 475 "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.1-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 503 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 504 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 506 "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 511 "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 516 "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.1-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 544 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 545 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "srcSubresource" VkImageSubresourceLayers 'False -- ' closing tick for hsc2hs
                (0)
{-# LINE 547 "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 552 "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 557 "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 562 "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 567 "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.1-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 591 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 592 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 594 "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 599 "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 604 "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 VkImageSubresource {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               mipLevel;
--   >     uint32_t               arrayLayer;
--   > } VkImageSubresource;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-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 630 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 631 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 633 "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 638 "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 643 "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.1-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 666 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 667 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 669 "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 674 "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 679 "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 684 "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.1-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 708 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           4
{-# LINE 709 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "aspectMask" VkImageAspectFlags 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 711 "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 716 "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 721 "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 726 "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 731 "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.1-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 755 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 756 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 758 "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 763 "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 768 "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 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.1-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 795 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 796 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 798 "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 803 "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 808 "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 813 "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 818 "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 823 "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 828 "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 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 VkImageViewUsageCreateInfo {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     VkImageUsageFlags usage;
--   > } VkImageViewUsageCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-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 856 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           8
{-# LINE 857 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
           '[('FieldMeta "sType" VkStructureType '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 "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 864 "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 869 "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