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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Cmd
       (VkCmdProcessCommandsInfoNVX, VkCmdReserveSpaceForCommandsInfoNVX)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
import Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
import Graphics.Vulkan.Types.Handles                 (VkBuffer, VkCommandBuffer, VkIndirectCommandsLayoutNVX,
                                                      VkObjectTableNVX)
import Graphics.Vulkan.Types.Struct.IndirectCommands (VkIndirectCommandsTokenNVX)

-- | > typedef struct VkCmdProcessCommandsInfoNVX {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkObjectTableNVX                                         objectTable;
--   >     VkIndirectCommandsLayoutNVX                              indirectCommandsLayout;
--   >     uint32_t                                                 indirectCommandsTokenCount;
--   >     const VkIndirectCommandsTokenNVX*       pIndirectCommandsTokens;
--   >     uint32_t                                                 maxSequencesCount;
--   >     VkCommandBuffer                          targetCommandBuffer;
--   >     VkBuffer                                 sequencesCountBuffer;
--   >     VkDeviceSize                             sequencesCountOffset;
--   >     VkBuffer                                 sequencesIndexBuffer;
--   >     VkDeviceSize                             sequencesIndexOffset;
--   > } VkCmdProcessCommandsInfoNVX;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCmdProcessCommandsInfoNVX VkCmdProcessCommandsInfoNVX registry at www.khronos.org>
type VkCmdProcessCommandsInfoNVX =
     VkStruct VkCmdProcessCommandsInfoNVX' -- ' closing tick for hsc2hs

data VkCmdProcessCommandsInfoNVX' -- ' closing tick for hsc2hs

instance VulkanMarshal VkCmdProcessCommandsInfoNVX where
    type StructRep VkCmdProcessCommandsInfoNVX =
         'StructMeta "VkCmdProcessCommandsInfoNVX" -- ' closing tick for hsc2hs
           VkCmdProcessCommandsInfoNVX
           (96)
{-# LINE 45 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
           8
{-# LINE 46 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 48 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 53 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "objectTable" VkObjectTableNVX 'False
                                                               (16)
{-# LINE 58 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indirectCommandsLayout" VkIndirectCommandsLayoutNVX -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 64 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indirectCommandsTokenCount" Word32 'False
                                                                    (32)
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pIndirectCommandsTokens" -- ' closing tick for hsc2hs
                (Ptr VkIndirectCommandsTokenNVX)
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 76 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxSequencesCount" Word32 'False
                                                           (48)
{-# LINE 81 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "targetCommandBuffer" VkCommandBuffer 'True
                                                                     (56)
{-# LINE 86 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sequencesCountBuffer" VkBuffer 'True
                                                               (64)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sequencesCountOffset" VkDeviceSize 'True
                                                                   (72)
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sequencesIndexBuffer" VkBuffer 'True
                                                               (80)
{-# LINE 101 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sequencesIndexOffset" VkDeviceSize 'True
                                                                   (88)
{-# LINE 106 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.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 VkCmdReserveSpaceForCommandsInfoNVX {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkObjectTableNVX                                         objectTable;
--   >     VkIndirectCommandsLayoutNVX                              indirectCommandsLayout;
--   >     uint32_t                                                 maxSequencesCount;
--   > } VkCmdReserveSpaceForCommandsInfoNVX;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCmdReserveSpaceForCommandsInfoNVX VkCmdReserveSpaceForCommandsInfoNVX registry at www.khronos.org>
type VkCmdReserveSpaceForCommandsInfoNVX =
     VkStruct VkCmdReserveSpaceForCommandsInfoNVX' -- ' closing tick for hsc2hs

data VkCmdReserveSpaceForCommandsInfoNVX' -- ' closing tick for hsc2hs

instance VulkanMarshal VkCmdReserveSpaceForCommandsInfoNVX where
    type StructRep VkCmdReserveSpaceForCommandsInfoNVX =
         'StructMeta "VkCmdReserveSpaceForCommandsInfoNVX" -- ' closing tick for hsc2hs
           VkCmdReserveSpaceForCommandsInfoNVX
           (40)
{-# LINE 132 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
           8
{-# LINE 133 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 135 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 140 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "objectTable" VkObjectTableNVX 'False
                                                               (16)
{-# LINE 145 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indirectCommandsLayout" VkIndirectCommandsLayoutNVX -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 151 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "maxSequencesCount" Word32 'False
                                                           (32)
{-# LINE 156 "src-gen/Graphics/Vulkan/Types/Struct/Cmd.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