{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_copy_memory_indirect ( cmdCopyMemoryIndirectKHR
, cmdCopyMemoryToImageIndirectKHR
, StridedDeviceAddressRangeKHR(..)
, CopyMemoryIndirectCommandKHR(..)
, CopyMemoryIndirectInfoKHR(..)
, CopyMemoryToImageIndirectCommandKHR(..)
, CopyMemoryToImageIndirectInfoKHR(..)
, PhysicalDeviceCopyMemoryIndirectFeaturesKHR(..)
, PhysicalDeviceCopyMemoryIndirectPropertiesKHR(..)
, AddressCopyFlagsKHR
, AddressCopyFlagBitsKHR( ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR
, ADDRESS_COPY_SPARSE_BIT_KHR
, ADDRESS_COPY_PROTECTED_BIT_KHR
, ..
)
, KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION
, pattern KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION
, KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME
, pattern KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME
) where
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import GHC.IO (throwIO)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import Numeric (showHex)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Core10.FundamentalTypes (DeviceAddress)
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMemoryIndirectKHR))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMemoryToImageIndirectKHR))
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.Core10.FundamentalTypes (Extent3D)
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Core10.Handles (Image)
import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
import Vulkan.Core10.FundamentalTypes (Offset3D)
import Vulkan.Core10.Enums.QueueFlagBits (QueueFlags)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyMemoryIndirectKHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ()
cmdCopyMemoryIndirectKHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyMemoryIndirectInfoKHR
-> io ()
cmdCopyMemoryIndirectKHR :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> CopyMemoryIndirectInfoKHR -> io ()
cmdCopyMemoryIndirectKHR CommandBuffer
commandBuffer
CopyMemoryIndirectInfoKHR
copyMemoryIndirectInfo = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMemoryIndirectKHRPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
vkCmdCopyMemoryIndirectKHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
pVkCmdCopyMemoryIndirectKHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
vkCmdCopyMemoryIndirectKHRPtr FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, Exception e) => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMemoryIndirectKHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyMemoryIndirectKHR' :: Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ()
vkCmdCopyMemoryIndirectKHR' = FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
-> Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ()
mkVkCmdCopyMemoryIndirectKHR FunPtr
(Ptr CommandBuffer_T -> Ptr CopyMemoryIndirectInfoKHR -> IO ())
vkCmdCopyMemoryIndirectKHRPtr
pCopyMemoryIndirectInfo <- ((Ptr CopyMemoryIndirectInfoKHR -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryIndirectInfoKHR)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMemoryIndirectInfoKHR -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryIndirectInfoKHR))
-> ((Ptr CopyMemoryIndirectInfoKHR -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryIndirectInfoKHR)
forall a b. (a -> b) -> a -> b
$ CopyMemoryIndirectInfoKHR
-> (Ptr CopyMemoryIndirectInfoKHR -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
CopyMemoryIndirectInfoKHR
-> (Ptr CopyMemoryIndirectInfoKHR -> IO b) -> IO b
withCStruct (CopyMemoryIndirectInfoKHR
copyMemoryIndirectInfo)
lift $ traceAroundEvent "vkCmdCopyMemoryIndirectKHR" (vkCmdCopyMemoryIndirectKHR'
(commandBufferHandle (commandBuffer))
pCopyMemoryIndirectInfo)
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyMemoryToImageIndirectKHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()
cmdCopyMemoryToImageIndirectKHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyMemoryToImageIndirectInfoKHR
-> io ()
cmdCopyMemoryToImageIndirectKHR :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> CopyMemoryToImageIndirectInfoKHR -> io ()
cmdCopyMemoryToImageIndirectKHR CommandBuffer
commandBuffer
CopyMemoryToImageIndirectInfoKHR
copyMemoryToImageIndirectInfo = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdCopyMemoryToImageIndirectKHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
vkCmdCopyMemoryToImageIndirectKHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
pVkCmdCopyMemoryToImageIndirectKHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
vkCmdCopyMemoryToImageIndirectKHRPtr FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, Exception e) => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdCopyMemoryToImageIndirectKHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyMemoryToImageIndirectKHR' :: Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()
vkCmdCopyMemoryToImageIndirectKHR' = FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
-> Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR
-> IO ()
mkVkCmdCopyMemoryToImageIndirectKHR FunPtr
(Ptr CommandBuffer_T
-> Ptr CopyMemoryToImageIndirectInfoKHR -> IO ())
vkCmdCopyMemoryToImageIndirectKHRPtr
pCopyMemoryToImageIndirectInfo <- ((Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryToImageIndirectInfoKHR)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryToImageIndirectInfoKHR))
-> ((Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()) -> IO ())
-> ContT () IO (Ptr CopyMemoryToImageIndirectInfoKHR)
forall a b. (a -> b) -> a -> b
$ CopyMemoryToImageIndirectInfoKHR
-> (Ptr CopyMemoryToImageIndirectInfoKHR -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
CopyMemoryToImageIndirectInfoKHR
-> (Ptr CopyMemoryToImageIndirectInfoKHR -> IO b) -> IO b
withCStruct (CopyMemoryToImageIndirectInfoKHR
copyMemoryToImageIndirectInfo)
lift $ traceAroundEvent "vkCmdCopyMemoryToImageIndirectKHR" (vkCmdCopyMemoryToImageIndirectKHR'
(commandBufferHandle (commandBuffer))
pCopyMemoryToImageIndirectInfo)
pure $ ()
data StridedDeviceAddressRangeKHR = StridedDeviceAddressRangeKHR
{
StridedDeviceAddressRangeKHR -> DeviceAddress
address :: DeviceAddress
,
StridedDeviceAddressRangeKHR -> DeviceAddress
size :: DeviceSize
,
StridedDeviceAddressRangeKHR -> DeviceAddress
stride :: DeviceSize
}
deriving (Typeable, StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool
(StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool)
-> (StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool)
-> Eq StridedDeviceAddressRangeKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool
== :: StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool
$c/= :: StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool
/= :: StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (StridedDeviceAddressRangeKHR)
#endif
deriving instance Show StridedDeviceAddressRangeKHR
instance ToCStruct StridedDeviceAddressRangeKHR where
withCStruct :: forall b.
StridedDeviceAddressRangeKHR
-> (Ptr StridedDeviceAddressRangeKHR -> IO b) -> IO b
withCStruct StridedDeviceAddressRangeKHR
x Ptr StridedDeviceAddressRangeKHR -> IO b
f = Int -> (Ptr StridedDeviceAddressRangeKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr StridedDeviceAddressRangeKHR -> IO b) -> IO b)
-> (Ptr StridedDeviceAddressRangeKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr StridedDeviceAddressRangeKHR
p -> Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO b -> IO b
forall b.
Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr StridedDeviceAddressRangeKHR
p StridedDeviceAddressRangeKHR
x (Ptr StridedDeviceAddressRangeKHR -> IO b
f Ptr StridedDeviceAddressRangeKHR
p)
pokeCStruct :: forall b.
Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO b -> IO b
pokeCStruct Ptr StridedDeviceAddressRangeKHR
p StridedDeviceAddressRangeKHR{DeviceAddress
address :: StridedDeviceAddressRangeKHR -> DeviceAddress
size :: StridedDeviceAddressRangeKHR -> DeviceAddress
stride :: StridedDeviceAddressRangeKHR -> DeviceAddress
address :: DeviceAddress
size :: DeviceAddress
stride :: DeviceAddress
..} IO b
f = do
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr StridedDeviceAddressRangeKHR
p Ptr StridedDeviceAddressRangeKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (DeviceAddress
address)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr StridedDeviceAddressRangeKHR
p Ptr StridedDeviceAddressRangeKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceSize)) (DeviceAddress
size)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr StridedDeviceAddressRangeKHR
p Ptr StridedDeviceAddressRangeKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceAddress
stride)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr StridedDeviceAddressRangeKHR -> IO b -> IO b
pokeZeroCStruct Ptr StridedDeviceAddressRangeKHR
p IO b
f = do
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr StridedDeviceAddressRangeKHR
p Ptr StridedDeviceAddressRangeKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr StridedDeviceAddressRangeKHR
p Ptr StridedDeviceAddressRangeKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct StridedDeviceAddressRangeKHR where
peekCStruct :: Ptr StridedDeviceAddressRangeKHR -> IO StridedDeviceAddressRangeKHR
peekCStruct Ptr StridedDeviceAddressRangeKHR
p = do
address <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr StridedDeviceAddressRangeKHR
p Ptr StridedDeviceAddressRangeKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress))
size <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))
stride <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
pure $ StridedDeviceAddressRangeKHR
address size stride
instance Storable StridedDeviceAddressRangeKHR where
sizeOf :: StridedDeviceAddressRangeKHR -> Int
sizeOf ~StridedDeviceAddressRangeKHR
_ = Int
24
alignment :: StridedDeviceAddressRangeKHR -> Int
alignment ~StridedDeviceAddressRangeKHR
_ = Int
8
peek :: Ptr StridedDeviceAddressRangeKHR -> IO StridedDeviceAddressRangeKHR
peek = Ptr StridedDeviceAddressRangeKHR -> IO StridedDeviceAddressRangeKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO ()
poke Ptr StridedDeviceAddressRangeKHR
ptr StridedDeviceAddressRangeKHR
poked = Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO () -> IO ()
forall b.
Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr StridedDeviceAddressRangeKHR
ptr StridedDeviceAddressRangeKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero StridedDeviceAddressRangeKHR where
zero :: StridedDeviceAddressRangeKHR
zero = DeviceAddress
-> DeviceAddress -> DeviceAddress -> StridedDeviceAddressRangeKHR
StridedDeviceAddressRangeKHR
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
data CopyMemoryIndirectCommandKHR = CopyMemoryIndirectCommandKHR
{
CopyMemoryIndirectCommandKHR -> DeviceAddress
srcAddress :: DeviceAddress
,
CopyMemoryIndirectCommandKHR -> DeviceAddress
dstAddress :: DeviceAddress
,
CopyMemoryIndirectCommandKHR -> DeviceAddress
size :: DeviceSize
}
deriving (Typeable, CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool
(CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool)
-> (CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool)
-> Eq CopyMemoryIndirectCommandKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool
== :: CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool
$c/= :: CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool
/= :: CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMemoryIndirectCommandKHR)
#endif
deriving instance Show CopyMemoryIndirectCommandKHR
instance ToCStruct CopyMemoryIndirectCommandKHR where
withCStruct :: forall b.
CopyMemoryIndirectCommandKHR
-> (Ptr CopyMemoryIndirectCommandKHR -> IO b) -> IO b
withCStruct CopyMemoryIndirectCommandKHR
x Ptr CopyMemoryIndirectCommandKHR -> IO b
f = Int -> (Ptr CopyMemoryIndirectCommandKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr CopyMemoryIndirectCommandKHR -> IO b) -> IO b)
-> (Ptr CopyMemoryIndirectCommandKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMemoryIndirectCommandKHR
p -> Ptr CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> IO b -> IO b
forall b.
Ptr CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryIndirectCommandKHR
p CopyMemoryIndirectCommandKHR
x (Ptr CopyMemoryIndirectCommandKHR -> IO b
f Ptr CopyMemoryIndirectCommandKHR
p)
pokeCStruct :: forall b.
Ptr CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> IO b -> IO b
pokeCStruct Ptr CopyMemoryIndirectCommandKHR
p CopyMemoryIndirectCommandKHR{DeviceAddress
srcAddress :: CopyMemoryIndirectCommandKHR -> DeviceAddress
dstAddress :: CopyMemoryIndirectCommandKHR -> DeviceAddress
size :: CopyMemoryIndirectCommandKHR -> DeviceAddress
srcAddress :: DeviceAddress
dstAddress :: DeviceAddress
size :: DeviceAddress
..} IO b
f = do
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (DeviceAddress
srcAddress)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress)) (DeviceAddress
dstAddress)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceAddress
size)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr CopyMemoryIndirectCommandKHR -> IO b -> IO b
pokeZeroCStruct Ptr CopyMemoryIndirectCommandKHR
p IO b
f = do
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceAddress
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyMemoryIndirectCommandKHR where
peekCStruct :: Ptr CopyMemoryIndirectCommandKHR -> IO CopyMemoryIndirectCommandKHR
peekCStruct Ptr CopyMemoryIndirectCommandKHR
p = do
srcAddress <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr CopyMemoryIndirectCommandKHR
p Ptr CopyMemoryIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress))
dstAddress <- peek @DeviceAddress ((p `plusPtr` 8 :: Ptr DeviceAddress))
size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
pure $ CopyMemoryIndirectCommandKHR
srcAddress dstAddress size
instance Storable CopyMemoryIndirectCommandKHR where
sizeOf :: CopyMemoryIndirectCommandKHR -> Int
sizeOf ~CopyMemoryIndirectCommandKHR
_ = Int
24
alignment :: CopyMemoryIndirectCommandKHR -> Int
alignment ~CopyMemoryIndirectCommandKHR
_ = Int
8
peek :: Ptr CopyMemoryIndirectCommandKHR -> IO CopyMemoryIndirectCommandKHR
peek = Ptr CopyMemoryIndirectCommandKHR -> IO CopyMemoryIndirectCommandKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> IO ()
poke Ptr CopyMemoryIndirectCommandKHR
ptr CopyMemoryIndirectCommandKHR
poked = Ptr CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> IO () -> IO ()
forall b.
Ptr CopyMemoryIndirectCommandKHR
-> CopyMemoryIndirectCommandKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryIndirectCommandKHR
ptr CopyMemoryIndirectCommandKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero CopyMemoryIndirectCommandKHR where
zero :: CopyMemoryIndirectCommandKHR
zero = DeviceAddress
-> DeviceAddress -> DeviceAddress -> CopyMemoryIndirectCommandKHR
CopyMemoryIndirectCommandKHR
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
DeviceAddress
forall a. Zero a => a
zero
data CopyMemoryIndirectInfoKHR = CopyMemoryIndirectInfoKHR
{
CopyMemoryIndirectInfoKHR -> AddressCopyFlagsKHR
srcCopyFlags :: AddressCopyFlagsKHR
,
CopyMemoryIndirectInfoKHR -> AddressCopyFlagsKHR
dstCopyFlags :: AddressCopyFlagsKHR
,
CopyMemoryIndirectInfoKHR -> Word32
copyCount :: Word32
,
CopyMemoryIndirectInfoKHR -> StridedDeviceAddressRangeKHR
copyAddressRange :: StridedDeviceAddressRangeKHR
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMemoryIndirectInfoKHR)
#endif
deriving instance Show CopyMemoryIndirectInfoKHR
instance ToCStruct CopyMemoryIndirectInfoKHR where
withCStruct :: forall b.
CopyMemoryIndirectInfoKHR
-> (Ptr CopyMemoryIndirectInfoKHR -> IO b) -> IO b
withCStruct CopyMemoryIndirectInfoKHR
x Ptr CopyMemoryIndirectInfoKHR -> IO b
f = Int -> (Ptr CopyMemoryIndirectInfoKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((Ptr CopyMemoryIndirectInfoKHR -> IO b) -> IO b)
-> (Ptr CopyMemoryIndirectInfoKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMemoryIndirectInfoKHR
p -> Ptr CopyMemoryIndirectInfoKHR
-> CopyMemoryIndirectInfoKHR -> IO b -> IO b
forall b.
Ptr CopyMemoryIndirectInfoKHR
-> CopyMemoryIndirectInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryIndirectInfoKHR
p CopyMemoryIndirectInfoKHR
x (Ptr CopyMemoryIndirectInfoKHR -> IO b
f Ptr CopyMemoryIndirectInfoKHR
p)
pokeCStruct :: forall b.
Ptr CopyMemoryIndirectInfoKHR
-> CopyMemoryIndirectInfoKHR -> IO b -> IO b
pokeCStruct Ptr CopyMemoryIndirectInfoKHR
p CopyMemoryIndirectInfoKHR{Word32
StridedDeviceAddressRangeKHR
AddressCopyFlagsKHR
srcCopyFlags :: CopyMemoryIndirectInfoKHR -> AddressCopyFlagsKHR
dstCopyFlags :: CopyMemoryIndirectInfoKHR -> AddressCopyFlagsKHR
copyCount :: CopyMemoryIndirectInfoKHR -> Word32
copyAddressRange :: CopyMemoryIndirectInfoKHR -> StridedDeviceAddressRangeKHR
srcCopyFlags :: AddressCopyFlagsKHR
dstCopyFlags :: AddressCopyFlagsKHR
copyCount :: Word32
copyAddressRange :: StridedDeviceAddressRangeKHR
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr AddressCopyFlagsKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr AddressCopyFlagsKHR)) (AddressCopyFlagsKHR
srcCopyFlags)
Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr AddressCopyFlagsKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr AddressCopyFlagsKHR)) (AddressCopyFlagsKHR
dstCopyFlags)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
copyCount)
Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR
-> Int -> Ptr StridedDeviceAddressRangeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr StridedDeviceAddressRangeKHR)) (StridedDeviceAddressRangeKHR
copyAddressRange)
IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr CopyMemoryIndirectInfoKHR -> IO b -> IO b
pokeZeroCStruct Ptr CopyMemoryIndirectInfoKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR
-> Int -> Ptr StridedDeviceAddressRangeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr StridedDeviceAddressRangeKHR)) (StridedDeviceAddressRangeKHR
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyMemoryIndirectInfoKHR where
peekCStruct :: Ptr CopyMemoryIndirectInfoKHR -> IO CopyMemoryIndirectInfoKHR
peekCStruct Ptr CopyMemoryIndirectInfoKHR
p = do
srcCopyFlags <- forall a. Storable a => Ptr a -> IO a
peek @AddressCopyFlagsKHR ((Ptr CopyMemoryIndirectInfoKHR
p Ptr CopyMemoryIndirectInfoKHR -> Int -> Ptr AddressCopyFlagsKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr AddressCopyFlagsKHR))
dstCopyFlags <- peek @AddressCopyFlagsKHR ((p `plusPtr` 20 :: Ptr AddressCopyFlagsKHR))
copyCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
copyAddressRange <- peekCStruct @StridedDeviceAddressRangeKHR ((p `plusPtr` 32 :: Ptr StridedDeviceAddressRangeKHR))
pure $ CopyMemoryIndirectInfoKHR
srcCopyFlags dstCopyFlags copyCount copyAddressRange
instance Storable CopyMemoryIndirectInfoKHR where
sizeOf :: CopyMemoryIndirectInfoKHR -> Int
sizeOf ~CopyMemoryIndirectInfoKHR
_ = Int
56
alignment :: CopyMemoryIndirectInfoKHR -> Int
alignment ~CopyMemoryIndirectInfoKHR
_ = Int
8
peek :: Ptr CopyMemoryIndirectInfoKHR -> IO CopyMemoryIndirectInfoKHR
peek = Ptr CopyMemoryIndirectInfoKHR -> IO CopyMemoryIndirectInfoKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr CopyMemoryIndirectInfoKHR -> CopyMemoryIndirectInfoKHR -> IO ()
poke Ptr CopyMemoryIndirectInfoKHR
ptr CopyMemoryIndirectInfoKHR
poked = Ptr CopyMemoryIndirectInfoKHR
-> CopyMemoryIndirectInfoKHR -> IO () -> IO ()
forall b.
Ptr CopyMemoryIndirectInfoKHR
-> CopyMemoryIndirectInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryIndirectInfoKHR
ptr CopyMemoryIndirectInfoKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero CopyMemoryIndirectInfoKHR where
zero :: CopyMemoryIndirectInfoKHR
zero = AddressCopyFlagsKHR
-> AddressCopyFlagsKHR
-> Word32
-> StridedDeviceAddressRangeKHR
-> CopyMemoryIndirectInfoKHR
CopyMemoryIndirectInfoKHR
AddressCopyFlagsKHR
forall a. Zero a => a
zero
AddressCopyFlagsKHR
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
StridedDeviceAddressRangeKHR
forall a. Zero a => a
zero
data CopyMemoryToImageIndirectCommandKHR = CopyMemoryToImageIndirectCommandKHR
{
CopyMemoryToImageIndirectCommandKHR -> DeviceAddress
srcAddress :: DeviceAddress
,
CopyMemoryToImageIndirectCommandKHR -> Word32
bufferRowLength :: Word32
,
CopyMemoryToImageIndirectCommandKHR -> Word32
bufferImageHeight :: Word32
,
CopyMemoryToImageIndirectCommandKHR -> ImageSubresourceLayers
imageSubresource :: ImageSubresourceLayers
,
CopyMemoryToImageIndirectCommandKHR -> Offset3D
imageOffset :: Offset3D
,
CopyMemoryToImageIndirectCommandKHR -> Extent3D
imageExtent :: Extent3D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMemoryToImageIndirectCommandKHR)
#endif
deriving instance Show CopyMemoryToImageIndirectCommandKHR
instance ToCStruct CopyMemoryToImageIndirectCommandKHR where
withCStruct :: forall b.
CopyMemoryToImageIndirectCommandKHR
-> (Ptr CopyMemoryToImageIndirectCommandKHR -> IO b) -> IO b
withCStruct CopyMemoryToImageIndirectCommandKHR
x Ptr CopyMemoryToImageIndirectCommandKHR -> IO b
f = Int -> (Ptr CopyMemoryToImageIndirectCommandKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((Ptr CopyMemoryToImageIndirectCommandKHR -> IO b) -> IO b)
-> (Ptr CopyMemoryToImageIndirectCommandKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMemoryToImageIndirectCommandKHR
p -> Ptr CopyMemoryToImageIndirectCommandKHR
-> CopyMemoryToImageIndirectCommandKHR -> IO b -> IO b
forall b.
Ptr CopyMemoryToImageIndirectCommandKHR
-> CopyMemoryToImageIndirectCommandKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToImageIndirectCommandKHR
p CopyMemoryToImageIndirectCommandKHR
x (Ptr CopyMemoryToImageIndirectCommandKHR -> IO b
f Ptr CopyMemoryToImageIndirectCommandKHR
p)
pokeCStruct :: forall b.
Ptr CopyMemoryToImageIndirectCommandKHR
-> CopyMemoryToImageIndirectCommandKHR -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToImageIndirectCommandKHR
p CopyMemoryToImageIndirectCommandKHR{Word32
DeviceAddress
Offset3D
Extent3D
ImageSubresourceLayers
srcAddress :: CopyMemoryToImageIndirectCommandKHR -> DeviceAddress
bufferRowLength :: CopyMemoryToImageIndirectCommandKHR -> Word32
bufferImageHeight :: CopyMemoryToImageIndirectCommandKHR -> Word32
imageSubresource :: CopyMemoryToImageIndirectCommandKHR -> ImageSubresourceLayers
imageOffset :: CopyMemoryToImageIndirectCommandKHR -> Offset3D
imageExtent :: CopyMemoryToImageIndirectCommandKHR -> Extent3D
srcAddress :: DeviceAddress
bufferRowLength :: Word32
bufferImageHeight :: Word32
imageSubresource :: ImageSubresourceLayers
imageOffset :: Offset3D
imageExtent :: Extent3D
..} IO b
f = do
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (DeviceAddress
srcAddress)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
bufferRowLength)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
bufferImageHeight)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR
-> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
imageSubresource)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D)) (Offset3D
imageOffset)
Ptr Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Extent3D)) (Extent3D
imageExtent)
IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr CopyMemoryToImageIndirectCommandKHR -> IO b -> IO b
pokeZeroCStruct Ptr CopyMemoryToImageIndirectCommandKHR
p IO b
f = do
Ptr DeviceAddress -> DeviceAddress -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (DeviceAddress
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR
-> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
forall a. Zero a => a
zero)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D)) (Offset3D
forall a. Zero a => a
zero)
Ptr Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Extent3D)) (Extent3D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyMemoryToImageIndirectCommandKHR where
peekCStruct :: Ptr CopyMemoryToImageIndirectCommandKHR
-> IO CopyMemoryToImageIndirectCommandKHR
peekCStruct Ptr CopyMemoryToImageIndirectCommandKHR
p = do
srcAddress <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr CopyMemoryToImageIndirectCommandKHR
p Ptr CopyMemoryToImageIndirectCommandKHR -> Int -> Ptr DeviceAddress
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress))
bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))
bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))
imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))
imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))
imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))
pure $ CopyMemoryToImageIndirectCommandKHR
srcAddress
bufferRowLength
bufferImageHeight
imageSubresource
imageOffset
imageExtent
instance Storable CopyMemoryToImageIndirectCommandKHR where
sizeOf :: CopyMemoryToImageIndirectCommandKHR -> Int
sizeOf ~CopyMemoryToImageIndirectCommandKHR
_ = Int
56
alignment :: CopyMemoryToImageIndirectCommandKHR -> Int
alignment ~CopyMemoryToImageIndirectCommandKHR
_ = Int
8
peek :: Ptr CopyMemoryToImageIndirectCommandKHR
-> IO CopyMemoryToImageIndirectCommandKHR
peek = Ptr CopyMemoryToImageIndirectCommandKHR
-> IO CopyMemoryToImageIndirectCommandKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr CopyMemoryToImageIndirectCommandKHR
-> CopyMemoryToImageIndirectCommandKHR -> IO ()
poke Ptr CopyMemoryToImageIndirectCommandKHR
ptr CopyMemoryToImageIndirectCommandKHR
poked = Ptr CopyMemoryToImageIndirectCommandKHR
-> CopyMemoryToImageIndirectCommandKHR -> IO () -> IO ()
forall b.
Ptr CopyMemoryToImageIndirectCommandKHR
-> CopyMemoryToImageIndirectCommandKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToImageIndirectCommandKHR
ptr CopyMemoryToImageIndirectCommandKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero CopyMemoryToImageIndirectCommandKHR where
zero :: CopyMemoryToImageIndirectCommandKHR
zero = DeviceAddress
-> Word32
-> Word32
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> CopyMemoryToImageIndirectCommandKHR
CopyMemoryToImageIndirectCommandKHR
DeviceAddress
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
ImageSubresourceLayers
forall a. Zero a => a
zero
Offset3D
forall a. Zero a => a
zero
Extent3D
forall a. Zero a => a
zero
data CopyMemoryToImageIndirectInfoKHR = CopyMemoryToImageIndirectInfoKHR
{
CopyMemoryToImageIndirectInfoKHR -> AddressCopyFlagsKHR
srcCopyFlags :: AddressCopyFlagsKHR
,
CopyMemoryToImageIndirectInfoKHR -> StridedDeviceAddressRangeKHR
copyAddressRange :: StridedDeviceAddressRangeKHR
,
CopyMemoryToImageIndirectInfoKHR -> Image
dstImage :: Image
,
CopyMemoryToImageIndirectInfoKHR -> ImageLayout
dstImageLayout :: ImageLayout
,
CopyMemoryToImageIndirectInfoKHR -> Vector ImageSubresourceLayers
imageSubresources :: Vector ImageSubresourceLayers
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyMemoryToImageIndirectInfoKHR)
#endif
deriving instance Show CopyMemoryToImageIndirectInfoKHR
instance ToCStruct CopyMemoryToImageIndirectInfoKHR where
withCStruct :: forall b.
CopyMemoryToImageIndirectInfoKHR
-> (Ptr CopyMemoryToImageIndirectInfoKHR -> IO b) -> IO b
withCStruct CopyMemoryToImageIndirectInfoKHR
x Ptr CopyMemoryToImageIndirectInfoKHR -> IO b
f = Int -> (Ptr CopyMemoryToImageIndirectInfoKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
72 ((Ptr CopyMemoryToImageIndirectInfoKHR -> IO b) -> IO b)
-> (Ptr CopyMemoryToImageIndirectInfoKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CopyMemoryToImageIndirectInfoKHR
p -> Ptr CopyMemoryToImageIndirectInfoKHR
-> CopyMemoryToImageIndirectInfoKHR -> IO b -> IO b
forall b.
Ptr CopyMemoryToImageIndirectInfoKHR
-> CopyMemoryToImageIndirectInfoKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToImageIndirectInfoKHR
p CopyMemoryToImageIndirectInfoKHR
x (Ptr CopyMemoryToImageIndirectInfoKHR -> IO b
f Ptr CopyMemoryToImageIndirectInfoKHR
p)
pokeCStruct :: forall b.
Ptr CopyMemoryToImageIndirectInfoKHR
-> CopyMemoryToImageIndirectInfoKHR -> IO b -> IO b
pokeCStruct Ptr CopyMemoryToImageIndirectInfoKHR
p CopyMemoryToImageIndirectInfoKHR{Vector ImageSubresourceLayers
ImageLayout
StridedDeviceAddressRangeKHR
Image
AddressCopyFlagsKHR
srcCopyFlags :: CopyMemoryToImageIndirectInfoKHR -> AddressCopyFlagsKHR
copyAddressRange :: CopyMemoryToImageIndirectInfoKHR -> StridedDeviceAddressRangeKHR
dstImage :: CopyMemoryToImageIndirectInfoKHR -> Image
dstImageLayout :: CopyMemoryToImageIndirectInfoKHR -> ImageLayout
imageSubresources :: CopyMemoryToImageIndirectInfoKHR -> Vector ImageSubresourceLayers
srcCopyFlags :: AddressCopyFlagsKHR
copyAddressRange :: StridedDeviceAddressRangeKHR
dstImage :: Image
dstImageLayout :: ImageLayout
imageSubresources :: Vector ImageSubresourceLayers
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR
-> Int -> Ptr AddressCopyFlagsKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr AddressCopyFlagsKHR)) (AddressCopyFlagsKHR
srcCopyFlags)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector ImageSubresourceLayers -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector ImageSubresourceLayers -> Int)
-> Vector ImageSubresourceLayers -> Int
forall a b. (a -> b) -> a -> b
$ (Vector ImageSubresourceLayers
imageSubresources)) :: Word32))
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR
-> Int -> Ptr StridedDeviceAddressRangeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr StridedDeviceAddressRangeKHR)) (StridedDeviceAddressRangeKHR
copyAddressRange)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Image)) (Image
dstImage)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr ImageLayout)) (ImageLayout
dstImageLayout)
pPImageSubresources' <- ((Ptr ImageSubresourceLayers -> IO b) -> IO b)
-> ContT b IO (Ptr ImageSubresourceLayers)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ImageSubresourceLayers -> IO b) -> IO b)
-> ContT b IO (Ptr ImageSubresourceLayers))
-> ((Ptr ImageSubresourceLayers -> IO b) -> IO b)
-> ContT b IO (Ptr ImageSubresourceLayers)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @ImageSubresourceLayers ((Vector ImageSubresourceLayers -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector ImageSubresourceLayers
imageSubresources)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
16)
lift $ Data.Vector.imapM_ (\Int
i ImageSubresourceLayers
e -> Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ImageSubresourceLayers
pPImageSubresources' Ptr ImageSubresourceLayers -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ImageSubresourceLayers) (ImageSubresourceLayers
e)) (imageSubresources)
lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr ImageSubresourceLayers))) (pPImageSubresources')
lift $ f
cStructSize :: Int
cStructSize = Int
72
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr CopyMemoryToImageIndirectInfoKHR -> IO b -> IO b
pokeZeroCStruct Ptr CopyMemoryToImageIndirectInfoKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr StridedDeviceAddressRangeKHR
-> StridedDeviceAddressRangeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR
-> Int -> Ptr StridedDeviceAddressRangeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr StridedDeviceAddressRangeKHR)) (StridedDeviceAddressRangeKHR
forall a. Zero a => a
zero)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR -> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyMemoryToImageIndirectInfoKHR where
peekCStruct :: Ptr CopyMemoryToImageIndirectInfoKHR
-> IO CopyMemoryToImageIndirectInfoKHR
peekCStruct Ptr CopyMemoryToImageIndirectInfoKHR
p = do
srcCopyFlags <- forall a. Storable a => Ptr a -> IO a
peek @AddressCopyFlagsKHR ((Ptr CopyMemoryToImageIndirectInfoKHR
p Ptr CopyMemoryToImageIndirectInfoKHR
-> Int -> Ptr AddressCopyFlagsKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr AddressCopyFlagsKHR))
copyAddressRange <- peekCStruct @StridedDeviceAddressRangeKHR ((p `plusPtr` 24 :: Ptr StridedDeviceAddressRangeKHR))
dstImage <- peek @Image ((p `plusPtr` 48 :: Ptr Image))
dstImageLayout <- peek @ImageLayout ((p `plusPtr` 56 :: Ptr ImageLayout))
copyCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
pImageSubresources <- peek @(Ptr ImageSubresourceLayers) ((p `plusPtr` 64 :: Ptr (Ptr ImageSubresourceLayers)))
pImageSubresources' <- generateM (fromIntegral copyCount) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr ImageSubresourceLayers
pImageSubresources Ptr ImageSubresourceLayers -> Int -> Ptr ImageSubresourceLayers
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
16 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ImageSubresourceLayers)))
pure $ CopyMemoryToImageIndirectInfoKHR
srcCopyFlags
copyAddressRange
dstImage
dstImageLayout
pImageSubresources'
instance Zero CopyMemoryToImageIndirectInfoKHR where
zero :: CopyMemoryToImageIndirectInfoKHR
zero = AddressCopyFlagsKHR
-> StridedDeviceAddressRangeKHR
-> Image
-> ImageLayout
-> Vector ImageSubresourceLayers
-> CopyMemoryToImageIndirectInfoKHR
CopyMemoryToImageIndirectInfoKHR
AddressCopyFlagsKHR
forall a. Zero a => a
zero
StridedDeviceAddressRangeKHR
forall a. Zero a => a
zero
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Vector ImageSubresourceLayers
forall a. Monoid a => a
mempty
data PhysicalDeviceCopyMemoryIndirectFeaturesKHR = PhysicalDeviceCopyMemoryIndirectFeaturesKHR
{
PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
indirectMemoryCopy :: Bool
,
PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
indirectMemoryToImageCopy :: Bool
}
deriving (Typeable, PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
(PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool)
-> (PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool)
-> Eq PhysicalDeviceCopyMemoryIndirectFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
== :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
$c/= :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
/= :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceCopyMemoryIndirectFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceCopyMemoryIndirectFeaturesKHR
instance ToCStruct PhysicalDeviceCopyMemoryIndirectFeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> (Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceCopyMemoryIndirectFeaturesKHR
x Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b) -> IO b)
-> (Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p -> Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p PhysicalDeviceCopyMemoryIndirectFeaturesKHR
x (Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b
f Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p PhysicalDeviceCopyMemoryIndirectFeaturesKHR{Bool
indirectMemoryCopy :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
indirectMemoryToImageCopy :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Bool
indirectMemoryCopy :: Bool
indirectMemoryToImageCopy :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
indirectMemoryCopy))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
indirectMemoryToImageCopy))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceCopyMemoryIndirectFeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> IO PhysicalDeviceCopyMemoryIndirectFeaturesKHR
peekCStruct Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p = do
indirectMemoryCopy <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
indirectMemoryToImageCopy <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
pure $ PhysicalDeviceCopyMemoryIndirectFeaturesKHR
(bool32ToBool indirectMemoryCopy)
(bool32ToBool indirectMemoryToImageCopy)
instance Storable PhysicalDeviceCopyMemoryIndirectFeaturesKHR where
sizeOf :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Int
sizeOf ~PhysicalDeviceCopyMemoryIndirectFeaturesKHR
_ = Int
24
alignment :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> Int
alignment ~PhysicalDeviceCopyMemoryIndirectFeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> IO PhysicalDeviceCopyMemoryIndirectFeaturesKHR
peek = Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> IO PhysicalDeviceCopyMemoryIndirectFeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO ()
poke Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
poked = Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
-> PhysicalDeviceCopyMemoryIndirectFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
ptr PhysicalDeviceCopyMemoryIndirectFeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceCopyMemoryIndirectFeaturesKHR where
zero :: PhysicalDeviceCopyMemoryIndirectFeaturesKHR
zero = Bool -> Bool -> PhysicalDeviceCopyMemoryIndirectFeaturesKHR
PhysicalDeviceCopyMemoryIndirectFeaturesKHR
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceCopyMemoryIndirectPropertiesKHR = PhysicalDeviceCopyMemoryIndirectPropertiesKHR
{
PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> QueueFlags
supportedQueues :: QueueFlags }
deriving (Typeable, PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool
(PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool)
-> (PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool)
-> Eq PhysicalDeviceCopyMemoryIndirectPropertiesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool
== :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool
$c/= :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool
/= :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceCopyMemoryIndirectPropertiesKHR)
#endif
deriving instance Show PhysicalDeviceCopyMemoryIndirectPropertiesKHR
instance ToCStruct PhysicalDeviceCopyMemoryIndirectPropertiesKHR where
withCStruct :: forall b.
PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> (Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceCopyMemoryIndirectPropertiesKHR
x Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p -> Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p PhysicalDeviceCopyMemoryIndirectPropertiesKHR
x (Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b
f Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p PhysicalDeviceCopyMemoryIndirectPropertiesKHR{QueueFlags
supportedQueues :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> QueueFlags
supportedQueues :: QueueFlags
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr QueueFlags -> QueueFlags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr QueueFlags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr QueueFlags)) (QueueFlags
supportedQueues)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr QueueFlags -> QueueFlags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr QueueFlags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr QueueFlags)) (QueueFlags
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceCopyMemoryIndirectPropertiesKHR where
peekCStruct :: Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> IO PhysicalDeviceCopyMemoryIndirectPropertiesKHR
peekCStruct Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p = do
supportedQueues <- forall a. Storable a => Ptr a -> IO a
peek @QueueFlags ((Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
p Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> Int -> Ptr QueueFlags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr QueueFlags))
pure $ PhysicalDeviceCopyMemoryIndirectPropertiesKHR
supportedQueues
instance Storable PhysicalDeviceCopyMemoryIndirectPropertiesKHR where
sizeOf :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Int
sizeOf ~PhysicalDeviceCopyMemoryIndirectPropertiesKHR
_ = Int
24
alignment :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> Int
alignment ~PhysicalDeviceCopyMemoryIndirectPropertiesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> IO PhysicalDeviceCopyMemoryIndirectPropertiesKHR
peek = Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> IO PhysicalDeviceCopyMemoryIndirectPropertiesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO ()
poke Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
poked = Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
-> PhysicalDeviceCopyMemoryIndirectPropertiesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
ptr PhysicalDeviceCopyMemoryIndirectPropertiesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceCopyMemoryIndirectPropertiesKHR where
zero :: PhysicalDeviceCopyMemoryIndirectPropertiesKHR
zero = QueueFlags -> PhysicalDeviceCopyMemoryIndirectPropertiesKHR
PhysicalDeviceCopyMemoryIndirectPropertiesKHR
QueueFlags
forall a. Zero a => a
zero
type AddressCopyFlagsKHR = AddressCopyFlagBitsKHR
newtype AddressCopyFlagBitsKHR = AddressCopyFlagBitsKHR Flags
deriving newtype (AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
(AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool)
-> (AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool)
-> Eq AddressCopyFlagsKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
== :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
$c/= :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
/= :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
Eq, Eq AddressCopyFlagsKHR
Eq AddressCopyFlagsKHR =>
(AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Ordering)
-> (AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool)
-> (AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool)
-> (AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool)
-> (AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool)
-> (AddressCopyFlagsKHR
-> AddressCopyFlagsKHR -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR
-> AddressCopyFlagsKHR -> AddressCopyFlagsKHR)
-> Ord AddressCopyFlagsKHR
AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Ordering
AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Ordering
compare :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Ordering
$c< :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
< :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
$c<= :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
<= :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
$c> :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
> :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
$c>= :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
>= :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> Bool
$cmax :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
max :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
$cmin :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
min :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
Ord, Ptr AddressCopyFlagsKHR -> IO AddressCopyFlagsKHR
Ptr AddressCopyFlagsKHR -> Int -> IO AddressCopyFlagsKHR
Ptr AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR -> IO ()
Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ()
AddressCopyFlagsKHR -> Int
(AddressCopyFlagsKHR -> Int)
-> (AddressCopyFlagsKHR -> Int)
-> (Ptr AddressCopyFlagsKHR -> Int -> IO AddressCopyFlagsKHR)
-> (Ptr AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR -> IO ())
-> (forall b. Ptr b -> Int -> IO AddressCopyFlagsKHR)
-> (forall b. Ptr b -> Int -> AddressCopyFlagsKHR -> IO ())
-> (Ptr AddressCopyFlagsKHR -> IO AddressCopyFlagsKHR)
-> (Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ())
-> Storable AddressCopyFlagsKHR
forall b. Ptr b -> Int -> IO AddressCopyFlagsKHR
forall b. Ptr b -> Int -> AddressCopyFlagsKHR -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: AddressCopyFlagsKHR -> Int
sizeOf :: AddressCopyFlagsKHR -> Int
$calignment :: AddressCopyFlagsKHR -> Int
alignment :: AddressCopyFlagsKHR -> Int
$cpeekElemOff :: Ptr AddressCopyFlagsKHR -> Int -> IO AddressCopyFlagsKHR
peekElemOff :: Ptr AddressCopyFlagsKHR -> Int -> IO AddressCopyFlagsKHR
$cpokeElemOff :: Ptr AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR -> IO ()
pokeElemOff :: Ptr AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO AddressCopyFlagsKHR
peekByteOff :: forall b. Ptr b -> Int -> IO AddressCopyFlagsKHR
$cpokeByteOff :: forall b. Ptr b -> Int -> AddressCopyFlagsKHR -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> AddressCopyFlagsKHR -> IO ()
$cpeek :: Ptr AddressCopyFlagsKHR -> IO AddressCopyFlagsKHR
peek :: Ptr AddressCopyFlagsKHR -> IO AddressCopyFlagsKHR
$cpoke :: Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ()
poke :: Ptr AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> IO ()
Storable, AddressCopyFlagsKHR
AddressCopyFlagsKHR -> Zero AddressCopyFlagsKHR
forall a. a -> Zero a
$czero :: AddressCopyFlagsKHR
zero :: AddressCopyFlagsKHR
Zero, Eq AddressCopyFlagsKHR
AddressCopyFlagsKHR
Eq AddressCopyFlagsKHR =>
(AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR
-> AddressCopyFlagsKHR -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR
-> AddressCopyFlagsKHR -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> AddressCopyFlagsKHR
-> (Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> Bool)
-> (AddressCopyFlagsKHR -> Maybe Int)
-> (AddressCopyFlagsKHR -> Int)
-> (AddressCopyFlagsKHR -> Bool)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR)
-> (AddressCopyFlagsKHR -> Int)
-> Bits AddressCopyFlagsKHR
Int -> AddressCopyFlagsKHR
AddressCopyFlagsKHR -> Bool
AddressCopyFlagsKHR -> Int
AddressCopyFlagsKHR -> Maybe Int
AddressCopyFlagsKHR -> AddressCopyFlagsKHR
AddressCopyFlagsKHR -> Int -> Bool
AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
.&. :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
$c.|. :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
.|. :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
$cxor :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
xor :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR -> AddressCopyFlagsKHR
$ccomplement :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR
complement :: AddressCopyFlagsKHR -> AddressCopyFlagsKHR
$cshift :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
shift :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$crotate :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
rotate :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$czeroBits :: AddressCopyFlagsKHR
zeroBits :: AddressCopyFlagsKHR
$cbit :: Int -> AddressCopyFlagsKHR
bit :: Int -> AddressCopyFlagsKHR
$csetBit :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
setBit :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$cclearBit :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
clearBit :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$ccomplementBit :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
complementBit :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$ctestBit :: AddressCopyFlagsKHR -> Int -> Bool
testBit :: AddressCopyFlagsKHR -> Int -> Bool
$cbitSizeMaybe :: AddressCopyFlagsKHR -> Maybe Int
bitSizeMaybe :: AddressCopyFlagsKHR -> Maybe Int
$cbitSize :: AddressCopyFlagsKHR -> Int
bitSize :: AddressCopyFlagsKHR -> Int
$cisSigned :: AddressCopyFlagsKHR -> Bool
isSigned :: AddressCopyFlagsKHR -> Bool
$cshiftL :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
shiftL :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$cunsafeShiftL :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
unsafeShiftL :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$cshiftR :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
shiftR :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$cunsafeShiftR :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
unsafeShiftR :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$crotateL :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
rotateL :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$crotateR :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
rotateR :: AddressCopyFlagsKHR -> Int -> AddressCopyFlagsKHR
$cpopCount :: AddressCopyFlagsKHR -> Int
popCount :: AddressCopyFlagsKHR -> Int
Bits, Bits AddressCopyFlagsKHR
Bits AddressCopyFlagsKHR =>
(AddressCopyFlagsKHR -> Int)
-> (AddressCopyFlagsKHR -> Int)
-> (AddressCopyFlagsKHR -> Int)
-> FiniteBits AddressCopyFlagsKHR
AddressCopyFlagsKHR -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: AddressCopyFlagsKHR -> Int
finiteBitSize :: AddressCopyFlagsKHR -> Int
$ccountLeadingZeros :: AddressCopyFlagsKHR -> Int
countLeadingZeros :: AddressCopyFlagsKHR -> Int
$ccountTrailingZeros :: AddressCopyFlagsKHR -> Int
countTrailingZeros :: AddressCopyFlagsKHR -> Int
FiniteBits)
pattern $mADDRESS_COPY_DEVICE_LOCAL_BIT_KHR :: forall {r}.
AddressCopyFlagsKHR -> ((# #) -> r) -> ((# #) -> r) -> r
$bADDRESS_COPY_DEVICE_LOCAL_BIT_KHR :: AddressCopyFlagsKHR
ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = AddressCopyFlagBitsKHR 0x00000001
pattern $mADDRESS_COPY_SPARSE_BIT_KHR :: forall {r}.
AddressCopyFlagsKHR -> ((# #) -> r) -> ((# #) -> r) -> r
$bADDRESS_COPY_SPARSE_BIT_KHR :: AddressCopyFlagsKHR
ADDRESS_COPY_SPARSE_BIT_KHR = AddressCopyFlagBitsKHR 0x00000002
pattern $mADDRESS_COPY_PROTECTED_BIT_KHR :: forall {r}.
AddressCopyFlagsKHR -> ((# #) -> r) -> ((# #) -> r) -> r
$bADDRESS_COPY_PROTECTED_BIT_KHR :: AddressCopyFlagsKHR
ADDRESS_COPY_PROTECTED_BIT_KHR = AddressCopyFlagBitsKHR 0x00000004
conNameAddressCopyFlagBitsKHR :: String
conNameAddressCopyFlagBitsKHR :: String
conNameAddressCopyFlagBitsKHR = String
"AddressCopyFlagBitsKHR"
enumPrefixAddressCopyFlagBitsKHR :: String
enumPrefixAddressCopyFlagBitsKHR :: String
enumPrefixAddressCopyFlagBitsKHR = String
"ADDRESS_COPY_"
showTableAddressCopyFlagBitsKHR :: [(AddressCopyFlagBitsKHR, String)]
showTableAddressCopyFlagBitsKHR :: [(AddressCopyFlagsKHR, String)]
showTableAddressCopyFlagBitsKHR =
[
( AddressCopyFlagsKHR
ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR
, String
"DEVICE_LOCAL_BIT_KHR"
)
,
( AddressCopyFlagsKHR
ADDRESS_COPY_SPARSE_BIT_KHR
, String
"SPARSE_BIT_KHR"
)
,
( AddressCopyFlagsKHR
ADDRESS_COPY_PROTECTED_BIT_KHR
, String
"PROTECTED_BIT_KHR"
)
]
instance Show AddressCopyFlagBitsKHR where
showsPrec :: Int -> AddressCopyFlagsKHR -> ShowS
showsPrec =
String
-> [(AddressCopyFlagsKHR, String)]
-> String
-> (AddressCopyFlagsKHR -> Word32)
-> (Word32 -> ShowS)
-> Int
-> AddressCopyFlagsKHR
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixAddressCopyFlagBitsKHR
[(AddressCopyFlagsKHR, String)]
showTableAddressCopyFlagBitsKHR
String
conNameAddressCopyFlagBitsKHR
(\(AddressCopyFlagBitsKHR Word32
x) -> Word32
x)
(\Word32
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word32
x)
instance Read AddressCopyFlagBitsKHR where
readPrec :: ReadPrec AddressCopyFlagsKHR
readPrec =
String
-> [(AddressCopyFlagsKHR, String)]
-> String
-> (Word32 -> AddressCopyFlagsKHR)
-> ReadPrec AddressCopyFlagsKHR
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixAddressCopyFlagBitsKHR
[(AddressCopyFlagsKHR, String)]
showTableAddressCopyFlagBitsKHR
String
conNameAddressCopyFlagBitsKHR
Word32 -> AddressCopyFlagsKHR
AddressCopyFlagBitsKHR
type KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1
pattern KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_COPY_MEMORY_INDIRECT_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_COPY_MEMORY_INDIRECT_SPEC_VERSION :: forall a. Integral a => a
KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1
type KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_KHR_copy_memory_indirect"
pattern KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_KHR_copy_memory_indirect"