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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.InstanceCreateInfo
       (VkInstanceCreateInfo) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Bitmasks               (VkInstanceCreateFlags)
import Graphics.Vulkan.Types.Enum.StructureType     (VkStructureType)
import Graphics.Vulkan.Types.Struct.ApplicationInfo (VkApplicationInfo)

-- | > typedef struct VkInstanceCreateInfo {
--   >     VkStructureType sType;
--   >     const void*     pNext;
--   >     VkInstanceCreateFlags  flags;
--   >     const VkApplicationInfo* pApplicationInfo;
--   >     uint32_t               enabledLayerCount;
--   >     const char* const*      ppEnabledLayerNames;
--   >     uint32_t               enabledExtensionCount;
--   >     const char* const*      ppEnabledExtensionNames;
--   > } VkInstanceCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkInstanceCreateInfo VkInstanceCreateInfo registry at www.khronos.org>
type VkInstanceCreateInfo = VkStruct VkInstanceCreateInfo' -- ' closing tick for hsc2hs

data VkInstanceCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkInstanceCreateInfo where
    type StructRep VkInstanceCreateInfo =
         'StructMeta "VkInstanceCreateInfo" VkInstanceCreateInfo  -- ' closing tick for hsc2hs
                                                                 (64)
{-# LINE 36 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
           8
{-# LINE 37 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkInstanceCreateFlags 'True 
                                                             (16)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pApplicationInfo" (Ptr VkApplicationInfo) 'True
                (24)
{-# LINE 54 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "enabledLayerCount" Word32 'True 
                                                          (32)
{-# LINE 59 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "ppEnabledLayerNames" (Ptr CString) 'False 
                                                                    (40)
{-# LINE 64 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "enabledExtensionCount" Word32 'True 
                                                              (48)
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "ppEnabledExtensionNames" (Ptr CString) 'False
                (56)
{-# LINE 74 "src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.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