{-# LINE 1 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LAnGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.Queue.Core (
Q, submit, submit2, waitIdle,
bindSparse, BindSparseInfo, pattern BindSparseInfo,
bindSparseInfoSType, bindSparseInfoPNext,
bindSparseInfoWaitSemaphoreCount, bindSparseInfoPWaitSemaphores,
bindSparseInfoBufferBindCount, bindSparseInfoPBufferBinds,
bindSparseInfoImageOpaqueBindCount, bindSparseInfoPImageOpaqueBinds,
bindSparseInfoImageBindCount, bindSparseInfoPImageBinds,
bindSparseInfoSignalSemaphoreCount, bindSparseInfoPSignalSemaphores
) where
import Foreign.Ptr
import Foreign.Storable
import Foreign.C.Struct
import Foreign.C.Struct.TypeSynonyms
import Data.Word
import Data.Int
import Gpu.Vulkan.Core
import {-# SOURCE #-} qualified Gpu.Vulkan.Fence.Core as Fence
import {-# SOURCE #-} Gpu.Vulkan.Semaphore.Core qualified as Semaphore
import Gpu.Vulkan.Sparse.Buffer.Core qualified as Spr.Bffr
import Gpu.Vulkan.Sparse.Image.Core qualified as Spr.Img
data QTag
type Q = Ptr QTag
foreign import ccall "vkQueueSubmit" submit ::
Q -> Word32 -> Ptr SubmitInfo -> Fence.F ->
{-# LINE 47 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
IO Int32
{-# LINE 48 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
foreign import ccall "vkQueueWaitIdle" waitIdle :: Q -> IO Int32
{-# LINE 50 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
struct "BindSparseInfo" (96) 8 [
{-# LINE 52 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("sType", ''(), [| const $ pure () |],
[| \p _ -> (\hsc_ptr -> pokeByteOff hsc_ptr 0) p
{-# LINE 54 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
(7 ::
{-# LINE 55 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
Word32) |]),
{-# LINE 56 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("pNext", ''PtrVoid,
[| (\hsc_ptr -> peekByteOff hsc_ptr 8) |],
{-# LINE 58 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 8) |]),
{-# LINE 59 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("waitSemaphoreCount", ''Word32,
{-# LINE 60 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 16) |],
{-# LINE 61 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 16) |]),
{-# LINE 62 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("pWaitSemaphores", ''Semaphore.PtrS,
[| (\hsc_ptr -> peekByteOff hsc_ptr 24) |],
{-# LINE 64 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 24) |]),
{-# LINE 65 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("bufferBindCount", ''Word32,
{-# LINE 66 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 32) |],
{-# LINE 67 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 32) |]),
{-# LINE 68 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("pBufferBinds", ''Spr.Bffr.PtrMemoryBindInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 40) |],
{-# LINE 70 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 40) |]),
{-# LINE 71 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("imageOpaqueBindCount", ''Word32,
{-# LINE 72 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 48) |],
{-# LINE 73 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 48) |]),
{-# LINE 74 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("pImageOpaqueBinds", ''Spr.Img.PtrOpaqueMemoryBindInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 56) |],
{-# LINE 76 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 56) |]),
{-# LINE 77 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("imageBindCount", ''Word32,
{-# LINE 78 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 64) |],
{-# LINE 79 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 64) |]),
{-# LINE 80 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("pImageBinds", ''Spr.Img.PtrMemoryBindInfo,
[| (\hsc_ptr -> peekByteOff hsc_ptr 72) |],
{-# LINE 82 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 72) |]),
{-# LINE 83 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("signalSemaphoreCount", ''Word32,
{-# LINE 84 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> peekByteOff hsc_ptr 80) |],
{-# LINE 85 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 80) |]),
{-# LINE 86 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
("pSignalSemaphores", ''Semaphore.PtrS,
[| (\hsc_ptr -> peekByteOff hsc_ptr 88) |],
{-# LINE 88 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[| (\hsc_ptr -> pokeByteOff hsc_ptr 88) |]) ]
{-# LINE 89 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
[''Show, ''Storable]
foreign import ccall "vkQueueBindSparse" bindSparse ::
Q -> Word32 -> Ptr BindSparseInfo -> Fence.F ->
{-# LINE 93 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
IO Int32
{-# LINE 94 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
foreign import ccall "vkQueueSubmit2" submit2 ::
Q -> Word32 -> Ptr SubmitInfo2 -> Fence.F ->
{-# LINE 97 "src/Gpu/Vulkan/Queue/Core.hsc" #-}
IO Int32
{-# LINE 98 "src/Gpu/Vulkan/Queue/Core.hsc" #-}