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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.SubmitInfo (VkSubmitInfo) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineStageFlags)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkCommandBuffer, VkSemaphore)

-- | > typedef struct VkSubmitInfo {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     uint32_t       waitSemaphoreCount;
--   >     const VkSemaphore*     pWaitSemaphores;
--   >     const VkPipelineStageFlags*           pWaitDstStageMask;
--   >     uint32_t       commandBufferCount;
--   >     const VkCommandBuffer*     pCommandBuffers;
--   >     uint32_t       signalSemaphoreCount;
--   >     const VkSemaphore*     pSignalSemaphores;
--   > } VkSubmitInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubmitInfo VkSubmitInfo registry at www.khronos.org>
type VkSubmitInfo = VkStruct VkSubmitInfo' -- ' closing tick for hsc2hs

data VkSubmitInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSubmitInfo where
    type StructRep VkSubmitInfo =
         'StructMeta "VkSubmitInfo" VkSubmitInfo  -- ' closing tick for hsc2hs
                                                 (72)
{-# LINE 36 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
           8
{-# LINE 37 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.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/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "waitSemaphoreCount" Word32 'True
                                                           (16)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pWaitSemaphores" (Ptr VkSemaphore) 'False
                                                                    (24)
{-# LINE 54 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pWaitDstStageMask" (Ptr VkPipelineStageFlags) 'False
                (32)
{-# LINE 59 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "commandBufferCount" Word32 'True
                                                           (40)
{-# LINE 64 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pCommandBuffers" (Ptr VkCommandBuffer) 'False
                (48)
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "signalSemaphoreCount" Word32 'True
                                                             (56)
{-# LINE 74 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSignalSemaphores" (Ptr VkSemaphore) 'False
                                                                      (64)
{-# LINE 79 "src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.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