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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
       (VkDebugUtilsMessengerCreateInfoEXT) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Bitmasks                  (VkDebugUtilsMessengerCreateFlagsEXT)
import Graphics.Vulkan.Types.Enum.Debug                (VkDebugUtilsMessageSeverityFlagsEXT,
                                                        VkDebugUtilsMessageTypeFlagsEXT)
import Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
import Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugUtilsMessengerCallbackEXT)
import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)

-- | > typedef struct VkDebugUtilsMessengerCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                                          pNext;
--   >     VkDebugUtilsMessengerCreateFlagsEXT  flags;
--   >     VkDebugUtilsMessageSeverityFlagsEXT                  messageSeverity;
--   >     VkDebugUtilsMessageTypeFlagsEXT                      messageType;
--   >     PFN_vkDebugUtilsMessengerCallbackEXT                 pfnUserCallback;
--   >     void*                                pUserData;
--   > } VkDebugUtilsMessengerCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDebugUtilsMessengerCreateInfoEXT VkDebugUtilsMessengerCreateInfoEXT registry at www.khronos.org>
type VkDebugUtilsMessengerCreateInfoEXT =
     VkStruct VkDebugUtilsMessengerCreateInfoEXT' -- ' closing tick for hsc2hs

data VkDebugUtilsMessengerCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDebugUtilsMessengerCreateInfoEXT where
    type StructRep VkDebugUtilsMessengerCreateInfoEXT =
         'StructMeta "VkDebugUtilsMessengerCreateInfoEXT" -- ' closing tick for hsc2hs
           VkDebugUtilsMessengerCreateInfoEXT
           (48)
{-# LINE 40 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
           8
{-# LINE 41 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 43 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 48 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDebugUtilsMessengerCreateFlagsEXT 'True
                (16)
{-# LINE 53 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "messageSeverity" VkDebugUtilsMessageSeverityFlagsEXT -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (20)
{-# LINE 59 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "messageType" VkDebugUtilsMessageTypeFlagsEXT 'False
                (24)
{-# LINE 64 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pfnUserCallback" PFN_vkDebugUtilsMessengerCallbackEXT -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (32)
{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pUserData" (Ptr Void) 'True 
                                                      (40)
{-# LINE 75 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs