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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Graphics
       (VkGraphicsPipelineShaderGroupsCreateInfoNV,
        VkGraphicsShaderGroupCreateInfoNV)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkPipeline)
import Graphics.Vulkan.Types.Struct.Pipeline    (VkGraphicsPipelineCreateInfo,
                                                 VkPipelineShaderStageCreateInfo,
                                                 VkPipelineTessellationStateCreateInfo,
                                                 VkPipelineVertexInputStateCreateInfo)

-- | > typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
--   >     VkStructureType sType;
--   >     const void*                                                pNext;
--   >     uint32_t                                                   groupCount;
--   >     const VkGraphicsShaderGroupCreateInfoNV*  pGroups;
--   >     uint32_t                                   pipelineCount;
--   >     const VkPipeline*                      pPipelines;
--   > } VkGraphicsPipelineShaderGroupsCreateInfoNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkGraphicsPipelineShaderGroupsCreateInfoNV VkGraphicsPipelineShaderGroupsCreateInfoNV registry at www.khronos.org>
type VkGraphicsPipelineShaderGroupsCreateInfoNV =
     VkStruct VkGraphicsPipelineShaderGroupsCreateInfoNV' -- ' closing tick for hsc2hs

data VkGraphicsPipelineShaderGroupsCreateInfoNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkGraphicsPipelineShaderGroupsCreateInfoNV
         where
    type StructRep VkGraphicsPipelineShaderGroupsCreateInfoNV =
         'StructMeta "VkGraphicsPipelineShaderGroupsCreateInfoNV" -- ' closing tick for hsc2hs
           VkGraphicsPipelineShaderGroupsCreateInfoNV
           (48)
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
           8
{-# LINE 43 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 45 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 50 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "groupCount" Word32 'False 
                                                    (16)
{-# LINE 55 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pGroups" (Ptr VkGraphicsShaderGroupCreateInfoNV) -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 61 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pipelineCount" Word32 'True 
                                                      (32)
{-# LINE 66 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pPipelines" (Ptr VkPipeline) 'False 
                                                              (40)
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkGraphicsPipelineCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkGraphicsShaderGroupCreateInfoNV {
--   >     VkStructureType sType;
--   >     const void*                                                pNext;
--   >     uint32_t                                                   stageCount;
--   >     const VkPipelineShaderStageCreateInfo*    pStages;
--   >     const VkPipelineVertexInputStateCreateInfo*                pVertexInputState;
--   >     const VkPipelineTessellationStateCreateInfo*               pTessellationState;
--   > } VkGraphicsShaderGroupCreateInfoNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkGraphicsShaderGroupCreateInfoNV VkGraphicsShaderGroupCreateInfoNV registry at www.khronos.org>
type VkGraphicsShaderGroupCreateInfoNV =
     VkStruct VkGraphicsShaderGroupCreateInfoNV' -- ' closing tick for hsc2hs

data VkGraphicsShaderGroupCreateInfoNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkGraphicsShaderGroupCreateInfoNV where
    type StructRep VkGraphicsShaderGroupCreateInfoNV =
         'StructMeta "VkGraphicsShaderGroupCreateInfoNV" -- ' closing tick for hsc2hs
           VkGraphicsShaderGroupCreateInfoNV
           (48)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
           8
{-# LINE 99 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 101 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 106 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stageCount" Word32 'False 
                                                    (16)
{-# LINE 111 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pStages" (Ptr VkPipelineShaderStageCreateInfo) 'False
                (24)
{-# LINE 116 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pVertexInputState" -- ' closing tick for hsc2hs
                (Ptr VkPipelineVertexInputStateCreateInfo)
                'True -- ' closing tick for hsc2hs
                (32)
{-# LINE 123 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pTessellationState" -- ' closing tick for hsc2hs
                (Ptr VkPipelineTessellationStateCreateInfo)
                'True -- ' closing tick for hsc2hs
                (40)
{-# LINE 130 "src-gen/Graphics/Vulkan/Types/Struct/Graphics.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