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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.TimelineSemaphoreSubmitInfo
       (VkTimelineSemaphoreSubmitInfo, VkTimelineSemaphoreSubmitInfoKHR)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Struct.Bind        (VkBindSparseInfo)
import Graphics.Vulkan.Types.Struct.SubmitInfo  (VkSubmitInfo)

-- | > typedef struct VkTimelineSemaphoreSubmitInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t         waitSemaphoreValueCount;
--   >     const uint64_t* pWaitSemaphoreValues;
--   >     uint32_t         signalSemaphoreValueCount;
--   >     const uint64_t* pSignalSemaphoreValues;
--   > } VkTimelineSemaphoreSubmitInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfo registry at www.khronos.org>
type VkTimelineSemaphoreSubmitInfo =
     VkStruct VkTimelineSemaphoreSubmitInfo' -- ' closing tick for hsc2hs

data VkTimelineSemaphoreSubmitInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkTimelineSemaphoreSubmitInfo where
    type StructRep VkTimelineSemaphoreSubmitInfo =
         'StructMeta "VkTimelineSemaphoreSubmitInfo" -- ' closing tick for hsc2hs
           VkTimelineSemaphoreSubmitInfo
           (48)
{-# LINE 37 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
           8
{-# LINE 38 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 40 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 45 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "waitSemaphoreValueCount" Word32 'True 
                                                                (16)
{-# LINE 50 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pWaitSemaphoreValues" (Ptr Word64) 'True 
                                                                   (24)
{-# LINE 55 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "signalSemaphoreValueCount" Word32 'True 
                                                                  (32)
{-# LINE 60 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSignalSemaphoreValues" (Ptr Word64) 'True 
                                                                     (40)
{-# LINE 65 "src-gen/Graphics/Vulkan/Types/Struct/TimelineSemaphoreSubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkSubmitInfo, VkBindSparseInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkTimelineSemaphoreSubmitInfo`
type VkTimelineSemaphoreSubmitInfoKHR =
     VkTimelineSemaphoreSubmitInfo