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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Debug
       (VkDebugMarkerMarkerInfoEXT, VkDebugMarkerObjectNameInfoEXT,
        VkDebugMarkerObjectTagInfoEXT, VkDebugReportCallbackCreateInfoEXT,
        VkDebugUtilsObjectTagInfoEXT)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.Debug                (VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT)
import Graphics.Vulkan.Types.Enum.ObjectType           (VkObjectType)
import Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
import Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugReportCallbackEXT)
import Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)

-- | > typedef struct VkDebugMarkerMarkerInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     const char* pMarkerName;
--   >     float            color[4];
--   > } VkDebugMarkerMarkerInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDebugMarkerMarkerInfoEXT VkDebugMarkerMarkerInfoEXT registry at www.khronos.org>
type VkDebugMarkerMarkerInfoEXT =
     VkStruct VkDebugMarkerMarkerInfoEXT' -- ' closing tick for hsc2hs

data VkDebugMarkerMarkerInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDebugMarkerMarkerInfoEXT where
    type StructRep VkDebugMarkerMarkerInfoEXT =
         'StructMeta "VkDebugMarkerMarkerInfoEXT" VkDebugMarkerMarkerInfoEXT -- ' closing tick for hsc2hs
           (40)
{-# LINE 38 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           8
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 41 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 46 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pMarkerName" CString 'False 
                                                      (16)
{-# LINE 51 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "color" ( -- ' closing tick for hsc2hs
                                  Float
{-# LINE 56 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                                  ) 'True  -- ' closing tick for hsc2hs
                                          (24)
{-# LINE 58 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                4
                '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 VkDebugMarkerObjectNameInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDebugReportObjectTypeEXT       objectType;
--   >     uint64_t                         object;
--   >     const char* pObjectName;
--   > } VkDebugMarkerObjectNameInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDebugMarkerObjectNameInfoEXT VkDebugMarkerObjectNameInfoEXT registry at www.khronos.org>
type VkDebugMarkerObjectNameInfoEXT =
     VkStruct VkDebugMarkerObjectNameInfoEXT' -- ' closing tick for hsc2hs

data VkDebugMarkerObjectNameInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDebugMarkerObjectNameInfoEXT where
    type StructRep VkDebugMarkerObjectNameInfoEXT =
         'StructMeta "VkDebugMarkerObjectNameInfoEXT" -- ' closing tick for hsc2hs
           VkDebugMarkerObjectNameInfoEXT
           (40)
{-# LINE 84 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           8
{-# LINE 85 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 87 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 92 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "objectType" VkDebugReportObjectTypeEXT 'False
                (16)
{-# LINE 97 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "object" Word64 'False 
                                                (24)
{-# LINE 102 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pObjectName" CString 'False 
                                                      (32)
{-# LINE 107 "src-gen/Graphics/Vulkan/Types/Struct/Debug.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 VkDebugMarkerObjectTagInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDebugReportObjectTypeEXT       objectType;
--   >     uint64_t                         object;
--   >     uint64_t                         tagName;
--   >     size_t                           tagSize;
--   >     const void*        pTag;
--   > } VkDebugMarkerObjectTagInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDebugMarkerObjectTagInfoEXT VkDebugMarkerObjectTagInfoEXT registry at www.khronos.org>
type VkDebugMarkerObjectTagInfoEXT =
     VkStruct VkDebugMarkerObjectTagInfoEXT' -- ' closing tick for hsc2hs

data VkDebugMarkerObjectTagInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDebugMarkerObjectTagInfoEXT where
    type StructRep VkDebugMarkerObjectTagInfoEXT =
         'StructMeta "VkDebugMarkerObjectTagInfoEXT" -- ' closing tick for hsc2hs
           VkDebugMarkerObjectTagInfoEXT
           (56)
{-# LINE 135 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           8
{-# LINE 136 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 138 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "objectType" VkDebugReportObjectTypeEXT 'False
                (16)
{-# LINE 148 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "object" Word64 'False 
                                                (24)
{-# LINE 153 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "tagName" Word64 'False 
                                                 (32)
{-# LINE 158 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "tagSize" CSize 'False 
                                                (40)
{-# LINE 163 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pTag" (Ptr Void) 'False 
                                                  (48)
{-# LINE 168 "src-gen/Graphics/Vulkan/Types/Struct/Debug.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 VkDebugReportCallbackCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDebugReportFlagsEXT            flags;
--   >     PFN_vkDebugReportCallbackEXT     pfnCallback;
--   >     void*            pUserData;
--   > } VkDebugReportCallbackCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDebugReportCallbackCreateInfoEXT VkDebugReportCallbackCreateInfoEXT registry at www.khronos.org>
type VkDebugReportCallbackCreateInfoEXT =
     VkStruct VkDebugReportCallbackCreateInfoEXT' -- ' closing tick for hsc2hs

data VkDebugReportCallbackCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDebugReportCallbackCreateInfoEXT where
    type StructRep VkDebugReportCallbackCreateInfoEXT =
         'StructMeta "VkDebugReportCallbackCreateInfoEXT" -- ' closing tick for hsc2hs
           VkDebugReportCallbackCreateInfoEXT
           (40)
{-# LINE 194 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           8
{-# LINE 195 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 197 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 202 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDebugReportFlagsEXT 'True 
                                                             (16)
{-# LINE 207 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pfnCallback" PFN_vkDebugReportCallbackEXT 'False
                (24)
{-# LINE 212 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pUserData" (Ptr Void) 'True 
                                                      (32)
{-# LINE 217 "src-gen/Graphics/Vulkan/Types/Struct/Debug.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

-- | > typedef struct VkDebugUtilsObjectTagInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                            pNext;
--   >     VkObjectType                           objectType;
--   >     uint64_t                               objectHandle;
--   >     uint64_t                               tagName;
--   >     size_t                                 tagSize;
--   >     const void*              pTag;
--   > } VkDebugUtilsObjectTagInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDebugUtilsObjectTagInfoEXT VkDebugUtilsObjectTagInfoEXT registry at www.khronos.org>
type VkDebugUtilsObjectTagInfoEXT =
     VkStruct VkDebugUtilsObjectTagInfoEXT' -- ' closing tick for hsc2hs

data VkDebugUtilsObjectTagInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDebugUtilsObjectTagInfoEXT where
    type StructRep VkDebugUtilsObjectTagInfoEXT =
         'StructMeta "VkDebugUtilsObjectTagInfoEXT" -- ' closing tick for hsc2hs
           VkDebugUtilsObjectTagInfoEXT
           (56)
{-# LINE 245 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           8
{-# LINE 246 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 248 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 253 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "objectType" VkObjectType 'False 
                                                          (16)
{-# LINE 258 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "objectHandle" Word64 'False 
                                                      (24)
{-# LINE 263 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "tagName" Word64 'False 
                                                 (32)
{-# LINE 268 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "tagSize" CSize 'False 
                                                (40)
{-# LINE 273 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pTag" (Ptr Void) 'False 
                                                  (48)
{-# LINE 278 "src-gen/Graphics/Vulkan/Types/Struct/Debug.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