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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Specialization
       (VkSpecializationInfo, VkSpecializationMapEntry) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal

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

data VkSpecializationInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSpecializationInfo where
    type StructRep VkSpecializationInfo =
         'StructMeta "VkSpecializationInfo" VkSpecializationInfo  -- ' closing tick for hsc2hs
                                                                 (32)
{-# LINE 29 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
           8
{-# LINE 30 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
           '[('FieldMeta "mapEntryCount" Word32 'True  -- ' closing tick for hsc2hs
                                                      (0)
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pMapEntries" (Ptr VkSpecializationMapEntry) 'False
                (8)
{-# LINE 37 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dataSize" CSize 'True 
                                                (16)
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pData" (Ptr Void) 'False 
                                                   (24)
{-# LINE 47 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.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 VkSpecializationMapEntry {
--   >     uint32_t                     constantID;
--   >     uint32_t                     offset;
--   >     size_t size;
--   > } VkSpecializationMapEntry;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkSpecializationMapEntry VkSpecializationMapEntry registry at www.khronos.org>
type VkSpecializationMapEntry = VkStruct VkSpecializationMapEntry' -- ' closing tick for hsc2hs

data VkSpecializationMapEntry' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSpecializationMapEntry where
    type StructRep VkSpecializationMapEntry =
         'StructMeta "VkSpecializationMapEntry" VkSpecializationMapEntry -- ' closing tick for hsc2hs
           (16)
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
           8
{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
           '[('FieldMeta "constantID" Word32 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 72 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" Word32 'False 
                                                (4)
{-# LINE 77 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" CSize 'False 
                                             (8)
{-# LINE 82 "src-gen/Graphics/Vulkan/Types/Struct/Specialization.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