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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.DrawInd
       (VkDrawIndexedIndirectCommand, VkDrawIndirectCommand) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal

-- | > typedef struct VkDrawIndexedIndirectCommand {
--   >     uint32_t               indexCount;
--   >     uint32_t               instanceCount;
--   >     uint32_t               firstIndex;
--   >     int32_t                vertexOffset;
--   >     uint32_t               firstInstance;
--   > } VkDrawIndexedIndirectCommand;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDrawIndexedIndirectCommand VkDrawIndexedIndirectCommand registry at www.khronos.org>
type VkDrawIndexedIndirectCommand =
     VkStruct VkDrawIndexedIndirectCommand' -- ' closing tick for hsc2hs

data VkDrawIndexedIndirectCommand' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDrawIndexedIndirectCommand where
    type StructRep VkDrawIndexedIndirectCommand =
         'StructMeta "VkDrawIndexedIndirectCommand" -- ' closing tick for hsc2hs
           VkDrawIndexedIndirectCommand
           (20)
{-# LINE 32 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
           4
{-# LINE 33 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
           '[('FieldMeta "indexCount" Word32 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 35 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "instanceCount" Word32 'False
                                                       (4)
{-# LINE 40 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "firstIndex" Word32 'False
                                                    (8)
{-# LINE 45 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "vertexOffset" Int32 'False
                                                     (12)
{-# LINE 50 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "firstInstance" Word32 'False
                                                       (16)
{-# LINE 55 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.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 VkDrawIndirectCommand {
--   >     uint32_t               vertexCount;
--   >     uint32_t               instanceCount;
--   >     uint32_t               firstVertex;
--   >     uint32_t               firstInstance;
--   > } VkDrawIndirectCommand;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDrawIndirectCommand VkDrawIndirectCommand registry at www.khronos.org>
type VkDrawIndirectCommand = VkStruct VkDrawIndirectCommand' -- ' closing tick for hsc2hs

data VkDrawIndirectCommand' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDrawIndirectCommand where
    type StructRep VkDrawIndirectCommand =
         'StructMeta "VkDrawIndirectCommand" VkDrawIndirectCommand  -- ' closing tick for hsc2hs
                                                                   (16)
{-# LINE 78 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
           4
{-# LINE 79 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
           '[('FieldMeta "vertexCount" Word32 'False  -- ' closing tick for hsc2hs
                                                     (0)
{-# LINE 81 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "instanceCount" Word32 'False
                                                       (4)
{-# LINE 86 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "firstVertex" Word32 'False
                                                     (8)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "firstInstance" Word32 'False
                                                       (12)
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/DrawInd.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