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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Descriptor
       (VkDescriptorBufferInfo, VkDescriptorImageInfo,
        VkDescriptorPoolCreateInfo,
        VkDescriptorPoolInlineUniformBlockCreateInfoEXT,
        VkDescriptorPoolSize, VkDescriptorSetAllocateInfo,
        VkDescriptorSetLayoutBinding,
        VkDescriptorSetLayoutBindingFlagsCreateInfo,
        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT,
        VkDescriptorSetLayoutCreateInfo, VkDescriptorSetLayoutSupport,
        VkDescriptorSetLayoutSupportKHR,
        VkDescriptorSetVariableDescriptorCountAllocateInfo,
        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT,
        VkDescriptorSetVariableDescriptorCountLayoutSupport,
        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT,
        VkDescriptorUpdateTemplateCreateInfo,
        VkDescriptorUpdateTemplateCreateInfoKHR,
        VkDescriptorUpdateTemplateEntry,
        VkDescriptorUpdateTemplateEntryKHR)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes          (VkBool32, VkDeviceSize)
import Graphics.Vulkan.Types.Bitmasks           (VkDescriptorUpdateTemplateCreateFlags)
import Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorBindingFlags,
                                                 VkDescriptorPoolCreateFlags,
                                                 VkDescriptorSetLayoutCreateFlags,
                                                 VkDescriptorType,
                                                 VkDescriptorUpdateTemplateType)
import Graphics.Vulkan.Types.Enum.Image         (VkImageLayout)
import Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineBindPoint)
import Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkBuffer, VkDescriptorPool,
                                                 VkDescriptorSetLayout,
                                                 VkImageView, VkPipelineLayout,
                                                 VkSampler)

-- | > typedef struct VkDescriptorBufferInfo {
--   >     VkBuffer               buffer;
--   >     VkDeviceSize           offset;
--   >     VkDeviceSize           range;
--   > } VkDescriptorBufferInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorBufferInfo VkDescriptorBufferInfo registry at www.khronos.org>
type VkDescriptorBufferInfo = VkStruct VkDescriptorBufferInfo' -- ' closing tick for hsc2hs

data VkDescriptorBufferInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorBufferInfo where
    type StructRep VkDescriptorBufferInfo =
         'StructMeta "VkDescriptorBufferInfo" VkDescriptorBufferInfo -- ' closing tick for hsc2hs
           (24)
{-# LINE 60 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 61 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "buffer" VkBuffer 'True  -- ' closing tick for hsc2hs
                                                 (0)
{-# LINE 63 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" VkDeviceSize 'False 
                                                      (8)
{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "range" VkDeviceSize 'False 
                                                     (16)
{-# LINE 73 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorImageInfo {
--   >     VkSampler       sampler;
--   >     VkImageView     imageView;
--   >     VkImageLayout   imageLayout;
--   > } VkDescriptorImageInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorImageInfo VkDescriptorImageInfo registry at www.khronos.org>
type VkDescriptorImageInfo = VkStruct VkDescriptorImageInfo' -- ' closing tick for hsc2hs

data VkDescriptorImageInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorImageInfo where
    type StructRep VkDescriptorImageInfo =
         'StructMeta "VkDescriptorImageInfo" VkDescriptorImageInfo  -- ' closing tick for hsc2hs
                                                                   (24)
{-# LINE 95 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sampler" VkSampler 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageView" VkImageView 'False 
                                                        (8)
{-# LINE 103 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageLayout" VkImageLayout 'False 
                                                            (16)
{-# LINE 108 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorPoolCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkDescriptorPoolCreateFlags  flags;
--   >     uint32_t               maxSets;
--   >     uint32_t               poolSizeCount;
--   >     const VkDescriptorPoolSize* pPoolSizes;
--   > } VkDescriptorPoolCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorPoolCreateInfo VkDescriptorPoolCreateInfo registry at www.khronos.org>
type VkDescriptorPoolCreateInfo =
     VkStruct VkDescriptorPoolCreateInfo' -- ' closing tick for hsc2hs

data VkDescriptorPoolCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorPoolCreateInfo where
    type StructRep VkDescriptorPoolCreateInfo =
         'StructMeta "VkDescriptorPoolCreateInfo" VkDescriptorPoolCreateInfo -- ' closing tick for hsc2hs
           (40)
{-# LINE 134 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 135 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 137 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDescriptorPoolCreateFlags 'True 
                                                                   (16)
{-# LINE 147 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxSets" Word32 'False 
                                                 (20)
{-# LINE 152 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "poolSizeCount" Word32 'False 
                                                       (24)
{-# LINE 157 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pPoolSizes" (Ptr VkDescriptorPoolSize) 'False
                (32)
{-# LINE 162 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     uint32_t               maxInlineUniformBlockBindings;
--   > } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorPoolInlineUniformBlockCreateInfoEXT VkDescriptorPoolInlineUniformBlockCreateInfoEXT registry at www.khronos.org>
type VkDescriptorPoolInlineUniformBlockCreateInfoEXT =
     VkStruct VkDescriptorPoolInlineUniformBlockCreateInfoEXT' -- ' closing tick for hsc2hs

data VkDescriptorPoolInlineUniformBlockCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkDescriptorPoolInlineUniformBlockCreateInfoEXT
         where
    type StructRep VkDescriptorPoolInlineUniformBlockCreateInfoEXT =
         'StructMeta "VkDescriptorPoolInlineUniformBlockCreateInfoEXT" -- ' closing tick for hsc2hs
           VkDescriptorPoolInlineUniformBlockCreateInfoEXT
           (24)
{-# LINE 188 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 189 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 191 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 196 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxInlineUniformBlockBindings" Word32 'False 
                                                                       (16)
{-# LINE 201 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDescriptorPoolCreateInfo] -- ' closing tick for hsc2hs

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

data VkDescriptorPoolSize' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorPoolSize where
    type StructRep VkDescriptorPoolSize =
         'StructMeta "VkDescriptorPoolSize" VkDescriptorPoolSize  -- ' closing tick for hsc2hs
                                                                 (8)
{-# LINE 222 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           4
{-# LINE 223 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "type" VkDescriptorType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 225 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorCount" Word32 'False 
                                                         (4)
{-# LINE 230 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorSetAllocateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkDescriptorPool       descriptorPool;
--   >     uint32_t               descriptorSetCount;
--   >     const VkDescriptorSetLayout* pSetLayouts;
--   > } VkDescriptorSetAllocateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorSetAllocateInfo VkDescriptorSetAllocateInfo registry at www.khronos.org>
type VkDescriptorSetAllocateInfo =
     VkStruct VkDescriptorSetAllocateInfo' -- ' closing tick for hsc2hs

data VkDescriptorSetAllocateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorSetAllocateInfo where
    type StructRep VkDescriptorSetAllocateInfo =
         'StructMeta "VkDescriptorSetAllocateInfo" -- ' closing tick for hsc2hs
           VkDescriptorSetAllocateInfo
           (40)
{-# LINE 256 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 257 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 259 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 264 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorPool" VkDescriptorPool 'False 
                                                                  (16)
{-# LINE 269 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorSetCount" Word32 'False 
                                                            (24)
{-# LINE 274 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSetLayouts" (Ptr VkDescriptorSetLayout) 'False
                (32)
{-# LINE 279 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorSetLayoutBinding {
--   >     uint32_t               binding;
--   >     VkDescriptorType       descriptorType;
--   >     uint32_t descriptorCount;
--   >     VkShaderStageFlags     stageFlags;
--   >     const VkSampler*       pImmutableSamplers;
--   > } VkDescriptorSetLayoutBinding;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorSetLayoutBinding VkDescriptorSetLayoutBinding registry at www.khronos.org>
type VkDescriptorSetLayoutBinding =
     VkStruct VkDescriptorSetLayoutBinding' -- ' closing tick for hsc2hs

data VkDescriptorSetLayoutBinding' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorSetLayoutBinding where
    type StructRep VkDescriptorSetLayoutBinding =
         'StructMeta "VkDescriptorSetLayoutBinding" -- ' closing tick for hsc2hs
           VkDescriptorSetLayoutBinding
           (24)
{-# LINE 305 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 306 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "binding" Word32 'False  -- ' closing tick for hsc2hs
                                                 (0)
{-# LINE 308 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorType" VkDescriptorType 'False 
                                                                  (4)
{-# LINE 313 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorCount" Word32 'True 
                                                        (8)
{-# LINE 318 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stageFlags" VkShaderStageFlags 'False 
                                                                (12)
{-# LINE 323 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pImmutableSamplers" (Ptr VkSampler) 'True 
                                                                    (16)
{-# LINE 328 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorSetLayoutBindingFlagsCreateInfo {
--   >     VkStructureType sType;
--   >     const void*                                                        pNext;
--   >     uint32_t                                           bindingCount;
--   >     const VkDescriptorBindingFlags* pBindingFlags;
--   > } VkDescriptorSetLayoutBindingFlagsCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfo registry at www.khronos.org>
type VkDescriptorSetLayoutBindingFlagsCreateInfo =
     VkStruct VkDescriptorSetLayoutBindingFlagsCreateInfo' -- ' closing tick for hsc2hs

data VkDescriptorSetLayoutBindingFlagsCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorSetLayoutBindingFlagsCreateInfo
         where
    type StructRep VkDescriptorSetLayoutBindingFlagsCreateInfo =
         'StructMeta "VkDescriptorSetLayoutBindingFlagsCreateInfo" -- ' closing tick for hsc2hs
           VkDescriptorSetLayoutBindingFlagsCreateInfo
           (32)
{-# LINE 354 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 355 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 357 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 362 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bindingCount" Word32 'True 
                                                     (16)
{-# LINE 367 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBindingFlags" (Ptr VkDescriptorBindingFlags) 'False
                (24)
{-# LINE 372 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDescriptorSetLayoutCreateInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDescriptorSetLayoutBindingFlagsCreateInfo`
type VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
     VkDescriptorSetLayoutBindingFlagsCreateInfo

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

data VkDescriptorSetLayoutCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorSetLayoutCreateInfo where
    type StructRep VkDescriptorSetLayoutCreateInfo =
         'StructMeta "VkDescriptorSetLayoutCreateInfo" -- ' closing tick for hsc2hs
           VkDescriptorSetLayoutCreateInfo
           (32)
{-# LINE 402 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 403 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 405 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 410 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDescriptorSetLayoutCreateFlags 'True
                (16)
{-# LINE 415 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bindingCount" Word32 'True 
                                                     (20)
{-# LINE 420 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBindings" (Ptr VkDescriptorSetLayoutBinding) 'False
                (24)
{-# LINE 425 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 VkDescriptorSetLayoutSupport {
--   >     VkStructureType sType;
--   >     void*            pNext;
--   >     VkBool32         supported;
--   > } VkDescriptorSetLayoutSupport;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupport registry at www.khronos.org>
type VkDescriptorSetLayoutSupport =
     VkStruct VkDescriptorSetLayoutSupport' -- ' closing tick for hsc2hs

data VkDescriptorSetLayoutSupport' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorSetLayoutSupport where
    type StructRep VkDescriptorSetLayoutSupport =
         'StructMeta "VkDescriptorSetLayoutSupport" -- ' closing tick for hsc2hs
           VkDescriptorSetLayoutSupport
           (24)
{-# LINE 449 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 450 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 452 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 457 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "supported" VkBool32 'False 
                                                     (16)
{-# LINE 462 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 `VkDescriptorSetLayoutSupport`
type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport

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

data VkDescriptorSetVariableDescriptorCountAllocateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkDescriptorSetVariableDescriptorCountAllocateInfo
         where
    type StructRep VkDescriptorSetVariableDescriptorCountAllocateInfo =
         'StructMeta "VkDescriptorSetVariableDescriptorCountAllocateInfo" -- ' closing tick for hsc2hs
           VkDescriptorSetVariableDescriptorCountAllocateInfo
           (32)
{-# LINE 492 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 493 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 495 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 500 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorSetCount" Word32 'True 
                                                           (16)
{-# LINE 505 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDescriptorCounts" (Ptr Word32) 'False 
                                                                 (24)
{-# LINE 510 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDescriptorSetAllocateInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDescriptorSetVariableDescriptorCountAllocateInfo`
type VkDescriptorSetVariableDescriptorCountAllocateInfoEXT =
     VkDescriptorSetVariableDescriptorCountAllocateInfo

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

data VkDescriptorSetVariableDescriptorCountLayoutSupport' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkDescriptorSetVariableDescriptorCountLayoutSupport
         where
    type StructRep VkDescriptorSetVariableDescriptorCountLayoutSupport
         =
         'StructMeta "VkDescriptorSetVariableDescriptorCountLayoutSupport" -- ' closing tick for hsc2hs
           VkDescriptorSetVariableDescriptorCountLayoutSupport
           (24)
{-# LINE 541 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 542 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 544 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 549 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxVariableDescriptorCount" Word32 'False 
                                                                    (16)
{-# LINE 554 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[VkDescriptorSetLayoutSupport] -- ' closing tick for hsc2hs

-- | Alias for `VkDescriptorSetVariableDescriptorCountLayoutSupport`
type VkDescriptorSetVariableDescriptorCountLayoutSupportEXT =
     VkDescriptorSetVariableDescriptorCountLayoutSupport

-- | > typedef struct VkDescriptorUpdateTemplateCreateInfo {
--   >     VkStructureType sType;
--   >     const void*                               pNext;
--   >     VkDescriptorUpdateTemplateCreateFlags    flags;
--   >     uint32_t                 descriptorUpdateEntryCount;
--   >     const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
--   >     VkDescriptorUpdateTemplateType templateType;
--   >     VkDescriptorSetLayout descriptorSetLayout;
--   >     VkPipelineBindPoint pipelineBindPoint;
--   >     VkPipelineLayoutpipelineLayout;
--   >     uint32_t set;
--   > } VkDescriptorUpdateTemplateCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfo registry at www.khronos.org>
type VkDescriptorUpdateTemplateCreateInfo =
     VkStruct VkDescriptorUpdateTemplateCreateInfo' -- ' closing tick for hsc2hs

data VkDescriptorUpdateTemplateCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorUpdateTemplateCreateInfo where
    type StructRep VkDescriptorUpdateTemplateCreateInfo =
         'StructMeta "VkDescriptorUpdateTemplateCreateInfo" -- ' closing tick for hsc2hs
           VkDescriptorUpdateTemplateCreateInfo
           (72)
{-# LINE 589 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 590 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 592 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 597 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDescriptorUpdateTemplateCreateFlags 'True
                (16)
{-# LINE 602 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorUpdateEntryCount" Word32 'False 
                                                                    (20)
{-# LINE 607 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDescriptorUpdateEntries" -- ' closing tick for hsc2hs
                (Ptr VkDescriptorUpdateTemplateEntry)
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 614 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "templateType" VkDescriptorUpdateTemplateType 'False
                (32)
{-# LINE 619 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorSetLayout" VkDescriptorSetLayout 'False
                (40)
{-# LINE 624 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pipelineBindPoint" VkPipelineBindPoint 'False
                (48)
{-# LINE 629 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pipelineLayout" VkPipelineLayout 'False 
                                                                  (56)
{-# LINE 634 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "set" Word32 'False 
                                             (64)
{-# LINE 639 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 `VkDescriptorUpdateTemplateCreateInfo`
type VkDescriptorUpdateTemplateCreateInfoKHR =
     VkDescriptorUpdateTemplateCreateInfo

-- | > typedef struct VkDescriptorUpdateTemplateEntry {
--   >     uint32_t                         dstBinding;
--   >     uint32_t                         dstArrayElement;
--   >     uint32_t                         descriptorCount;
--   >     VkDescriptorType                 descriptorType;
--   >     size_t                           offset;
--   >     size_t                           stride;
--   > } VkDescriptorUpdateTemplateEntry;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntry registry at www.khronos.org>
type VkDescriptorUpdateTemplateEntry =
     VkStruct VkDescriptorUpdateTemplateEntry' -- ' closing tick for hsc2hs

data VkDescriptorUpdateTemplateEntry' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDescriptorUpdateTemplateEntry where
    type StructRep VkDescriptorUpdateTemplateEntry =
         'StructMeta "VkDescriptorUpdateTemplateEntry" -- ' closing tick for hsc2hs
           VkDescriptorUpdateTemplateEntry
           (32)
{-# LINE 670 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 671 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "dstBinding" Word32 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 673 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstArrayElement" Word32 'False 
                                                         (4)
{-# LINE 678 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorCount" Word32 'False 
                                                         (8)
{-# LINE 683 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorType" VkDescriptorType 'False 
                                                                  (12)
{-# LINE 688 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" CSize 'False 
                                               (16)
{-# LINE 693 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stride" CSize 'False 
                                               (24)
{-# LINE 698 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.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 `VkDescriptorUpdateTemplateEntry`
type VkDescriptorUpdateTemplateEntryKHR =
     VkDescriptorUpdateTemplateEntry