{-# LINE 1 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.CommandBuffer.Core (
allocateCs, freeCs, C, PtrC,
AllocateInfo, pattern AllocateInfo,
allocateInfoSType, allocateInfoPNext, allocateInfoCommandPool,
allocateInfoLevel, levelPrimary, allocateInfoCommandBufferCount,
begin, end, reset,
BeginInfo, pattern BeginInfo,
beginInfoSType, beginInfoPNext, beginInfoFlags,
beginInfoPInheritanceInfo,
InheritanceInfo, pattern InheritanceInfo,
inheritanceInfoSType, inheritanceInfoPNext,
inheritanceInfoRenderPass, inheritanceInfoSubpass,
inheritanceInfoFramebuffer, inheritanceInfoOcclusionQueryEnable,
inheritanceInfoQueryFlags, inheritanceInfoPipelineStatistics
) 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.RenderPass.Core as RenderPass
import qualified Gpu.Vulkan.Framebuffer.Core as Framebuffer
import qualified Gpu.Vulkan.CommandPool.Core as CommandPool
sTypeA, sTypeB, sTypeI :: Word32
{-# LINE 45 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
sTypeA = 40
{-# LINE 46 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
sTypeB = 42
{-# LINE 47 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
sTypeI = 41
{-# LINE 48 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
struct "AllocateInfo" (32)
{-# LINE 50 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
8 [
{-# LINE 51 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("sType", ''(), [| const $ pure () |],
[| \p _ -> (\hsc_ptr -> pokeByteOff hsc_ptr 0)
{-# LINE 53 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
p sTypeA |]),
("pNext", ''PtrVoid,
[| (\hsc_ptr -> peekByteOff hsc_ptr 8) |],
{-# LINE 56 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 8) |]),
{-# LINE 57 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("commandPool", ''CommandPool.C,
[| (\hsc_ptr -> peekByteOff hsc_ptr 16) |],
{-# LINE 59 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 16) |]),
{-# LINE 60 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("level", ''Word32,
{-# LINE 61 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 24) |],
{-# LINE 62 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 24) |]),
{-# LINE 63 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("commandBufferCount", ''Word32,
{-# LINE 64 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 28) |],
{-# LINE 65 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 28) |]) ]
{-# LINE 66 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[''Show, ''Storable]
levelPrimary :: Word32
{-# LINE 69 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
levelPrimary = 0
{-# LINE 70 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
data CTag
type C = Ptr CTag
type PtrC = Ptr C
foreign import ccall "vkAllocateCommandBuffers" allocateCs ::
Device.D -> Ptr AllocateInfo -> Ptr C -> IO Int32
{-# LINE 77 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
struct "InheritanceInfo" (56)
{-# LINE 79 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
8 [
{-# LINE 80 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("sType", ''(), [| const $ pure () |],
[| \p _ -> (\hsc_ptr -> pokeByteOff hsc_ptr 0)
{-# LINE 82 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
p sTypeI |]),
("pNext", ''PtrVoid,
[| (\hsc_ptr -> peekByteOff hsc_ptr 8) |],
{-# LINE 85 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 8) |]),
{-# LINE 86 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("renderPass", ''RenderPass.R,
[| (\hsc_ptr -> peekByteOff hsc_ptr 16) |],
{-# LINE 88 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 16) |]),
{-# LINE 89 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("subpass", ''Word32,
{-# LINE 90 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 24) |],
{-# LINE 91 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 24) |]),
{-# LINE 92 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("framebuffer", ''Framebuffer.F,
[| (\hsc_ptr -> peekByteOff hsc_ptr 32) |],
{-# LINE 94 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 32) |]),
{-# LINE 95 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("occlusionQueryEnable", ''Word32,
{-# LINE 96 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 40) |],
{-# LINE 98 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 40) |]),
{-# LINE 100 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("queryFlags", ''Word32,
{-# LINE 101 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 44) |],
{-# LINE 102 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 44) |]),
{-# LINE 103 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("pipelineStatistics", ''Word32,
{-# LINE 104 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 48) |],
{-# LINE 106 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 48) |]) ]
{-# LINE 108 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[''Show, ''Storable]
type PtrInheritanceInfo = Ptr InheritanceInfo
struct "BeginInfo" (32)
{-# LINE 113 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
8 [
{-# LINE 114 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("sType", ''(), [| const $ pure () |],
[| \p _ -> (\hsc_ptr -> pokeByteOff hsc_ptr 0)
{-# LINE 116 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
p sTypeB |]),
("pNext", ''PtrVoid,
[| (\hsc_ptr -> peekByteOff hsc_ptr 8) |],
{-# LINE 119 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 8) |]),
{-# LINE 120 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("flags", ''Word32,
{-# LINE 121 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 16) |],
{-# LINE 122 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 16) |]),
{-# LINE 123 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
("pInheritanceInfo", ''PtrInheritanceInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 24) |],
{-# LINE 125 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 24) |]) ]
{-# LINE 126 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
[''Show, ''Storable]
foreign import ccall "vkBeginCommandBuffer" begin ::
C -> Ptr BeginInfo -> IO Int32
{-# LINE 130 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
foreign import ccall "vkEndCommandBuffer" end :: C -> IO Int32
{-# LINE 132 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
foreign import ccall "vkResetCommandBuffer" reset ::
C -> Word32 -> IO Int32
{-# LINE 135 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}
foreign import ccall "vkFreeCommandBuffers" freeCs ::
Device.D -> CommandPool.C -> Word32 -> Ptr C -> IO ()
{-# LINE 138 "src/Gpu/Vulkan/CommandBuffer/Core.hsc" #-}