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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Semaphore
       (VkSemaphoreCreateInfo, VkSemaphoreGetFdInfoKHR) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Bitmasks           (VkSemaphoreCreateFlags)
import Graphics.Vulkan.Types.Enum.External      (VkExternalSemaphoreHandleTypeFlagBits)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkSemaphore)

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

data VkSemaphoreCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSemaphoreCreateInfo where
    type StructRep VkSemaphoreCreateInfo =
         'StructMeta "VkSemaphoreCreateInfo" VkSemaphoreCreateInfo  -- ' closing tick for hsc2hs
                                                                   (24)
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
           8
{-# LINE 33 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 35 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 40 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkSemaphoreCreateFlags 'True
                                                              (16)
{-# LINE 45 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.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 VkSemaphoreGetFdInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkSemaphore                      semaphore;
--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
--   > } VkSemaphoreGetFdInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreGetFdInfoKHR VkSemaphoreGetFdInfoKHR registry at www.khronos.org>
type VkSemaphoreGetFdInfoKHR = VkStruct VkSemaphoreGetFdInfoKHR' -- ' closing tick for hsc2hs

data VkSemaphoreGetFdInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSemaphoreGetFdInfoKHR where
    type StructRep VkSemaphoreGetFdInfoKHR =
         'StructMeta "VkSemaphoreGetFdInfoKHR" VkSemaphoreGetFdInfoKHR -- ' closing tick for hsc2hs
           (32)
{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
           8
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 76 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "semaphore" VkSemaphore 'False
                                                        (16)
{-# LINE 81 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "handleType" VkExternalSemaphoreHandleTypeFlagBits -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 87 "src-gen/Graphics/Vulkan/Types/Struct/Semaphore.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