{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_copy_commands2 ( cmdCopyBuffer2KHR
, cmdCopyImage2KHR
, cmdBlitImage2KHR
, cmdCopyBufferToImage2KHR
, cmdCopyImageToBuffer2KHR
, cmdResolveImage2KHR
, BufferCopy2KHR(..)
, ImageCopy2KHR(..)
, ImageBlit2KHR(..)
, BufferImageCopy2KHR(..)
, ImageResolve2KHR(..)
, CopyBufferInfo2KHR(..)
, CopyImageInfo2KHR(..)
, BlitImageInfo2KHR(..)
, CopyBufferToImageInfo2KHR(..)
, CopyImageToBufferInfo2KHR(..)
, ResolveImageInfo2KHR(..)
, KHR_COPY_COMMANDS_2_SPEC_VERSION
, pattern KHR_COPY_COMMANDS_2_SPEC_VERSION
, KHR_COPY_COMMANDS_2_EXTENSION_NAME
, pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME
) where
import Vulkan.CStruct.Utils (FixedArray)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
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 Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Type.Equality ((:~:)(Refl))
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 Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.CStruct.Utils (lowerArrayPtr)
import Vulkan.CStruct.Extends (peekSomeCStruct)
import Vulkan.CStruct.Extends (pokeSomeCStruct)
import Vulkan.Core10.Handles (Buffer)
import Vulkan.CStruct.Extends (Chain)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM)
import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2KHR))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2KHR))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2KHR))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImage2KHR))
import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2KHR))
import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2KHR))
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.CStruct.Extends (Extends)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.CStruct.Extends (Extensible(..))
import Vulkan.Core10.FundamentalTypes (Extent3D)
import Vulkan.Core10.Enums.Filter (Filter)
import Vulkan.Core10.Handles (Image)
import Vulkan.Core10.Enums.ImageLayout (ImageLayout)
import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)
import Vulkan.Core10.FundamentalTypes (Offset3D)
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyBuffer2KHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()
cmdCopyBuffer2KHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyBufferInfo2KHR
-> io ()
cmdCopyBuffer2KHR :: CommandBuffer -> CopyBufferInfo2KHR -> io ()
cmdCopyBuffer2KHR CommandBuffer
commandBuffer CopyBufferInfo2KHR
copyBufferInfo = IO () -> io ()
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 vkCmdCopyBuffer2KHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
vkCmdCopyBuffer2KHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
pVkCmdCopyBuffer2KHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
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
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
vkCmdCopyBuffer2KHRPtr FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. 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 vkCmdCopyBuffer2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyBuffer2KHR' :: Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ()
vkCmdCopyBuffer2KHR' = FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> IO ()
mkVkCmdCopyBuffer2KHR FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
vkCmdCopyBuffer2KHRPtr
"pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
pCopyBufferInfo <- ((("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR))
-> ((("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
forall a b. (a -> b) -> a -> b
$ CopyBufferInfo2KHR
-> (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())
-> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyBufferInfo2KHR
copyBufferInfo)
IO () -> ContT () IO ()
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyBuffer2KHR" (Ptr CommandBuffer_T
-> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ()
vkCmdCopyBuffer2KHR' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) "pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
pCopyBufferInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyImage2KHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()
cmdCopyImage2KHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyImageInfo2KHR
-> io ()
cmdCopyImage2KHR :: CommandBuffer -> CopyImageInfo2KHR -> io ()
cmdCopyImage2KHR CommandBuffer
commandBuffer CopyImageInfo2KHR
copyImageInfo = IO () -> io ()
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 vkCmdCopyImage2KHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
vkCmdCopyImage2KHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
pVkCmdCopyImage2KHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
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
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
vkCmdCopyImage2KHRPtr FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. 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 vkCmdCopyImage2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyImage2KHR' :: Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()
vkCmdCopyImage2KHR' = FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
-> Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> IO ()
mkVkCmdCopyImage2KHR FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
vkCmdCopyImage2KHRPtr
"pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
pCopyImageInfo <- ((("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()) -> IO ())
-> ContT () IO ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()) -> IO ())
-> ContT () IO ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR))
-> ((("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
forall a b. (a -> b) -> a -> b
$ CopyImageInfo2KHR
-> (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyImageInfo2KHR
copyImageInfo)
IO () -> ContT () IO ()
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyImage2KHR" (Ptr CommandBuffer_T
-> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()
vkCmdCopyImage2KHR' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) "pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
pCopyImageInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdBlitImage2KHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()
cmdBlitImage2KHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
BlitImageInfo2KHR
-> io ()
cmdBlitImage2KHR :: CommandBuffer -> BlitImageInfo2KHR -> io ()
cmdBlitImage2KHR CommandBuffer
commandBuffer BlitImageInfo2KHR
blitImageInfo = IO () -> io ()
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 vkCmdBlitImage2KHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
vkCmdBlitImage2KHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
pVkCmdBlitImage2KHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
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
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
vkCmdBlitImage2KHRPtr FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. 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 vkCmdBlitImage2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdBlitImage2KHR' :: Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()
vkCmdBlitImage2KHR' = FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
-> Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> IO ()
mkVkCmdBlitImage2KHR FunPtr
(Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
vkCmdBlitImage2KHRPtr
"pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
pBlitImageInfo <- ((("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()) -> IO ())
-> ContT () IO ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()) -> IO ())
-> ContT () IO ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR))
-> ((("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
forall a b. (a -> b) -> a -> b
$ BlitImageInfo2KHR
-> (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (BlitImageInfo2KHR
blitImageInfo)
IO () -> ContT () IO ()
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdBlitImage2KHR" (Ptr CommandBuffer_T
-> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()
vkCmdBlitImage2KHR' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) "pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
pBlitImageInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyBufferToImage2KHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()
cmdCopyBufferToImage2KHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyBufferToImageInfo2KHR
-> io ()
cmdCopyBufferToImage2KHR :: CommandBuffer -> CopyBufferToImageInfo2KHR -> io ()
cmdCopyBufferToImage2KHR CommandBuffer
commandBuffer CopyBufferToImageInfo2KHR
copyBufferToImageInfo = IO () -> io ()
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 vkCmdCopyBufferToImage2KHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
vkCmdCopyBufferToImage2KHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
pVkCmdCopyBufferToImage2KHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
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
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
vkCmdCopyBufferToImage2KHRPtr FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. 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 vkCmdCopyBufferToImage2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyBufferToImage2KHR' :: Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ()
vkCmdCopyBufferToImage2KHR' = FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ()
mkVkCmdCopyBufferToImage2KHR FunPtr
(Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
vkCmdCopyBufferToImage2KHRPtr
"pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
pCopyBufferToImageInfo <- ((("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> IO ())
-> ContT
() IO ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> IO ())
-> ContT
() IO ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR))
-> ((("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> IO ())
-> ContT
() IO ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
forall a b. (a -> b) -> a -> b
$ CopyBufferToImageInfo2KHR
-> (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ())
-> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyBufferToImageInfo2KHR
copyBufferToImageInfo)
IO () -> ContT () IO ()
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyBufferToImage2KHR" (Ptr CommandBuffer_T
-> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO ()
vkCmdCopyBufferToImage2KHR' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) "pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
pCopyBufferToImageInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdCopyImageToBuffer2KHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()
cmdCopyImageToBuffer2KHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
CopyImageToBufferInfo2KHR
-> io ()
cmdCopyImageToBuffer2KHR :: CommandBuffer -> CopyImageToBufferInfo2KHR -> io ()
cmdCopyImageToBuffer2KHR CommandBuffer
commandBuffer CopyImageToBufferInfo2KHR
copyImageToBufferInfo = IO () -> io ()
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 vkCmdCopyImageToBuffer2KHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
vkCmdCopyImageToBuffer2KHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
pVkCmdCopyImageToBuffer2KHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
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
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
vkCmdCopyImageToBuffer2KHRPtr FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. 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 vkCmdCopyImageToBuffer2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdCopyImageToBuffer2KHR' :: Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ()
vkCmdCopyImageToBuffer2KHR' = FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ()
mkVkCmdCopyImageToBuffer2KHR FunPtr
(Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
vkCmdCopyImageToBuffer2KHRPtr
"pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
pCopyImageToBufferInfo <- ((("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> IO ())
-> ContT
() IO ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> IO ())
-> ContT
() IO ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR))
-> ((("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> IO ())
-> ContT
() IO ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
forall a b. (a -> b) -> a -> b
$ CopyImageToBufferInfo2KHR
-> (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ())
-> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (CopyImageToBufferInfo2KHR
copyImageToBufferInfo)
IO () -> ContT () IO ()
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdCopyImageToBuffer2KHR" (Ptr CommandBuffer_T
-> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO ()
vkCmdCopyImageToBuffer2KHR' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) "pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
pCopyImageToBufferInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdResolveImage2KHR
:: FunPtr (Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()
cmdResolveImage2KHR :: forall io
. (MonadIO io)
=>
CommandBuffer
->
ResolveImageInfo2KHR
-> io ()
cmdResolveImage2KHR :: CommandBuffer -> ResolveImageInfo2KHR -> io ()
cmdResolveImage2KHR CommandBuffer
commandBuffer ResolveImageInfo2KHR
resolveImageInfo = IO () -> io ()
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 vkCmdResolveImage2KHRPtr :: FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
vkCmdResolveImage2KHRPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
pVkCmdResolveImage2KHR (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
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
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
vkCmdResolveImage2KHRPtr FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. 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 vkCmdResolveImage2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdResolveImage2KHR' :: Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()
vkCmdResolveImage2KHR' = FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> IO ()
mkVkCmdResolveImage2KHR FunPtr
(Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
vkCmdResolveImage2KHRPtr
"pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
pResolveImageInfo <- ((("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR))
-> ((("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> IO ())
-> ContT () IO ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
forall a b. (a -> b) -> a -> b
$ ResolveImageInfo2KHR
-> (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())
-> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (ResolveImageInfo2KHR
resolveImageInfo)
IO () -> ContT () IO ()
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdResolveImage2KHR" (Ptr CommandBuffer_T
-> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()
vkCmdResolveImage2KHR' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)) "pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
pResolveImageInfo)
() -> ContT () IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
data BufferCopy2KHR = BufferCopy2KHR
{
BufferCopy2KHR -> DeviceSize
srcOffset :: DeviceSize
,
BufferCopy2KHR -> DeviceSize
dstOffset :: DeviceSize
,
BufferCopy2KHR -> DeviceSize
size :: DeviceSize
}
deriving (Typeable, BufferCopy2KHR -> BufferCopy2KHR -> Bool
(BufferCopy2KHR -> BufferCopy2KHR -> Bool)
-> (BufferCopy2KHR -> BufferCopy2KHR -> Bool) -> Eq BufferCopy2KHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BufferCopy2KHR -> BufferCopy2KHR -> Bool
$c/= :: BufferCopy2KHR -> BufferCopy2KHR -> Bool
== :: BufferCopy2KHR -> BufferCopy2KHR -> Bool
$c== :: BufferCopy2KHR -> BufferCopy2KHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BufferCopy2KHR)
#endif
deriving instance Show BufferCopy2KHR
instance ToCStruct BufferCopy2KHR where
withCStruct :: BufferCopy2KHR -> (Ptr BufferCopy2KHR -> IO b) -> IO b
withCStruct BufferCopy2KHR
x Ptr BufferCopy2KHR -> IO b
f = Int -> (Ptr BufferCopy2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr BufferCopy2KHR -> IO b) -> IO b)
-> (Ptr BufferCopy2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr BufferCopy2KHR
p -> Ptr BufferCopy2KHR -> BufferCopy2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BufferCopy2KHR
p BufferCopy2KHR
x (Ptr BufferCopy2KHR -> IO b
f Ptr BufferCopy2KHR
p)
pokeCStruct :: Ptr BufferCopy2KHR -> BufferCopy2KHR -> IO b -> IO b
pokeCStruct Ptr BufferCopy2KHR
p BufferCopy2KHR{DeviceSize
size :: DeviceSize
dstOffset :: DeviceSize
srcOffset :: DeviceSize
$sel:size:BufferCopy2KHR :: BufferCopy2KHR -> DeviceSize
$sel:dstOffset:BufferCopy2KHR :: BufferCopy2KHR -> DeviceSize
$sel:srcOffset:BufferCopy2KHR :: BufferCopy2KHR -> DeviceSize
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BUFFER_COPY_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
srcOffset)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceSize
dstOffset)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceSize
size)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr BufferCopy2KHR -> IO b -> IO b
pokeZeroCStruct Ptr BufferCopy2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BUFFER_COPY_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
Ptr DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct BufferCopy2KHR where
peekCStruct :: Ptr BufferCopy2KHR -> IO BufferCopy2KHR
peekCStruct Ptr BufferCopy2KHR
p = do
DeviceSize
srcOffset <- Ptr DeviceSize -> IO DeviceSize
forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
DeviceSize
dstOffset <- Ptr DeviceSize -> IO DeviceSize
forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize))
DeviceSize
size <- Ptr DeviceSize -> IO DeviceSize
forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr BufferCopy2KHR
p Ptr BufferCopy2KHR -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr DeviceSize))
BufferCopy2KHR -> IO BufferCopy2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (BufferCopy2KHR -> IO BufferCopy2KHR)
-> BufferCopy2KHR -> IO BufferCopy2KHR
forall a b. (a -> b) -> a -> b
$ DeviceSize -> DeviceSize -> DeviceSize -> BufferCopy2KHR
BufferCopy2KHR
DeviceSize
srcOffset DeviceSize
dstOffset DeviceSize
size
instance Storable BufferCopy2KHR where
sizeOf :: BufferCopy2KHR -> Int
sizeOf ~BufferCopy2KHR
_ = Int
40
alignment :: BufferCopy2KHR -> Int
alignment ~BufferCopy2KHR
_ = Int
8
peek :: Ptr BufferCopy2KHR -> IO BufferCopy2KHR
peek = Ptr BufferCopy2KHR -> IO BufferCopy2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr BufferCopy2KHR -> BufferCopy2KHR -> IO ()
poke Ptr BufferCopy2KHR
ptr BufferCopy2KHR
poked = Ptr BufferCopy2KHR -> BufferCopy2KHR -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr BufferCopy2KHR
ptr BufferCopy2KHR
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero BufferCopy2KHR where
zero :: BufferCopy2KHR
zero = DeviceSize -> DeviceSize -> DeviceSize -> BufferCopy2KHR
BufferCopy2KHR
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
DeviceSize
forall a. Zero a => a
zero
data ImageCopy2KHR = ImageCopy2KHR
{
ImageCopy2KHR -> ImageSubresourceLayers
srcSubresource :: ImageSubresourceLayers
,
ImageCopy2KHR -> Offset3D
srcOffset :: Offset3D
,
ImageCopy2KHR -> ImageSubresourceLayers
dstSubresource :: ImageSubresourceLayers
,
ImageCopy2KHR -> Offset3D
dstOffset :: Offset3D
,
ImageCopy2KHR -> Extent3D
extent :: Extent3D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageCopy2KHR)
#endif
deriving instance Show ImageCopy2KHR
instance ToCStruct ImageCopy2KHR where
withCStruct :: ImageCopy2KHR -> (Ptr ImageCopy2KHR -> IO b) -> IO b
withCStruct ImageCopy2KHR
x Ptr ImageCopy2KHR -> IO b
f = Int -> (Ptr ImageCopy2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
88 ((Ptr ImageCopy2KHR -> IO b) -> IO b)
-> (Ptr ImageCopy2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ImageCopy2KHR
p -> Ptr ImageCopy2KHR -> ImageCopy2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageCopy2KHR
p ImageCopy2KHR
x (Ptr ImageCopy2KHR -> IO b
f Ptr ImageCopy2KHR
p)
pokeCStruct :: Ptr ImageCopy2KHR -> ImageCopy2KHR -> IO b -> IO b
pokeCStruct Ptr ImageCopy2KHR
p ImageCopy2KHR{ImageSubresourceLayers
Offset3D
Extent3D
extent :: Extent3D
dstOffset :: Offset3D
dstSubresource :: ImageSubresourceLayers
srcOffset :: Offset3D
srcSubresource :: ImageSubresourceLayers
$sel:extent:ImageCopy2KHR :: ImageCopy2KHR -> Extent3D
$sel:dstOffset:ImageCopy2KHR :: ImageCopy2KHR -> Offset3D
$sel:dstSubresource:ImageCopy2KHR :: ImageCopy2KHR -> ImageSubresourceLayers
$sel:srcOffset:ImageCopy2KHR :: ImageCopy2KHR -> Offset3D
$sel:srcSubresource:ImageCopy2KHR :: ImageCopy2KHR -> ImageSubresourceLayers
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_COPY_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
srcSubresource)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D)) (Offset3D
srcOffset)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
dstSubresource)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Offset3D)) (Offset3D
dstOffset)
Ptr Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Extent3D)) (Extent3D
extent)
IO b
f
cStructSize :: Int
cStructSize = Int
88
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr ImageCopy2KHR -> IO b -> IO b
pokeZeroCStruct Ptr ImageCopy2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_COPY_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> 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 ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D)) (Offset3D
forall a. Zero a => a
zero)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
forall a. Zero a => a
zero)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Offset3D)) (Offset3D
forall a. Zero a => a
zero)
Ptr Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Extent3D)) (Extent3D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ImageCopy2KHR where
peekCStruct :: Ptr ImageCopy2KHR -> IO ImageCopy2KHR
peekCStruct Ptr ImageCopy2KHR
p = do
ImageSubresourceLayers
srcSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers))
Offset3D
srcOffset <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D))
ImageSubresourceLayers
dstSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr ImageSubresourceLayers))
Offset3D
dstOffset <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Offset3D))
Extent3D
extent <- Ptr Extent3D -> IO Extent3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent3D ((Ptr ImageCopy2KHR
p Ptr ImageCopy2KHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Extent3D))
ImageCopy2KHR -> IO ImageCopy2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ImageCopy2KHR -> IO ImageCopy2KHR)
-> ImageCopy2KHR -> IO ImageCopy2KHR
forall a b. (a -> b) -> a -> b
$ ImageSubresourceLayers
-> Offset3D
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> ImageCopy2KHR
ImageCopy2KHR
ImageSubresourceLayers
srcSubresource Offset3D
srcOffset ImageSubresourceLayers
dstSubresource Offset3D
dstOffset Extent3D
extent
instance Storable ImageCopy2KHR where
sizeOf :: ImageCopy2KHR -> Int
sizeOf ~ImageCopy2KHR
_ = Int
88
alignment :: ImageCopy2KHR -> Int
alignment ~ImageCopy2KHR
_ = Int
8
peek :: Ptr ImageCopy2KHR -> IO ImageCopy2KHR
peek = Ptr ImageCopy2KHR -> IO ImageCopy2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ImageCopy2KHR -> ImageCopy2KHR -> IO ()
poke Ptr ImageCopy2KHR
ptr ImageCopy2KHR
poked = Ptr ImageCopy2KHR -> ImageCopy2KHR -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageCopy2KHR
ptr ImageCopy2KHR
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ImageCopy2KHR where
zero :: ImageCopy2KHR
zero = ImageSubresourceLayers
-> Offset3D
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> ImageCopy2KHR
ImageCopy2KHR
ImageSubresourceLayers
forall a. Zero a => a
zero
Offset3D
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 ImageBlit2KHR (es :: [Type]) = ImageBlit2KHR
{
ImageBlit2KHR es -> Chain es
next :: Chain es
,
ImageBlit2KHR es -> ImageSubresourceLayers
srcSubresource :: ImageSubresourceLayers
,
ImageBlit2KHR es -> (Offset3D, Offset3D)
srcOffsets :: (Offset3D, Offset3D)
,
ImageBlit2KHR es -> ImageSubresourceLayers
dstSubresource :: ImageSubresourceLayers
,
ImageBlit2KHR es -> (Offset3D, Offset3D)
dstOffsets :: (Offset3D, Offset3D)
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageBlit2KHR (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (ImageBlit2KHR es)
instance Extensible ImageBlit2KHR where
extensibleTypeName :: String
extensibleTypeName = String
"ImageBlit2KHR"
setNext :: ImageBlit2KHR ds -> Chain es -> ImageBlit2KHR es
setNext ImageBlit2KHR{(Offset3D, Offset3D)
Chain ds
ImageSubresourceLayers
dstOffsets :: (Offset3D, Offset3D)
dstSubresource :: ImageSubresourceLayers
srcOffsets :: (Offset3D, Offset3D)
srcSubresource :: ImageSubresourceLayers
next :: Chain ds
$sel:dstOffsets:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> (Offset3D, Offset3D)
$sel:dstSubresource:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> ImageSubresourceLayers
$sel:srcOffsets:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> (Offset3D, Offset3D)
$sel:srcSubresource:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> ImageSubresourceLayers
$sel:next:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> Chain es
..} Chain es
next' = ImageBlit2KHR :: forall (es :: [*]).
Chain es
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageBlit2KHR es
ImageBlit2KHR{$sel:next:ImageBlit2KHR :: Chain es
next = Chain es
next', (Offset3D, Offset3D)
ImageSubresourceLayers
dstOffsets :: (Offset3D, Offset3D)
dstSubresource :: ImageSubresourceLayers
srcOffsets :: (Offset3D, Offset3D)
srcSubresource :: ImageSubresourceLayers
$sel:dstOffsets:ImageBlit2KHR :: (Offset3D, Offset3D)
$sel:dstSubresource:ImageBlit2KHR :: ImageSubresourceLayers
$sel:srcOffsets:ImageBlit2KHR :: (Offset3D, Offset3D)
$sel:srcSubresource:ImageBlit2KHR :: ImageSubresourceLayers
..}
getNext :: ImageBlit2KHR es -> Chain es
getNext ImageBlit2KHR{(Offset3D, Offset3D)
Chain es
ImageSubresourceLayers
dstOffsets :: (Offset3D, Offset3D)
dstSubresource :: ImageSubresourceLayers
srcOffsets :: (Offset3D, Offset3D)
srcSubresource :: ImageSubresourceLayers
next :: Chain es
$sel:dstOffsets:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> (Offset3D, Offset3D)
$sel:dstSubresource:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> ImageSubresourceLayers
$sel:srcOffsets:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> (Offset3D, Offset3D)
$sel:srcSubresource:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> ImageSubresourceLayers
$sel:next:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b
extends :: proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b
extends proxy e
_ Extends ImageBlit2KHR e => b
f
| Just e :~: CopyCommandTransformInfoQCOM
Refl <- (Typeable e, Typeable CopyCommandTransformInfoQCOM) =>
Maybe (e :~: CopyCommandTransformInfoQCOM)
forall k (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @CopyCommandTransformInfoQCOM = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends ImageBlit2KHR e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es) where
withCStruct :: ImageBlit2KHR es -> (Ptr (ImageBlit2KHR es) -> IO b) -> IO b
withCStruct ImageBlit2KHR es
x Ptr (ImageBlit2KHR es) -> IO b
f = Int -> (Ptr (ImageBlit2KHR es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
96 ((Ptr (ImageBlit2KHR es) -> IO b) -> IO b)
-> (Ptr (ImageBlit2KHR es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (ImageBlit2KHR es)
p -> Ptr (ImageBlit2KHR es) -> ImageBlit2KHR es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (ImageBlit2KHR es)
p ImageBlit2KHR es
x (Ptr (ImageBlit2KHR es) -> IO b
f Ptr (ImageBlit2KHR es)
p)
pokeCStruct :: Ptr (ImageBlit2KHR es) -> ImageBlit2KHR es -> IO b -> IO b
pokeCStruct Ptr (ImageBlit2KHR es)
p ImageBlit2KHR{(Offset3D, Offset3D)
Chain es
ImageSubresourceLayers
dstOffsets :: (Offset3D, Offset3D)
dstSubresource :: ImageSubresourceLayers
srcOffsets :: (Offset3D, Offset3D)
srcSubresource :: ImageSubresourceLayers
next :: Chain es
$sel:dstOffsets:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> (Offset3D, Offset3D)
$sel:dstSubresource:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> ImageSubresourceLayers
$sel:srcOffsets:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> (Offset3D, Offset3D)
$sel:srcSubresource:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> ImageSubresourceLayers
$sel:next:ImageBlit2KHR :: forall (es :: [*]). ImageBlit2KHR es -> Chain es
..} 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 (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 (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)
Ptr ()
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
IO () -> ContT b IO ()
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 (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
IO () -> ContT b IO ()
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 ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
srcSubresource)
let pSrcOffsets' :: Ptr Offset3D
pSrcOffsets' = Ptr (FixedArray 2 Offset3D) -> Ptr Offset3D
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (FixedArray 2 Offset3D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (FixedArray 2 Offset3D)))
IO () -> ContT b IO ()
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
$ case ((Offset3D, Offset3D)
srcOffsets) of
(Offset3D
e0, Offset3D
e1) -> do
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pSrcOffsets' :: Ptr Offset3D) (Offset3D
e0)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pSrcOffsets' Ptr Offset3D -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Offset3D) (Offset3D
e1)
IO () -> ContT b IO ()
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 ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
dstSubresource)
let pDstOffsets' :: Ptr Offset3D
pDstOffsets' = Ptr (FixedArray 2 Offset3D) -> Ptr Offset3D
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (FixedArray 2 Offset3D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr (FixedArray 2 Offset3D)))
IO () -> ContT b IO ()
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
$ case ((Offset3D, Offset3D)
dstOffsets) of
(Offset3D
e0, Offset3D
e1) -> do
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pDstOffsets' :: Ptr Offset3D) (Offset3D
e0)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pDstOffsets' Ptr Offset3D -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Offset3D) (Offset3D
e1)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
96
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr (ImageBlit2KHR es) -> IO b -> IO b
pokeZeroCStruct Ptr (ImageBlit2KHR es)
p 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 (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 (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)
Ptr ()
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ forall a. PokeChain es => (Ptr (Chain es) -> IO a) -> IO a
forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
IO () -> ContT b IO ()
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 (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
IO () -> ContT b IO ()
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 ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
forall a. Zero a => a
zero)
let pSrcOffsets' :: Ptr Offset3D
pSrcOffsets' = Ptr (FixedArray 2 Offset3D) -> Ptr Offset3D
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (FixedArray 2 Offset3D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (FixedArray 2 Offset3D)))
IO () -> ContT b IO ()
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
$ case ((Offset3D
forall a. Zero a => a
zero, Offset3D
forall a. Zero a => a
zero)) of
(Offset3D
e0, Offset3D
e1) -> do
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pSrcOffsets' :: Ptr Offset3D) (Offset3D
e0)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pSrcOffsets' Ptr Offset3D -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Offset3D) (Offset3D
e1)
IO () -> ContT b IO ()
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 ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
forall a. Zero a => a
zero)
let pDstOffsets' :: Ptr Offset3D
pDstOffsets' = Ptr (FixedArray 2 Offset3D) -> Ptr Offset3D
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (FixedArray 2 Offset3D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr (FixedArray 2 Offset3D)))
IO () -> ContT b IO ()
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
$ case ((Offset3D
forall a. Zero a => a
zero, Offset3D
forall a. Zero a => a
zero)) of
(Offset3D
e0, Offset3D
e1) -> do
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pDstOffsets' :: Ptr Offset3D) (Offset3D
e0)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Offset3D
pDstOffsets' Ptr Offset3D -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12 :: Ptr Offset3D) (Offset3D
e1)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es) where
peekCStruct :: Ptr (ImageBlit2KHR es) -> IO (ImageBlit2KHR es)
peekCStruct Ptr (ImageBlit2KHR es)
p = do
Ptr ()
pNext <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- Ptr (Chain es) -> IO (Chain es)
forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (Ptr () -> Ptr (Chain es)
forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
ImageSubresourceLayers
srcSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers))
let psrcOffsets :: Ptr Offset3D
psrcOffsets = Ptr (FixedArray 2 Offset3D) -> Ptr Offset3D
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr @Offset3D ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (FixedArray 2 Offset3D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (FixedArray 2 Offset3D)))
Offset3D
srcOffsets0 <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr Offset3D
psrcOffsets Ptr Offset3D -> Int -> Ptr Offset3D
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` Int
0 :: Ptr Offset3D))
Offset3D
srcOffsets1 <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr Offset3D
psrcOffsets Ptr Offset3D -> Int -> Ptr Offset3D
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` Int
12 :: Ptr Offset3D))
ImageSubresourceLayers
dstSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr ImageSubresourceLayers))
let pdstOffsets :: Ptr Offset3D
pdstOffsets = Ptr (FixedArray 2 Offset3D) -> Ptr Offset3D
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr @Offset3D ((Ptr (ImageBlit2KHR es)
p Ptr (ImageBlit2KHR es) -> Int -> Ptr (FixedArray 2 Offset3D)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr (FixedArray 2 Offset3D)))
Offset3D
dstOffsets0 <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr Offset3D
pdstOffsets Ptr Offset3D -> Int -> Ptr Offset3D
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` Int
0 :: Ptr Offset3D))
Offset3D
dstOffsets1 <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr Offset3D
pdstOffsets Ptr Offset3D -> Int -> Ptr Offset3D
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` Int
12 :: Ptr Offset3D))
ImageBlit2KHR es -> IO (ImageBlit2KHR es)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ImageBlit2KHR es -> IO (ImageBlit2KHR es))
-> ImageBlit2KHR es -> IO (ImageBlit2KHR es)
forall a b. (a -> b) -> a -> b
$ Chain es
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageBlit2KHR es
forall (es :: [*]).
Chain es
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageBlit2KHR es
ImageBlit2KHR
Chain es
next ImageSubresourceLayers
srcSubresource ((Offset3D
srcOffsets0, Offset3D
srcOffsets1)) ImageSubresourceLayers
dstSubresource ((Offset3D
dstOffsets0, Offset3D
dstOffsets1))
instance es ~ '[] => Zero (ImageBlit2KHR es) where
zero :: ImageBlit2KHR es
zero = Chain es
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageBlit2KHR es
forall (es :: [*]).
Chain es
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageSubresourceLayers
-> (Offset3D, Offset3D)
-> ImageBlit2KHR es
ImageBlit2KHR
()
ImageSubresourceLayers
forall a. Zero a => a
zero
(Offset3D
forall a. Zero a => a
zero, Offset3D
forall a. Zero a => a
zero)
ImageSubresourceLayers
forall a. Zero a => a
zero
(Offset3D
forall a. Zero a => a
zero, Offset3D
forall a. Zero a => a
zero)
data BufferImageCopy2KHR (es :: [Type]) = BufferImageCopy2KHR
{
BufferImageCopy2KHR es -> Chain es
next :: Chain es
,
BufferImageCopy2KHR es -> DeviceSize
bufferOffset :: DeviceSize
,
BufferImageCopy2KHR es -> Word32
bufferRowLength :: Word32
,
BufferImageCopy2KHR es -> Word32
bufferImageHeight :: Word32
,
BufferImageCopy2KHR es -> ImageSubresourceLayers
imageSubresource :: ImageSubresourceLayers
,
BufferImageCopy2KHR es -> Offset3D
imageOffset :: Offset3D
,
BufferImageCopy2KHR es -> Extent3D
imageExtent :: Extent3D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BufferImageCopy2KHR (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (BufferImageCopy2KHR es)
instance Extensible BufferImageCopy2KHR where
extensibleTypeName :: String
extensibleTypeName = String
"BufferImageCopy2KHR"
setNext :: BufferImageCopy2KHR ds -> Chain es -> BufferImageCopy2KHR es
setNext BufferImageCopy2KHR{Word32
DeviceSize
Chain ds
ImageSubresourceLayers
Offset3D
Extent3D
imageExtent :: Extent3D
imageOffset :: Offset3D
imageSubresource :: ImageSubresourceLayers
bufferImageHeight :: Word32
bufferRowLength :: Word32
bufferOffset :: DeviceSize
next :: Chain ds
$sel:imageExtent:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Extent3D
$sel:imageOffset:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Offset3D
$sel:imageSubresource:BufferImageCopy2KHR :: forall (es :: [*]).
BufferImageCopy2KHR es -> ImageSubresourceLayers
$sel:bufferImageHeight:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Word32
$sel:bufferRowLength:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Word32
$sel:bufferOffset:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> DeviceSize
$sel:next:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Chain es
..} Chain es
next' = BufferImageCopy2KHR :: forall (es :: [*]).
Chain es
-> DeviceSize
-> Word32
-> Word32
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> BufferImageCopy2KHR es
BufferImageCopy2KHR{$sel:next:BufferImageCopy2KHR :: Chain es
next = Chain es
next', Word32
DeviceSize
ImageSubresourceLayers
Offset3D
Extent3D
imageExtent :: Extent3D
imageOffset :: Offset3D
imageSubresource :: ImageSubresourceLayers
bufferImageHeight :: Word32
bufferRowLength :: Word32
bufferOffset :: DeviceSize
$sel:imageExtent:BufferImageCopy2KHR :: Extent3D
$sel:imageOffset:BufferImageCopy2KHR :: Offset3D
$sel:imageSubresource:BufferImageCopy2KHR :: ImageSubresourceLayers
$sel:bufferImageHeight:BufferImageCopy2KHR :: Word32
$sel:bufferRowLength:BufferImageCopy2KHR :: Word32
$sel:bufferOffset:BufferImageCopy2KHR :: DeviceSize
..}
getNext :: BufferImageCopy2KHR es -> Chain es
getNext BufferImageCopy2KHR{Word32
DeviceSize
Chain es
ImageSubresourceLayers
Offset3D
Extent3D
imageExtent :: Extent3D
imageOffset :: Offset3D
imageSubresource :: ImageSubresourceLayers
bufferImageHeight :: Word32
bufferRowLength :: Word32
bufferOffset :: DeviceSize
next :: Chain es
$sel:imageExtent:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Extent3D
$sel:imageOffset:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Offset3D
$sel:imageSubresource:BufferImageCopy2KHR :: forall (es :: [*]).
BufferImageCopy2KHR es -> ImageSubresourceLayers
$sel:bufferImageHeight:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Word32
$sel:bufferRowLength:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Word32
$sel:bufferOffset:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> DeviceSize
$sel:next:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b
extends :: proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b
extends proxy e
_ Extends BufferImageCopy2KHR e => b
f
| Just e :~: CopyCommandTransformInfoQCOM
Refl <- (Typeable e, Typeable CopyCommandTransformInfoQCOM) =>
Maybe (e :~: CopyCommandTransformInfoQCOM)
forall k (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @CopyCommandTransformInfoQCOM = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends BufferImageCopy2KHR e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es) where
withCStruct :: BufferImageCopy2KHR es
-> (Ptr (BufferImageCopy2KHR es) -> IO b) -> IO b
withCStruct BufferImageCopy2KHR es
x Ptr (BufferImageCopy2KHR es) -> IO b
f = Int -> (Ptr (BufferImageCopy2KHR es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
72 ((Ptr (BufferImageCopy2KHR es) -> IO b) -> IO b)
-> (Ptr (BufferImageCopy2KHR es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (BufferImageCopy2KHR es)
p -> Ptr (BufferImageCopy2KHR es)
-> BufferImageCopy2KHR es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (BufferImageCopy2KHR es)
p BufferImageCopy2KHR es
x (Ptr (BufferImageCopy2KHR es) -> IO b
f Ptr (BufferImageCopy2KHR es)
p)
pokeCStruct :: Ptr (BufferImageCopy2KHR es)
-> BufferImageCopy2KHR es -> IO b -> IO b
pokeCStruct Ptr (BufferImageCopy2KHR es)
p BufferImageCopy2KHR{Word32
DeviceSize
Chain es
ImageSubresourceLayers
Offset3D
Extent3D
imageExtent :: Extent3D
imageOffset :: Offset3D
imageSubresource :: ImageSubresourceLayers
bufferImageHeight :: Word32
bufferRowLength :: Word32
bufferOffset :: DeviceSize
next :: Chain es
$sel:imageExtent:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Extent3D
$sel:imageOffset:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Offset3D
$sel:imageSubresource:BufferImageCopy2KHR :: forall (es :: [*]).
BufferImageCopy2KHR es -> ImageSubresourceLayers
$sel:bufferImageHeight:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Word32
$sel:bufferRowLength:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Word32
$sel:bufferOffset:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> DeviceSize
$sel:next:BufferImageCopy2KHR :: forall (es :: [*]). BufferImageCopy2KHR es -> Chain es
..} 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 (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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)
Ptr ()
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
IO () -> ContT b IO ()
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 DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
bufferOffset)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
bufferRowLength)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (Word32
bufferImageHeight)
IO () -> ContT b IO ()
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 ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
imageSubresource)
IO () -> ContT b IO ()
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 Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Offset3D)) (Offset3D
imageOffset)
IO () -> ContT b IO ()
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 Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Extent3D)) (Extent3D
imageExtent)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
72
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr (BufferImageCopy2KHR es) -> IO b -> IO b
pokeZeroCStruct Ptr (BufferImageCopy2KHR es)
p 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 (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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)
Ptr ()
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ forall a. PokeChain es => (Ptr (Chain es) -> IO a) -> IO a
forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
IO () -> ContT b IO ()
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 DeviceSize -> DeviceSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (DeviceSize
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Offset3D)) (Offset3D
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
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 Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Extent3D)) (Extent3D
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es) where
peekCStruct :: Ptr (BufferImageCopy2KHR es) -> IO (BufferImageCopy2KHR es)
peekCStruct Ptr (BufferImageCopy2KHR es)
p = do
Ptr ()
pNext <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- Ptr (Chain es) -> IO (Chain es)
forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (Ptr () -> Ptr (Chain es)
forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
DeviceSize
bufferOffset <- Ptr DeviceSize -> IO DeviceSize
forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr DeviceSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
Word32
bufferRowLength <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
Word32
bufferImageHeight <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32))
ImageSubresourceLayers
imageSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageSubresourceLayers))
Offset3D
imageOffset <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Offset3D))
Extent3D
imageExtent <- Ptr Extent3D -> IO Extent3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent3D ((Ptr (BufferImageCopy2KHR es)
p Ptr (BufferImageCopy2KHR es) -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Extent3D))
BufferImageCopy2KHR es -> IO (BufferImageCopy2KHR es)
forall (f :: * -> *) a. Applicative f => a -> f a
pure (BufferImageCopy2KHR es -> IO (BufferImageCopy2KHR es))
-> BufferImageCopy2KHR es -> IO (BufferImageCopy2KHR es)
forall a b. (a -> b) -> a -> b
$ Chain es
-> DeviceSize
-> Word32
-> Word32
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> BufferImageCopy2KHR es
forall (es :: [*]).
Chain es
-> DeviceSize
-> Word32
-> Word32
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> BufferImageCopy2KHR es
BufferImageCopy2KHR
Chain es
next DeviceSize
bufferOffset Word32
bufferRowLength Word32
bufferImageHeight ImageSubresourceLayers
imageSubresource Offset3D
imageOffset Extent3D
imageExtent
instance es ~ '[] => Zero (BufferImageCopy2KHR es) where
zero :: BufferImageCopy2KHR es
zero = Chain es
-> DeviceSize
-> Word32
-> Word32
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> BufferImageCopy2KHR es
forall (es :: [*]).
Chain es
-> DeviceSize
-> Word32
-> Word32
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> BufferImageCopy2KHR es
BufferImageCopy2KHR
()
DeviceSize
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 ImageResolve2KHR = ImageResolve2KHR
{
ImageResolve2KHR -> ImageSubresourceLayers
srcSubresource :: ImageSubresourceLayers
,
ImageResolve2KHR -> Offset3D
srcOffset :: Offset3D
,
ImageResolve2KHR -> ImageSubresourceLayers
dstSubresource :: ImageSubresourceLayers
,
ImageResolve2KHR -> Offset3D
dstOffset :: Offset3D
,
ImageResolve2KHR -> Extent3D
extent :: Extent3D
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageResolve2KHR)
#endif
deriving instance Show ImageResolve2KHR
instance ToCStruct ImageResolve2KHR where
withCStruct :: ImageResolve2KHR -> (Ptr ImageResolve2KHR -> IO b) -> IO b
withCStruct ImageResolve2KHR
x Ptr ImageResolve2KHR -> IO b
f = Int -> (Ptr ImageResolve2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
88 ((Ptr ImageResolve2KHR -> IO b) -> IO b)
-> (Ptr ImageResolve2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ImageResolve2KHR
p -> Ptr ImageResolve2KHR -> ImageResolve2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageResolve2KHR
p ImageResolve2KHR
x (Ptr ImageResolve2KHR -> IO b
f Ptr ImageResolve2KHR
p)
pokeCStruct :: Ptr ImageResolve2KHR -> ImageResolve2KHR -> IO b -> IO b
pokeCStruct Ptr ImageResolve2KHR
p ImageResolve2KHR{ImageSubresourceLayers
Offset3D
Extent3D
extent :: Extent3D
dstOffset :: Offset3D
dstSubresource :: ImageSubresourceLayers
srcOffset :: Offset3D
srcSubresource :: ImageSubresourceLayers
$sel:extent:ImageResolve2KHR :: ImageResolve2KHR -> Extent3D
$sel:dstOffset:ImageResolve2KHR :: ImageResolve2KHR -> Offset3D
$sel:dstSubresource:ImageResolve2KHR :: ImageResolve2KHR -> ImageSubresourceLayers
$sel:srcOffset:ImageResolve2KHR :: ImageResolve2KHR -> Offset3D
$sel:srcSubresource:ImageResolve2KHR :: ImageResolve2KHR -> ImageSubresourceLayers
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
srcSubresource)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D)) (Offset3D
srcOffset)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
dstSubresource)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Offset3D)) (Offset3D
dstOffset)
Ptr Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Extent3D)) (Extent3D
extent)
IO b
f
cStructSize :: Int
cStructSize = Int
88
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr ImageResolve2KHR -> IO b -> IO b
pokeZeroCStruct Ptr ImageResolve2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> 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 ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D)) (Offset3D
forall a. Zero a => a
zero)
Ptr ImageSubresourceLayers -> ImageSubresourceLayers -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr ImageSubresourceLayers)) (ImageSubresourceLayers
forall a. Zero a => a
zero)
Ptr Offset3D -> Offset3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Offset3D)) (Offset3D
forall a. Zero a => a
zero)
Ptr Extent3D -> Extent3D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Extent3D)) (Extent3D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ImageResolve2KHR where
peekCStruct :: Ptr ImageResolve2KHR -> IO ImageResolve2KHR
peekCStruct Ptr ImageResolve2KHR
p = do
ImageSubresourceLayers
srcSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageSubresourceLayers))
Offset3D
srcOffset <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Offset3D))
ImageSubresourceLayers
dstSubresource <- Ptr ImageSubresourceLayers -> IO ImageSubresourceLayers
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageSubresourceLayers ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr ImageSubresourceLayers
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr ImageSubresourceLayers))
Offset3D
dstOffset <- Ptr Offset3D -> IO Offset3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Offset3D ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Offset3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Offset3D))
Extent3D
extent <- Ptr Extent3D -> IO Extent3D
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent3D ((Ptr ImageResolve2KHR
p Ptr ImageResolve2KHR -> Int -> Ptr Extent3D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Extent3D))
ImageResolve2KHR -> IO ImageResolve2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ImageResolve2KHR -> IO ImageResolve2KHR)
-> ImageResolve2KHR -> IO ImageResolve2KHR
forall a b. (a -> b) -> a -> b
$ ImageSubresourceLayers
-> Offset3D
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> ImageResolve2KHR
ImageResolve2KHR
ImageSubresourceLayers
srcSubresource Offset3D
srcOffset ImageSubresourceLayers
dstSubresource Offset3D
dstOffset Extent3D
extent
instance Storable ImageResolve2KHR where
sizeOf :: ImageResolve2KHR -> Int
sizeOf ~ImageResolve2KHR
_ = Int
88
alignment :: ImageResolve2KHR -> Int
alignment ~ImageResolve2KHR
_ = Int
8
peek :: Ptr ImageResolve2KHR -> IO ImageResolve2KHR
peek = Ptr ImageResolve2KHR -> IO ImageResolve2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ImageResolve2KHR -> ImageResolve2KHR -> IO ()
poke Ptr ImageResolve2KHR
ptr ImageResolve2KHR
poked = Ptr ImageResolve2KHR -> ImageResolve2KHR -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageResolve2KHR
ptr ImageResolve2KHR
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ImageResolve2KHR where
zero :: ImageResolve2KHR
zero = ImageSubresourceLayers
-> Offset3D
-> ImageSubresourceLayers
-> Offset3D
-> Extent3D
-> ImageResolve2KHR
ImageResolve2KHR
ImageSubresourceLayers
forall a. Zero a => a
zero
Offset3D
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 CopyBufferInfo2KHR = CopyBufferInfo2KHR
{
CopyBufferInfo2KHR -> Buffer
srcBuffer :: Buffer
,
CopyBufferInfo2KHR -> Buffer
dstBuffer :: Buffer
,
CopyBufferInfo2KHR -> Vector BufferCopy2KHR
regions :: Vector BufferCopy2KHR
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyBufferInfo2KHR)
#endif
deriving instance Show CopyBufferInfo2KHR
instance ToCStruct CopyBufferInfo2KHR where
withCStruct :: CopyBufferInfo2KHR
-> (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b) -> IO b
withCStruct CopyBufferInfo2KHR
x ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b
f = Int
-> (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b) -> IO b)
-> (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \"pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> CopyBufferInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p CopyBufferInfo2KHR
x (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b
f "pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p)
pokeCStruct :: ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> CopyBufferInfo2KHR -> IO b -> IO b
pokeCStruct "pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p CopyBufferInfo2KHR{Vector BufferCopy2KHR
Buffer
regions :: Vector BufferCopy2KHR
dstBuffer :: Buffer
srcBuffer :: Buffer
$sel:regions:CopyBufferInfo2KHR :: CopyBufferInfo2KHR -> Vector BufferCopy2KHR
$sel:dstBuffer:CopyBufferInfo2KHR :: CopyBufferInfo2KHR -> Buffer
$sel:srcBuffer:CopyBufferInfo2KHR :: CopyBufferInfo2KHR -> Buffer
..} 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 (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 (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)
IO () -> ContT b IO ()
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 (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> 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 (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 Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
srcBuffer)
IO () -> ContT b IO ()
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 Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer)) (Buffer
dstBuffer)
IO () -> ContT b IO ()
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 (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector BufferCopy2KHR -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector BufferCopy2KHR -> Int) -> Vector BufferCopy2KHR -> Int
forall a b. (a -> b) -> a -> b
$ (Vector BufferCopy2KHR
regions)) :: Word32))
Ptr BufferCopy2KHR
pPRegions' <- ((Ptr BufferCopy2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr BufferCopy2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr BufferCopy2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr BufferCopy2KHR))
-> ((Ptr BufferCopy2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr BufferCopy2KHR)
forall a b. (a -> b) -> a -> b
$ Int -> (Ptr BufferCopy2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @BufferCopy2KHR ((Vector BufferCopy2KHR -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector BufferCopy2KHR
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
40)
IO () -> ContT b IO ()
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
$ (Int -> BufferCopy2KHR -> IO ()) -> Vector BufferCopy2KHR -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i BufferCopy2KHR
e -> Ptr BufferCopy2KHR -> BufferCopy2KHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr BufferCopy2KHR
pPRegions' Ptr BufferCopy2KHR -> Int -> Ptr BufferCopy2KHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
40 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr BufferCopy2KHR) (BufferCopy2KHR
e)) (Vector BufferCopy2KHR
regions)
IO () -> ContT b IO ()
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 BufferCopy2KHR) -> Ptr BufferCopy2KHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> Int -> Ptr (Ptr BufferCopy2KHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr (Ptr BufferCopy2KHR))) (Ptr BufferCopy2KHR
pPRegions')
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO b -> IO b
pokeZeroCStruct "pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyBufferInfo2KHR where
peekCStruct :: ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> IO CopyBufferInfo2KHR
peekCStruct "pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p = do
Buffer
srcBuffer <- Ptr Buffer -> IO Buffer
forall a. Storable a => Ptr a -> IO a
peek @Buffer (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer))
Buffer
dstBuffer <- Ptr Buffer -> IO Buffer
forall a. Storable a => Ptr a -> IO a
peek @Buffer (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Buffer))
Word32
regionCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32))
Ptr BufferCopy2KHR
pRegions <- Ptr (Ptr BufferCopy2KHR) -> IO (Ptr BufferCopy2KHR)
forall a. Storable a => Ptr a -> IO a
peek @(Ptr BufferCopy2KHR) (("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR
p ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR)
-> Int -> Ptr (Ptr BufferCopy2KHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr (Ptr BufferCopy2KHR)))
Vector BufferCopy2KHR
pRegions' <- Int -> (Int -> IO BufferCopy2KHR) -> IO (Vector BufferCopy2KHR)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
regionCount) (\Int
i -> Ptr BufferCopy2KHR -> IO BufferCopy2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @BufferCopy2KHR ((Ptr BufferCopy2KHR
pRegions Ptr BufferCopy2KHR -> Int -> Ptr BufferCopy2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
40 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr BufferCopy2KHR)))
CopyBufferInfo2KHR -> IO CopyBufferInfo2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CopyBufferInfo2KHR -> IO CopyBufferInfo2KHR)
-> CopyBufferInfo2KHR -> IO CopyBufferInfo2KHR
forall a b. (a -> b) -> a -> b
$ Buffer -> Buffer -> Vector BufferCopy2KHR -> CopyBufferInfo2KHR
CopyBufferInfo2KHR
Buffer
srcBuffer Buffer
dstBuffer Vector BufferCopy2KHR
pRegions'
instance Zero CopyBufferInfo2KHR where
zero :: CopyBufferInfo2KHR
zero = Buffer -> Buffer -> Vector BufferCopy2KHR -> CopyBufferInfo2KHR
CopyBufferInfo2KHR
Buffer
forall a. Zero a => a
zero
Buffer
forall a. Zero a => a
zero
Vector BufferCopy2KHR
forall a. Monoid a => a
mempty
data CopyImageInfo2KHR = CopyImageInfo2KHR
{
CopyImageInfo2KHR -> Image
srcImage :: Image
,
CopyImageInfo2KHR -> ImageLayout
srcImageLayout :: ImageLayout
,
CopyImageInfo2KHR -> Image
dstImage :: Image
,
CopyImageInfo2KHR -> ImageLayout
dstImageLayout :: ImageLayout
,
CopyImageInfo2KHR -> Vector ImageCopy2KHR
regions :: Vector ImageCopy2KHR
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyImageInfo2KHR)
#endif
deriving instance Show CopyImageInfo2KHR
instance ToCStruct CopyImageInfo2KHR where
withCStruct :: CopyImageInfo2KHR
-> (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b) -> IO b
withCStruct CopyImageInfo2KHR
x ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b
f = Int
-> (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b) -> IO b)
-> (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \"pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> CopyImageInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p CopyImageInfo2KHR
x (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b
f "pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p)
pokeCStruct :: ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> CopyImageInfo2KHR -> IO b -> IO b
pokeCStruct "pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p CopyImageInfo2KHR{Vector ImageCopy2KHR
ImageLayout
Image
regions :: Vector ImageCopy2KHR
dstImageLayout :: ImageLayout
dstImage :: Image
srcImageLayout :: ImageLayout
srcImage :: Image
$sel:regions:CopyImageInfo2KHR :: CopyImageInfo2KHR -> Vector ImageCopy2KHR
$sel:dstImageLayout:CopyImageInfo2KHR :: CopyImageInfo2KHR -> ImageLayout
$sel:dstImage:CopyImageInfo2KHR :: CopyImageInfo2KHR -> Image
$sel:srcImageLayout:CopyImageInfo2KHR :: CopyImageInfo2KHR -> ImageLayout
$sel:srcImage:CopyImageInfo2KHR :: CopyImageInfo2KHR -> Image
..} 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 (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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)
IO () -> ContT b IO ()
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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> 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 (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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
srcImage)
IO () -> ContT b IO ()
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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
srcImageLayout)
IO () -> ContT b IO ()
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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image)) (Image
dstImage)
IO () -> ContT b IO ()
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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout)) (ImageLayout
dstImageLayout)
IO () -> ContT b IO ()
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 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector ImageCopy2KHR -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector ImageCopy2KHR -> Int) -> Vector ImageCopy2KHR -> Int
forall a b. (a -> b) -> a -> b
$ (Vector ImageCopy2KHR
regions)) :: Word32))
Ptr ImageCopy2KHR
pPRegions' <- ((Ptr ImageCopy2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr ImageCopy2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ImageCopy2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr ImageCopy2KHR))
-> ((Ptr ImageCopy2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr ImageCopy2KHR)
forall a b. (a -> b) -> a -> b
$ Int -> (Ptr ImageCopy2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @ImageCopy2KHR ((Vector ImageCopy2KHR -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector ImageCopy2KHR
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
88)
IO () -> ContT b IO ()
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
$ (Int -> ImageCopy2KHR -> IO ()) -> Vector ImageCopy2KHR -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i ImageCopy2KHR
e -> Ptr ImageCopy2KHR -> ImageCopy2KHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ImageCopy2KHR
pPRegions' Ptr ImageCopy2KHR -> Int -> Ptr ImageCopy2KHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
88 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ImageCopy2KHR) (ImageCopy2KHR
e)) (Vector ImageCopy2KHR
regions)
IO () -> ContT b IO ()
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 ImageCopy2KHR) -> Ptr ImageCopy2KHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr (Ptr ImageCopy2KHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr ImageCopy2KHR))) (Ptr ImageCopy2KHR
pPRegions')
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO b -> IO b
pokeZeroCStruct "pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyImageInfo2KHR where
peekCStruct :: ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> IO CopyImageInfo2KHR
peekCStruct "pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p = do
Image
srcImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image))
ImageLayout
srcImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout))
Image
dstImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image))
ImageLayout
dstImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout))
Word32
regionCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32))
Ptr ImageCopy2KHR
pRegions <- Ptr (Ptr ImageCopy2KHR) -> IO (Ptr ImageCopy2KHR)
forall a. Storable a => Ptr a -> IO a
peek @(Ptr ImageCopy2KHR) (("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR
p ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR)
-> Int -> Ptr (Ptr ImageCopy2KHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr ImageCopy2KHR)))
Vector ImageCopy2KHR
pRegions' <- Int -> (Int -> IO ImageCopy2KHR) -> IO (Vector ImageCopy2KHR)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
regionCount) (\Int
i -> Ptr ImageCopy2KHR -> IO ImageCopy2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageCopy2KHR ((Ptr ImageCopy2KHR
pRegions Ptr ImageCopy2KHR -> Int -> Ptr ImageCopy2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
88 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ImageCopy2KHR)))
CopyImageInfo2KHR -> IO CopyImageInfo2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CopyImageInfo2KHR -> IO CopyImageInfo2KHR)
-> CopyImageInfo2KHR -> IO CopyImageInfo2KHR
forall a b. (a -> b) -> a -> b
$ Image
-> ImageLayout
-> Image
-> ImageLayout
-> Vector ImageCopy2KHR
-> CopyImageInfo2KHR
CopyImageInfo2KHR
Image
srcImage ImageLayout
srcImageLayout Image
dstImage ImageLayout
dstImageLayout Vector ImageCopy2KHR
pRegions'
instance Zero CopyImageInfo2KHR where
zero :: CopyImageInfo2KHR
zero = Image
-> ImageLayout
-> Image
-> ImageLayout
-> Vector ImageCopy2KHR
-> CopyImageInfo2KHR
CopyImageInfo2KHR
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Vector ImageCopy2KHR
forall a. Monoid a => a
mempty
data BlitImageInfo2KHR = BlitImageInfo2KHR
{
BlitImageInfo2KHR -> Image
srcImage :: Image
,
BlitImageInfo2KHR -> ImageLayout
srcImageLayout :: ImageLayout
,
BlitImageInfo2KHR -> Image
dstImage :: Image
,
BlitImageInfo2KHR -> ImageLayout
dstImageLayout :: ImageLayout
,
BlitImageInfo2KHR -> Vector (SomeStruct ImageBlit2KHR)
regions :: Vector (SomeStruct ImageBlit2KHR)
,
BlitImageInfo2KHR -> Filter
filter' :: Filter
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (BlitImageInfo2KHR)
#endif
deriving instance Show BlitImageInfo2KHR
instance ToCStruct BlitImageInfo2KHR where
withCStruct :: BlitImageInfo2KHR
-> (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b) -> IO b
withCStruct BlitImageInfo2KHR
x ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b
f = Int
-> (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
64 ((("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b) -> IO b)
-> (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \"pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> BlitImageInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p BlitImageInfo2KHR
x (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b
f "pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p)
pokeCStruct :: ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> BlitImageInfo2KHR -> IO b -> IO b
pokeCStruct "pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p BlitImageInfo2KHR{Vector (SomeStruct ImageBlit2KHR)
Filter
ImageLayout
Image
filter' :: Filter
regions :: Vector (SomeStruct ImageBlit2KHR)
dstImageLayout :: ImageLayout
dstImage :: Image
srcImageLayout :: ImageLayout
srcImage :: Image
$sel:filter':BlitImageInfo2KHR :: BlitImageInfo2KHR -> Filter
$sel:regions:BlitImageInfo2KHR :: BlitImageInfo2KHR -> Vector (SomeStruct ImageBlit2KHR)
$sel:dstImageLayout:BlitImageInfo2KHR :: BlitImageInfo2KHR -> ImageLayout
$sel:dstImage:BlitImageInfo2KHR :: BlitImageInfo2KHR -> Image
$sel:srcImageLayout:BlitImageInfo2KHR :: BlitImageInfo2KHR -> ImageLayout
$sel:srcImage:BlitImageInfo2KHR :: BlitImageInfo2KHR -> Image
..} 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 (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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)
IO () -> ContT b IO ()
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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> 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 (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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
srcImage)
IO () -> ContT b IO ()
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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
srcImageLayout)
IO () -> ContT b IO ()
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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image)) (Image
dstImage)
IO () -> ContT b IO ()
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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout)) (ImageLayout
dstImageLayout)
IO () -> ContT b IO ()
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 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector (SomeStruct ImageBlit2KHR) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct ImageBlit2KHR) -> Int)
-> Vector (SomeStruct ImageBlit2KHR) -> Int
forall a b. (a -> b) -> a -> b
$ (Vector (SomeStruct ImageBlit2KHR)
regions)) :: Word32))
Ptr (ImageBlit2KHR Any)
pPRegions' <- ((Ptr (ImageBlit2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageBlit2KHR Any))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (ImageBlit2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageBlit2KHR Any)))
-> ((Ptr (ImageBlit2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (ImageBlit2KHR Any))
forall a b. (a -> b) -> a -> b
$ Int -> (Ptr (ImageBlit2KHR Any) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(ImageBlit2KHR _) ((Vector (SomeStruct ImageBlit2KHR) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct ImageBlit2KHR)
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
96)
(Int -> SomeStruct ImageBlit2KHR -> ContT b IO ())
-> Vector (SomeStruct ImageBlit2KHR) -> ContT b IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i SomeStruct ImageBlit2KHR
e -> ((() -> IO b) -> IO b) -> ContT b IO ()
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct ImageBlit2KHR)
-> SomeStruct ImageBlit2KHR -> IO b -> IO b
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (ImageBlit2KHR Any) -> Ptr (SomeStruct ImageBlit2KHR)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (ImageBlit2KHR Any)
pPRegions' Ptr (ImageBlit2KHR Any) -> Int -> Ptr (ImageBlit2KHR _)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
96 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (ImageBlit2KHR _))) (SomeStruct ImageBlit2KHR
e) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())) (Vector (SomeStruct ImageBlit2KHR)
regions)
IO () -> ContT b IO ()
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 (ImageBlit2KHR Any)) -> Ptr (ImageBlit2KHR Any) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr (Ptr (ImageBlit2KHR _))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr (ImageBlit2KHR _)))) (Ptr (ImageBlit2KHR Any)
pPRegions')
IO () -> ContT b IO ()
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 Filter -> Filter -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Filter
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Filter)) (Filter
filter')
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
64
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO b -> IO b
pokeZeroCStruct "pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
Ptr Filter -> Filter -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Filter
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Filter)) (Filter
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct BlitImageInfo2KHR where
peekCStruct :: ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> IO BlitImageInfo2KHR
peekCStruct "pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p = do
Image
srcImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image))
ImageLayout
srcImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout))
Image
dstImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image))
ImageLayout
dstImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout))
Word32
regionCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32))
Ptr (ImageBlit2KHR Any)
pRegions <- Ptr (Ptr (ImageBlit2KHR Any)) -> IO (Ptr (ImageBlit2KHR Any))
forall a. Storable a => Ptr a -> IO a
peek @(Ptr (ImageBlit2KHR _)) (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR)
-> Int -> Ptr (Ptr (ImageBlit2KHR _))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr (ImageBlit2KHR _))))
Vector (SomeStruct ImageBlit2KHR)
pRegions' <- Int
-> (Int -> IO (SomeStruct ImageBlit2KHR))
-> IO (Vector (SomeStruct ImageBlit2KHR))
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
regionCount) (\Int
i -> Ptr (SomeStruct ImageBlit2KHR) -> IO (SomeStruct ImageBlit2KHR)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (ImageBlit2KHR Any) -> Ptr (SomeStruct ImageBlit2KHR)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions ((Ptr (ImageBlit2KHR Any)
pRegions Ptr (ImageBlit2KHR Any) -> Int -> Ptr (ImageBlit2KHR Any)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
96 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (ImageBlit2KHR _)))))
Filter
filter' <- Ptr Filter -> IO Filter
forall a. Storable a => Ptr a -> IO a
peek @Filter (("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR
p ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> Int -> Ptr Filter
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Filter))
BlitImageInfo2KHR -> IO BlitImageInfo2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (BlitImageInfo2KHR -> IO BlitImageInfo2KHR)
-> BlitImageInfo2KHR -> IO BlitImageInfo2KHR
forall a b. (a -> b) -> a -> b
$ Image
-> ImageLayout
-> Image
-> ImageLayout
-> Vector (SomeStruct ImageBlit2KHR)
-> Filter
-> BlitImageInfo2KHR
BlitImageInfo2KHR
Image
srcImage ImageLayout
srcImageLayout Image
dstImage ImageLayout
dstImageLayout Vector (SomeStruct ImageBlit2KHR)
pRegions' Filter
filter'
instance Zero BlitImageInfo2KHR where
zero :: BlitImageInfo2KHR
zero = Image
-> ImageLayout
-> Image
-> ImageLayout
-> Vector (SomeStruct ImageBlit2KHR)
-> Filter
-> BlitImageInfo2KHR
BlitImageInfo2KHR
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Vector (SomeStruct ImageBlit2KHR)
forall a. Monoid a => a
mempty
Filter
forall a. Zero a => a
zero
data CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2KHR
{
CopyBufferToImageInfo2KHR -> Buffer
srcBuffer :: Buffer
,
CopyBufferToImageInfo2KHR -> Image
dstImage :: Image
,
CopyBufferToImageInfo2KHR -> ImageLayout
dstImageLayout :: ImageLayout
,
CopyBufferToImageInfo2KHR
-> Vector (SomeStruct BufferImageCopy2KHR)
regions :: Vector (SomeStruct BufferImageCopy2KHR)
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyBufferToImageInfo2KHR)
#endif
deriving instance Show CopyBufferToImageInfo2KHR
instance ToCStruct CopyBufferToImageInfo2KHR where
withCStruct :: CopyBufferToImageInfo2KHR
-> (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b)
-> IO b
withCStruct CopyBufferToImageInfo2KHR
x ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b
f = Int
-> (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b)
-> IO b)
-> (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \"pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> CopyBufferToImageInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p CopyBufferToImageInfo2KHR
x (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b
f "pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p)
pokeCStruct :: ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> CopyBufferToImageInfo2KHR -> IO b -> IO b
pokeCStruct "pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p CopyBufferToImageInfo2KHR{Vector (SomeStruct BufferImageCopy2KHR)
ImageLayout
Image
Buffer
regions :: Vector (SomeStruct BufferImageCopy2KHR)
dstImageLayout :: ImageLayout
dstImage :: Image
srcBuffer :: Buffer
$sel:regions:CopyBufferToImageInfo2KHR :: CopyBufferToImageInfo2KHR
-> Vector (SomeStruct BufferImageCopy2KHR)
$sel:dstImageLayout:CopyBufferToImageInfo2KHR :: CopyBufferToImageInfo2KHR -> ImageLayout
$sel:dstImage:CopyBufferToImageInfo2KHR :: CopyBufferToImageInfo2KHR -> Image
$sel:srcBuffer:CopyBufferToImageInfo2KHR :: CopyBufferToImageInfo2KHR -> Buffer
..} 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 (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 (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)
IO () -> ContT b IO ()
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 (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> 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 (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 Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
srcBuffer)
IO () -> ContT b IO ()
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 (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Image)) (Image
dstImage)
IO () -> ContT b IO ()
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 (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageLayout)) (ImageLayout
dstImageLayout)
IO () -> ContT b IO ()
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 (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector (SomeStruct BufferImageCopy2KHR) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct BufferImageCopy2KHR) -> Int)
-> Vector (SomeStruct BufferImageCopy2KHR) -> Int
forall a b. (a -> b) -> a -> b
$ (Vector (SomeStruct BufferImageCopy2KHR)
regions)) :: Word32))
Ptr (BufferImageCopy2KHR Any)
pPRegions' <- ((Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (BufferImageCopy2KHR Any))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (BufferImageCopy2KHR Any)))
-> ((Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (BufferImageCopy2KHR Any))
forall a b. (a -> b) -> a -> b
$ Int -> (Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(BufferImageCopy2KHR _) ((Vector (SomeStruct BufferImageCopy2KHR) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct BufferImageCopy2KHR)
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
72)
(Int -> SomeStruct BufferImageCopy2KHR -> ContT b IO ())
-> Vector (SomeStruct BufferImageCopy2KHR) -> ContT b IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i SomeStruct BufferImageCopy2KHR
e -> ((() -> IO b) -> IO b) -> ContT b IO ()
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct BufferImageCopy2KHR)
-> SomeStruct BufferImageCopy2KHR -> IO b -> IO b
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (BufferImageCopy2KHR Any)
-> Ptr (SomeStruct BufferImageCopy2KHR)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (BufferImageCopy2KHR Any)
pPRegions' Ptr (BufferImageCopy2KHR Any) -> Int -> Ptr (BufferImageCopy2KHR _)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
72 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (BufferImageCopy2KHR _))) (SomeStruct BufferImageCopy2KHR
e) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())) (Vector (SomeStruct BufferImageCopy2KHR)
regions)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR Any))
-> Ptr (BufferImageCopy2KHR Any) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr (Ptr (BufferImageCopy2KHR _))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (Ptr (BufferImageCopy2KHR Any)
pPRegions')
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO b -> IO b
pokeZeroCStruct "pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyBufferToImageInfo2KHR where
peekCStruct :: ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> IO CopyBufferToImageInfo2KHR
peekCStruct "pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p = do
Buffer
srcBuffer <- Ptr Buffer -> IO Buffer
forall a. Storable a => Ptr a -> IO a
peek @Buffer (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Buffer))
Image
dstImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Image))
ImageLayout
dstImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageLayout))
Word32
regionCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Word32))
Ptr (BufferImageCopy2KHR Any)
pRegions <- Ptr (Ptr (BufferImageCopy2KHR Any))
-> IO (Ptr (BufferImageCopy2KHR Any))
forall a. Storable a => Ptr a -> IO a
peek @(Ptr (BufferImageCopy2KHR _)) (("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR
p ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR)
-> Int -> Ptr (Ptr (BufferImageCopy2KHR _))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr (Ptr (BufferImageCopy2KHR _))))
Vector (SomeStruct BufferImageCopy2KHR)
pRegions' <- Int
-> (Int -> IO (SomeStruct BufferImageCopy2KHR))
-> IO (Vector (SomeStruct BufferImageCopy2KHR))
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
regionCount) (\Int
i -> Ptr (SomeStruct BufferImageCopy2KHR)
-> IO (SomeStruct BufferImageCopy2KHR)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (BufferImageCopy2KHR Any)
-> Ptr (SomeStruct BufferImageCopy2KHR)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions ((Ptr (BufferImageCopy2KHR Any)
pRegions Ptr (BufferImageCopy2KHR Any)
-> Int -> Ptr (BufferImageCopy2KHR Any)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
72 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (BufferImageCopy2KHR _)))))
CopyBufferToImageInfo2KHR -> IO CopyBufferToImageInfo2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CopyBufferToImageInfo2KHR -> IO CopyBufferToImageInfo2KHR)
-> CopyBufferToImageInfo2KHR -> IO CopyBufferToImageInfo2KHR
forall a b. (a -> b) -> a -> b
$ Buffer
-> Image
-> ImageLayout
-> Vector (SomeStruct BufferImageCopy2KHR)
-> CopyBufferToImageInfo2KHR
CopyBufferToImageInfo2KHR
Buffer
srcBuffer Image
dstImage ImageLayout
dstImageLayout Vector (SomeStruct BufferImageCopy2KHR)
pRegions'
instance Zero CopyBufferToImageInfo2KHR where
zero :: CopyBufferToImageInfo2KHR
zero = Buffer
-> Image
-> ImageLayout
-> Vector (SomeStruct BufferImageCopy2KHR)
-> CopyBufferToImageInfo2KHR
CopyBufferToImageInfo2KHR
Buffer
forall a. Zero a => a
zero
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Vector (SomeStruct BufferImageCopy2KHR)
forall a. Monoid a => a
mempty
data CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2KHR
{
CopyImageToBufferInfo2KHR -> Image
srcImage :: Image
,
CopyImageToBufferInfo2KHR -> ImageLayout
srcImageLayout :: ImageLayout
,
CopyImageToBufferInfo2KHR -> Buffer
dstBuffer :: Buffer
,
CopyImageToBufferInfo2KHR
-> Vector (SomeStruct BufferImageCopy2KHR)
regions :: Vector (SomeStruct BufferImageCopy2KHR)
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CopyImageToBufferInfo2KHR)
#endif
deriving instance Show CopyImageToBufferInfo2KHR
instance ToCStruct CopyImageToBufferInfo2KHR where
withCStruct :: CopyImageToBufferInfo2KHR
-> (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b)
-> IO b
withCStruct CopyImageToBufferInfo2KHR
x ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b
f = Int
-> (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b)
-> IO b)
-> (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \"pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> CopyImageToBufferInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p CopyImageToBufferInfo2KHR
x (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b
f "pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p)
pokeCStruct :: ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> CopyImageToBufferInfo2KHR -> IO b -> IO b
pokeCStruct "pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p CopyImageToBufferInfo2KHR{Vector (SomeStruct BufferImageCopy2KHR)
ImageLayout
Image
Buffer
regions :: Vector (SomeStruct BufferImageCopy2KHR)
dstBuffer :: Buffer
srcImageLayout :: ImageLayout
srcImage :: Image
$sel:regions:CopyImageToBufferInfo2KHR :: CopyImageToBufferInfo2KHR
-> Vector (SomeStruct BufferImageCopy2KHR)
$sel:dstBuffer:CopyImageToBufferInfo2KHR :: CopyImageToBufferInfo2KHR -> Buffer
$sel:srcImageLayout:CopyImageToBufferInfo2KHR :: CopyImageToBufferInfo2KHR -> ImageLayout
$sel:srcImage:CopyImageToBufferInfo2KHR :: CopyImageToBufferInfo2KHR -> Image
..} 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 (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 (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)
IO () -> ContT b IO ()
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 (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> 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 (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 (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
srcImage)
IO () -> ContT b IO ()
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 (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
srcImageLayout)
IO () -> ContT b IO ()
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 Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Buffer)) (Buffer
dstBuffer)
IO () -> ContT b IO ()
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 (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector (SomeStruct BufferImageCopy2KHR) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct BufferImageCopy2KHR) -> Int)
-> Vector (SomeStruct BufferImageCopy2KHR) -> Int
forall a b. (a -> b) -> a -> b
$ (Vector (SomeStruct BufferImageCopy2KHR)
regions)) :: Word32))
Ptr (BufferImageCopy2KHR Any)
pPRegions' <- ((Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (BufferImageCopy2KHR Any))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (BufferImageCopy2KHR Any)))
-> ((Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (BufferImageCopy2KHR Any))
forall a b. (a -> b) -> a -> b
$ Int -> (Ptr (BufferImageCopy2KHR Any) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(BufferImageCopy2KHR _) ((Vector (SomeStruct BufferImageCopy2KHR) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct BufferImageCopy2KHR)
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
72)
(Int -> SomeStruct BufferImageCopy2KHR -> ContT b IO ())
-> Vector (SomeStruct BufferImageCopy2KHR) -> ContT b IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i SomeStruct BufferImageCopy2KHR
e -> ((() -> IO b) -> IO b) -> ContT b IO ()
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct BufferImageCopy2KHR)
-> SomeStruct BufferImageCopy2KHR -> IO b -> IO b
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (BufferImageCopy2KHR Any)
-> Ptr (SomeStruct BufferImageCopy2KHR)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (BufferImageCopy2KHR Any)
pPRegions' Ptr (BufferImageCopy2KHR Any) -> Int -> Ptr (BufferImageCopy2KHR _)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
72 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (BufferImageCopy2KHR _))) (SomeStruct BufferImageCopy2KHR
e) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())) (Vector (SomeStruct BufferImageCopy2KHR)
regions)
IO () -> ContT b IO ()
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 (BufferImageCopy2KHR Any))
-> Ptr (BufferImageCopy2KHR Any) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr (Ptr (BufferImageCopy2KHR _))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (Ptr (BufferImageCopy2KHR Any)
pPRegions')
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO b -> IO b
pokeZeroCStruct "pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
Ptr Buffer -> Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Buffer)) (Buffer
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CopyImageToBufferInfo2KHR where
peekCStruct :: ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> IO CopyImageToBufferInfo2KHR
peekCStruct "pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p = do
Image
srcImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image))
ImageLayout
srcImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout))
Buffer
dstBuffer <- Ptr Buffer -> IO Buffer
forall a. Storable a => Ptr a -> IO a
peek @Buffer (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Buffer
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Buffer))
Word32
regionCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Word32))
Ptr (BufferImageCopy2KHR Any)
pRegions <- Ptr (Ptr (BufferImageCopy2KHR Any))
-> IO (Ptr (BufferImageCopy2KHR Any))
forall a. Storable a => Ptr a -> IO a
peek @(Ptr (BufferImageCopy2KHR _)) (("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR
p ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR)
-> Int -> Ptr (Ptr (BufferImageCopy2KHR _))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr (BufferImageCopy2KHR _))))
Vector (SomeStruct BufferImageCopy2KHR)
pRegions' <- Int
-> (Int -> IO (SomeStruct BufferImageCopy2KHR))
-> IO (Vector (SomeStruct BufferImageCopy2KHR))
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
regionCount) (\Int
i -> Ptr (SomeStruct BufferImageCopy2KHR)
-> IO (SomeStruct BufferImageCopy2KHR)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (BufferImageCopy2KHR Any)
-> Ptr (SomeStruct BufferImageCopy2KHR)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions ((Ptr (BufferImageCopy2KHR Any)
pRegions Ptr (BufferImageCopy2KHR Any)
-> Int -> Ptr (BufferImageCopy2KHR Any)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
72 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (BufferImageCopy2KHR _)))))
CopyImageToBufferInfo2KHR -> IO CopyImageToBufferInfo2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CopyImageToBufferInfo2KHR -> IO CopyImageToBufferInfo2KHR)
-> CopyImageToBufferInfo2KHR -> IO CopyImageToBufferInfo2KHR
forall a b. (a -> b) -> a -> b
$ Image
-> ImageLayout
-> Buffer
-> Vector (SomeStruct BufferImageCopy2KHR)
-> CopyImageToBufferInfo2KHR
CopyImageToBufferInfo2KHR
Image
srcImage ImageLayout
srcImageLayout Buffer
dstBuffer Vector (SomeStruct BufferImageCopy2KHR)
pRegions'
instance Zero CopyImageToBufferInfo2KHR where
zero :: CopyImageToBufferInfo2KHR
zero = Image
-> ImageLayout
-> Buffer
-> Vector (SomeStruct BufferImageCopy2KHR)
-> CopyImageToBufferInfo2KHR
CopyImageToBufferInfo2KHR
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Buffer
forall a. Zero a => a
zero
Vector (SomeStruct BufferImageCopy2KHR)
forall a. Monoid a => a
mempty
data ResolveImageInfo2KHR = ResolveImageInfo2KHR
{
ResolveImageInfo2KHR -> Image
srcImage :: Image
,
ResolveImageInfo2KHR -> ImageLayout
srcImageLayout :: ImageLayout
,
ResolveImageInfo2KHR -> Image
dstImage :: Image
,
ResolveImageInfo2KHR -> ImageLayout
dstImageLayout :: ImageLayout
,
ResolveImageInfo2KHR -> Vector ImageResolve2KHR
regions :: Vector ImageResolve2KHR
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ResolveImageInfo2KHR)
#endif
deriving instance Show ResolveImageInfo2KHR
instance ToCStruct ResolveImageInfo2KHR where
withCStruct :: ResolveImageInfo2KHR
-> (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b)
-> IO b
withCStruct ResolveImageInfo2KHR
x ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b
f = Int
-> (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b)
-> IO b)
-> (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \"pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> ResolveImageInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ResolveImageInfo2KHR
x (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b
f "pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p)
pokeCStruct :: ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> ResolveImageInfo2KHR -> IO b -> IO b
pokeCStruct "pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ResolveImageInfo2KHR{Vector ImageResolve2KHR
ImageLayout
Image
regions :: Vector ImageResolve2KHR
dstImageLayout :: ImageLayout
dstImage :: Image
srcImageLayout :: ImageLayout
srcImage :: Image
$sel:regions:ResolveImageInfo2KHR :: ResolveImageInfo2KHR -> Vector ImageResolve2KHR
$sel:dstImageLayout:ResolveImageInfo2KHR :: ResolveImageInfo2KHR -> ImageLayout
$sel:dstImage:ResolveImageInfo2KHR :: ResolveImageInfo2KHR -> Image
$sel:srcImageLayout:ResolveImageInfo2KHR :: ResolveImageInfo2KHR -> ImageLayout
$sel:srcImage:ResolveImageInfo2KHR :: ResolveImageInfo2KHR -> Image
..} 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 (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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)
IO () -> ContT b IO ()
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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> 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 (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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
srcImage)
IO () -> ContT b IO ()
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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
srcImageLayout)
IO () -> ContT b IO ()
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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image)) (Image
dstImage)
IO () -> ContT b IO ()
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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout)) (ImageLayout
dstImageLayout)
IO () -> ContT b IO ()
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 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector ImageResolve2KHR -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector ImageResolve2KHR -> Int) -> Vector ImageResolve2KHR -> Int
forall a b. (a -> b) -> a -> b
$ (Vector ImageResolve2KHR
regions)) :: Word32))
Ptr ImageResolve2KHR
pPRegions' <- ((Ptr ImageResolve2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr ImageResolve2KHR)
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ImageResolve2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr ImageResolve2KHR))
-> ((Ptr ImageResolve2KHR -> IO b) -> IO b)
-> ContT b IO (Ptr ImageResolve2KHR)
forall a b. (a -> b) -> a -> b
$ Int -> (Ptr ImageResolve2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @ImageResolve2KHR ((Vector ImageResolve2KHR -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector ImageResolve2KHR
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
88)
IO () -> ContT b IO ()
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
$ (Int -> ImageResolve2KHR -> IO ())
-> Vector ImageResolve2KHR -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i ImageResolve2KHR
e -> Ptr ImageResolve2KHR -> ImageResolve2KHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ImageResolve2KHR
pPRegions' Ptr ImageResolve2KHR -> Int -> Ptr ImageResolve2KHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
88 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ImageResolve2KHR) (ImageResolve2KHR
e)) (Vector ImageResolve2KHR
regions)
IO () -> ContT b IO ()
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 ImageResolve2KHR) -> Ptr ImageResolve2KHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr (Ptr ImageResolve2KHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr ImageResolve2KHR))) (Ptr ImageResolve2KHR
pPRegions')
IO b -> ContT b IO b
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO b -> IO b
pokeZeroCStruct "pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
Ptr Image -> Image -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image)) (Image
forall a. Zero a => a
zero)
Ptr ImageLayout -> ImageLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout)) (ImageLayout
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ResolveImageInfo2KHR where
peekCStruct :: ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> IO ResolveImageInfo2KHR
peekCStruct "pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p = do
Image
srcImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Image))
ImageLayout
srcImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageLayout))
Image
dstImage <- Ptr Image -> IO Image
forall a. Storable a => Ptr a -> IO a
peek @Image (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Image
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Image))
ImageLayout
dstImageLayout <- Ptr ImageLayout -> IO ImageLayout
forall a. Storable a => Ptr a -> IO a
peek @ImageLayout (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr ImageLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ImageLayout))
Word32
regionCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Word32))
Ptr ImageResolve2KHR
pRegions <- Ptr (Ptr ImageResolve2KHR) -> IO (Ptr ImageResolve2KHR)
forall a. Storable a => Ptr a -> IO a
peek @(Ptr ImageResolve2KHR) (("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR
p ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR)
-> Int -> Ptr (Ptr ImageResolve2KHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr (Ptr ImageResolve2KHR)))
Vector ImageResolve2KHR
pRegions' <- Int -> (Int -> IO ImageResolve2KHR) -> IO (Vector ImageResolve2KHR)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
regionCount) (\Int
i -> Ptr ImageResolve2KHR -> IO ImageResolve2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageResolve2KHR ((Ptr ImageResolve2KHR
pRegions Ptr ImageResolve2KHR -> Int -> Ptr ImageResolve2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
88 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ImageResolve2KHR)))
ResolveImageInfo2KHR -> IO ResolveImageInfo2KHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ResolveImageInfo2KHR -> IO ResolveImageInfo2KHR)
-> ResolveImageInfo2KHR -> IO ResolveImageInfo2KHR
forall a b. (a -> b) -> a -> b
$ Image
-> ImageLayout
-> Image
-> ImageLayout
-> Vector ImageResolve2KHR
-> ResolveImageInfo2KHR
ResolveImageInfo2KHR
Image
srcImage ImageLayout
srcImageLayout Image
dstImage ImageLayout
dstImageLayout Vector ImageResolve2KHR
pRegions'
instance Zero ResolveImageInfo2KHR where
zero :: ResolveImageInfo2KHR
zero = Image
-> ImageLayout
-> Image
-> ImageLayout
-> Vector ImageResolve2KHR
-> ResolveImageInfo2KHR
ResolveImageInfo2KHR
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Image
forall a. Zero a => a
zero
ImageLayout
forall a. Zero a => a
zero
Vector ImageResolve2KHR
forall a. Monoid a => a
mempty
type KHR_COPY_COMMANDS_2_SPEC_VERSION = 1
pattern KHR_COPY_COMMANDS_2_SPEC_VERSION :: forall a . Integral a => a
pattern $bKHR_COPY_COMMANDS_2_SPEC_VERSION :: a
$mKHR_COPY_COMMANDS_2_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
KHR_COPY_COMMANDS_2_SPEC_VERSION = 1
type KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2"
pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bKHR_COPY_COMMANDS_2_EXTENSION_NAME :: a
$mKHR_COPY_COMMANDS_2_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2"