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


{-# LANGUAGE CPP                   #-}
{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.WriteDescriptorSet
       (VkWriteDescriptorSet,

{-# LINE 12 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
       VkWriteDescriptorSetAccelerationStructureNV,

{-# LINE 14 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
        VkWriteDescriptorSetInlineUniformBlockEXT)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.Descriptor             (VkDescriptorType)
import Graphics.Vulkan.Types.Enum.StructureType          (VkStructureType)
import Graphics.Vulkan.Types.Handles                     (VkBufferView,
                                                          VkDescriptorSet)
import Graphics.Vulkan.Types.Struct.Descriptor           (VkDescriptorBufferInfo,
                                                          VkDescriptorImageInfo)

{-# LINE 25 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
import Graphics.Vulkan.Types.Struct.EnableBetaExtensions (VkWriteDescriptorSetAccelerationStructureKHR)

{-# LINE 27 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}

-- | > typedef struct VkWriteDescriptorSet {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkDescriptorSet        dstSet;
--   >     uint32_t               dstBinding;
--   >     uint32_t               dstArrayElement;
--   >     uint32_t               descriptorCount;
--   >     VkDescriptorType       descriptorType;
--   >     const VkDescriptorImageInfo* pImageInfo;
--   >     const VkDescriptorBufferInfo* pBufferInfo;
--   >     const VkBufferView*    pTexelBufferView;
--   > } VkWriteDescriptorSet;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkWriteDescriptorSet VkWriteDescriptorSet registry at www.khronos.org>
type VkWriteDescriptorSet = VkStruct VkWriteDescriptorSet' -- ' closing tick for hsc2hs

data VkWriteDescriptorSet' -- ' closing tick for hsc2hs

instance VulkanMarshal VkWriteDescriptorSet where
    type StructRep VkWriteDescriptorSet =
         'StructMeta "VkWriteDescriptorSet" VkWriteDescriptorSet  -- ' closing tick for hsc2hs
                                                                 (64)
{-# LINE 50 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
           8
{-# LINE 51 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 53 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 58 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstSet" VkDescriptorSet 'False
                                                         (16)
{-# LINE 63 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstBinding" Word32 'False
                                                    (24)
{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstArrayElement" Word32 'False
                                                         (28)
{-# LINE 73 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorCount" Word32 'False
                                                         (32)
{-# LINE 78 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "descriptorType" VkDescriptorType 'False
                                                                  (36)
{-# LINE 83 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pImageInfo" (Ptr VkDescriptorImageInfo) 'False
                (40)
{-# LINE 88 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBufferInfo" (Ptr VkDescriptorBufferInfo) 'False
                (48)
{-# LINE 93 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pTexelBufferView" (Ptr VkBufferView) 'False
                                                                      (56)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.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


{-# LINE 106 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
-- | Alias for `VkWriteDescriptorSetAccelerationStructureKHR`
type VkWriteDescriptorSetAccelerationStructureNV =
     VkWriteDescriptorSetAccelerationStructureKHR

{-# LINE 110 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}

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

data VkWriteDescriptorSetInlineUniformBlockEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkWriteDescriptorSetInlineUniformBlockEXT
         where
    type StructRep VkWriteDescriptorSetInlineUniformBlockEXT =
         'StructMeta "VkWriteDescriptorSetInlineUniformBlockEXT" -- ' closing tick for hsc2hs
           VkWriteDescriptorSetInlineUniformBlockEXT
           (32)
{-# LINE 130 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
           8
{-# LINE 131 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 133 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 138 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dataSize" Word32 'False
                                                  (16)
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pData" (Ptr Void) 'False
                                                   (24)
{-# LINE 148 "src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkWriteDescriptorSet] -- ' closing tick for hsc2hs