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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
       (VkComputePipelineCreateInfo) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineCreateFlags)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkPipeline, VkPipelineLayout)
import Graphics.Vulkan.Types.Struct.Pipeline    (VkPipelineShaderStageCreateInfo)

-- | > typedef struct VkComputePipelineCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkPipelineCreateFlags  flags;
--   >     VkPipelineShaderStageCreateInfo stage;
--   >     VkPipelineLayout       layout;
--   >     VkPipeline      basePipelineHandle;
--   >     int32_t                basePipelineIndex;
--   > } VkComputePipelineCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkComputePipelineCreateInfo VkComputePipelineCreateInfo registry at www.khronos.org>
type VkComputePipelineCreateInfo =
     VkStruct VkComputePipelineCreateInfo' -- ' closing tick for hsc2hs

data VkComputePipelineCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkComputePipelineCreateInfo where
    type StructRep VkComputePipelineCreateInfo =
         'StructMeta "VkComputePipelineCreateInfo" -- ' closing tick for hsc2hs
           VkComputePipelineCreateInfo
           (96)
{-# LINE 38 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
           8
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 41 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 46 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkPipelineCreateFlags 'True
                                                             (16)
{-# LINE 51 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stage" VkPipelineShaderStageCreateInfo 'False
                (24)
{-# LINE 56 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "layout" VkPipelineLayout 'False
                                                          (72)
{-# LINE 61 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "basePipelineHandle" VkPipeline 'True
                                                               (80)
{-# LINE 66 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "basePipelineIndex" Int32 'False
                                                          (88)
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.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