{-# 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, VkDescriptorPoolSize,
        VkDescriptorSetAllocateInfo, VkDescriptorSetLayoutBinding,
        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT,
        VkDescriptorSetLayoutCreateInfo, VkDescriptorSetLayoutSupport,
        VkDescriptorSetLayoutSupportKHR,
        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT,
        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    (VkDescriptorBindingFlagsEXT,
                                                 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.1-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 55 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 56 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "buffer" VkBuffer 'False  -- ' closing tick for hsc2hs
                                                  (0)
{-# LINE 58 "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 63 "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 68 "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.1-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 90 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sampler" VkSampler 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 93 "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 98 "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 103 "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.1-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 129 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 130 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 132 "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 137 "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 142 "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 147 "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 152 "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 157 "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 VkDescriptorPoolSize {
--   >     VkDescriptorType       type;
--   >     uint32_t               descriptorCount;
--   > } VkDescriptorPoolSize;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-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 178 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           4
{-# LINE 179 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "type" VkDescriptorType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 181 "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 186 "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.1-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 212 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 213 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 215 "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 220 "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 225 "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 230 "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 235 "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.1-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 261 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 262 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "binding" Word32 'False  -- ' closing tick for hsc2hs
                                                 (0)
{-# LINE 264 "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 269 "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 274 "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 279 "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 284 "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 VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     uint32_t               bindingCount;
--   >     const VkDescriptorBindingFlagsEXT* pBindingFlags;
--   > } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutBindingFlagsCreateInfoEXT VkDescriptorSetLayoutBindingFlagsCreateInfoEXT registry at www.khronos.org>
type VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
     VkStruct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT' -- ' closing tick for hsc2hs

data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
         where
    type StructRep VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
         'StructMeta "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" -- ' closing tick for hsc2hs
           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
           (32)
{-# LINE 311 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 312 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 314 "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 319 "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 324 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBindingFlags" (Ptr VkDescriptorBindingFlagsEXT) -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 330 "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

-- | > 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.1-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 356 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 357 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 359 "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 364 "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 369 "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 374 "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 379 "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.1-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 403 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 404 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 406 "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 411 "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 416 "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 VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     uint32_t               descriptorSetCount;
--   >     const uint32_t* pDescriptorCounts;
--   > } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetVariableDescriptorCountAllocateInfoEXT VkDescriptorSetVariableDescriptorCountAllocateInfoEXT registry at www.khronos.org>
type VkDescriptorSetVariableDescriptorCountAllocateInfoEXT =
     VkStruct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT' -- ' closing tick for hsc2hs

data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
         where
    type StructRep
           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
         =
         'StructMeta "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" -- ' closing tick for hsc2hs
           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
           (32)
{-# LINE 448 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 449 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 451 "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 456 "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 461 "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 466 "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

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

data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal
           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
         where
    type StructRep
           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
         =
         'StructMeta -- ' closing tick for hsc2hs
           "VkDescriptorSetVariableDescriptorCountLayoutSupportEXT"
           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
           (24)
{-# LINE 495 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 496 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 498 "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 503 "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 508 "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

-- | > typedef struct VkDescriptorUpdateTemplateCreateInfo {
--   >     VkStructureType sType;
--   >     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.1-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 539 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 540 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 542 "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 547 "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 552 "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 557 "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 564 "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 569 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorSetLayout" VkDescriptorSetLayout 'True
                (40)
{-# LINE 574 "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 579 "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 584 "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 589 "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.1-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 620 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           8
{-# LINE 621 "src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc" #-}
           '[('FieldMeta "dstBinding" Word32 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 623 "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 628 "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 633 "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 638 "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 643 "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 648 "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