{-# LINE 1 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.Pipeline.Graphics.Core (
create, CreateInfo, pattern CreateInfo,
createInfoSType, createInfoPNext, createInfoFlags,
createInfoStageCount, createInfoPStages,
createInfoPVertexInputState, createInfoPInputAssemblyState,
createInfoPTessellationState, createInfoPViewportState,
createInfoPRasterizationState, createInfoPMultisampleState,
createInfoPDepthStencilState, createInfoPColorBlendState,
createInfoPDynamicState,
createInfoLayout, createInfoRenderPass, createInfoSubpass,
createInfoBasePipelineHandle, createInfoBasePipelineIndex
) where
import Foreign.Ptr
import Foreign.Storable
import Foreign.C.Struct
import Foreign.C.Struct.TypeSynonyms
import Data.Word
import Data.Int
import qualified Gpu.Vulkan.Device.Core as Device
import qualified Gpu.Vulkan.Pipeline.Core as Pipeline
import qualified Gpu.Vulkan.Pipeline.ShaderStage.Core as ShaderStage
import qualified Gpu.Vulkan.Pipeline.VertexInputState.Core as VertexInputState
import qualified Gpu.Vulkan.Pipeline.InputAssemblyState.Core as InputAssemblyState
import qualified Gpu.Vulkan.Pipeline.TessellationState.Core as TessellationState
import qualified Gpu.Vulkan.Pipeline.ViewportState.Core as ViewportState
import qualified Gpu.Vulkan.Pipeline.RasterizationState.Core as RasterizationState
import qualified Gpu.Vulkan.Pipeline.MultisampleState.Core as MultisampleState
import qualified Gpu.Vulkan.Pipeline.DepthStencilState.Core as DepthStencilState
import qualified Gpu.Vulkan.Pipeline.ColorBlendState.Core as ColorBlendState
import qualified Gpu.Vulkan.Pipeline.DynamicState.Core as DynamicState
import qualified Gpu.Vulkan.PipelineLayout.Core as Layout
import qualified Gpu.Vulkan.RenderPass.Core as RenderPass
import qualified Gpu.Vulkan.PipelineCache.Core as Cache
import qualified Gpu.Vulkan.AllocationCallbacks.Core as AllocationCallbacks
sType :: Word32
{-# LINE 51 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
sType = 28
{-# LINE 52 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
struct "CreateInfo" (144)
{-# LINE 54 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
8 [
{-# LINE 55 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("sType", ''(), [| const $ pure () |],
[| \p _ -> (\hsc_ptr -> pokeByteOff hsc_ptr 0)
{-# LINE 57 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
p sType |]),
("pNext", ''PtrVoid,
[| (\hsc_ptr -> peekByteOff hsc_ptr 8) |],
{-# LINE 60 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 8) |]),
{-# LINE 61 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("flags", ''Word32,
{-# LINE 62 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 16) |],
{-# LINE 63 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 16) |]),
{-# LINE 64 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("stageCount", ''Word32,
{-# LINE 65 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 20) |],
{-# LINE 66 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 20) |]),
{-# LINE 67 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pStages", ''ShaderStage.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 24) |],
{-# LINE 69 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 24) |]),
{-# LINE 70 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pVertexInputState", ''VertexInputState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 32) |],
{-# LINE 72 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 32) |]),
{-# LINE 73 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pInputAssemblyState", ''InputAssemblyState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 40) |],
{-# LINE 75 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 40) |]),
{-# LINE 77 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pTessellationState", ''TessellationState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 48) |],
{-# LINE 79 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 48) |]),
{-# LINE 80 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pViewportState", ''ViewportState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 56) |],
{-# LINE 82 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 56) |]),
{-# LINE 83 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pRasterizationState", ''RasterizationState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 64) |],
{-# LINE 85 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 64) |]),
{-# LINE 87 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pMultisampleState", ''MultisampleState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 72) |],
{-# LINE 89 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 72) |]),
{-# LINE 90 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pDepthStencilState", ''DepthStencilState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 80) |],
{-# LINE 92 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 80) |]),
{-# LINE 93 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pColorBlendState", ''ColorBlendState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 88) |],
{-# LINE 95 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 88) |]),
{-# LINE 96 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("pDynamicState", ''DynamicState.PtrCreateInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 96) |],
{-# LINE 98 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 96) |]),
{-# LINE 99 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("layout", ''Layout.P,
[| (\hsc_ptr -> peekByteOff hsc_ptr 104) |],
{-# LINE 101 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 104) |]),
{-# LINE 102 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("renderPass", ''RenderPass.R,
[| (\hsc_ptr -> peekByteOff hsc_ptr 112) |],
{-# LINE 104 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 112) |]),
{-# LINE 105 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("subpass", ''Word32,
{-# LINE 106 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 120) |],
{-# LINE 107 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 120) |]),
{-# LINE 108 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("basePipelineHandle", ''Pipeline.P,
[| (\hsc_ptr -> peekByteOff hsc_ptr 128) |],
{-# LINE 110 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 128) |]),
{-# LINE 111 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
("basePipelineIndex", ''Int32,
{-# LINE 112 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 136) |],
{-# LINE 113 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 136) |]) ]
{-# LINE 114 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
[''Show, ''Storable]
foreign import ccall "vkCreateGraphicsPipelines" create ::
Device.D -> Cache.P -> Word32 -> Ptr CreateInfo ->
{-# LINE 118 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}
Ptr AllocationCallbacks.A -> Ptr Pipeline.P -> IO Int32
{-# LINE 119 "src/Gpu/Vulkan/Pipeline/Graphics/Core.hsc" #-}