{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_memory_decompression ( cmdDecompressMemoryEXT
, cmdDecompressMemoryIndirectCountEXT
, pattern MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV
, PhysicalDeviceMemoryDecompressionFeaturesEXT(..)
, PhysicalDeviceMemoryDecompressionPropertiesEXT(..)
, DecompressMemoryRegionEXT(..)
, DecompressMemoryInfoEXT(..)
, MemoryDecompressionMethodFlagsEXT
, MemoryDecompressionMethodFlagBitsEXT( MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT
, ..
)
, EXT_MEMORY_DECOMPRESSION_SPEC_VERSION
, pattern EXT_MEMORY_DECOMPRESSION_SPEC_VERSION
, EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME
, pattern EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME
) where
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import GHC.IO (throwIO)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import Numeric (showHex)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Word (Word64)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Core10.FundamentalTypes (DeviceAddress)
import Vulkan.Dynamic (DeviceCmds(pVkCmdDecompressMemoryEXT))
import Vulkan.Dynamic (DeviceCmds(pVkCmdDecompressMemoryIndirectCountEXT))
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.Core10.FundamentalTypes (Flags64)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdDecompressMemoryEXT
:: FunPtr (Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ()
cmdDecompressMemoryEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
DecompressMemoryInfoEXT
-> io ()
cmdDecompressMemoryEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> DecompressMemoryInfoEXT -> io ()
cmdDecompressMemoryEXT CommandBuffer
commandBuffer
DecompressMemoryInfoEXT
decompressMemoryInfoEXT = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdDecompressMemoryEXTPtr :: FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
vkCmdDecompressMemoryEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
pVkCmdDecompressMemoryEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
vkCmdDecompressMemoryEXTPtr FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, Exception e) => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdDecompressMemoryEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDecompressMemoryEXT' :: Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ()
vkCmdDecompressMemoryEXT' = FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
-> Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ()
mkVkCmdDecompressMemoryEXT FunPtr
(Ptr CommandBuffer_T -> Ptr DecompressMemoryInfoEXT -> IO ())
vkCmdDecompressMemoryEXTPtr
pDecompressMemoryInfoEXT <- ((Ptr DecompressMemoryInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr DecompressMemoryInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DecompressMemoryInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr DecompressMemoryInfoEXT))
-> ((Ptr DecompressMemoryInfoEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr DecompressMemoryInfoEXT)
forall a b. (a -> b) -> a -> b
$ DecompressMemoryInfoEXT
-> (Ptr DecompressMemoryInfoEXT -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DecompressMemoryInfoEXT
-> (Ptr DecompressMemoryInfoEXT -> IO b) -> IO b
withCStruct (DecompressMemoryInfoEXT
decompressMemoryInfoEXT)
lift $ traceAroundEvent "vkCmdDecompressMemoryEXT" (vkCmdDecompressMemoryEXT'
(commandBufferHandle (commandBuffer))
pDecompressMemoryInfoEXT)
pure $ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdDecompressMemoryIndirectCountEXT
:: FunPtr (Ptr CommandBuffer_T -> MemoryDecompressionMethodFlagsEXT -> DeviceAddress -> DeviceAddress -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> MemoryDecompressionMethodFlagsEXT -> DeviceAddress -> DeviceAddress -> Word32 -> Word32 -> IO ()
cmdDecompressMemoryIndirectCountEXT :: forall io
. (MonadIO io)
=>
CommandBuffer
->
MemoryDecompressionMethodFlagsEXT
->
("indirectCommandsAddress" ::: DeviceAddress)
->
("indirectCommandsCountAddress" ::: DeviceAddress)
->
("maxDecompressionCount" ::: Word32)
->
("stride" ::: Word32)
-> io ()
cmdDecompressMemoryIndirectCountEXT :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> io ()
cmdDecompressMemoryIndirectCountEXT CommandBuffer
commandBuffer
MemoryDecompressionMethodFlagsEXT
decompressionMethod
Word64
indirectCommandsAddress
Word64
indirectCommandsCountAddress
"maxDecompressionCount" ::: Word32
maxDecompressionCount
"maxDecompressionCount" ::: Word32
stride = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdDecompressMemoryIndirectCountEXTPtr :: FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
vkCmdDecompressMemoryIndirectCountEXTPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
pVkCmdDecompressMemoryIndirectCountEXT (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
vkCmdDecompressMemoryIndirectCountEXTPtr FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, Exception e) => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdDecompressMemoryIndirectCountEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDecompressMemoryIndirectCountEXT' :: Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ()
vkCmdDecompressMemoryIndirectCountEXT' = FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
-> Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ()
mkVkCmdDecompressMemoryIndirectCountEXT FunPtr
(Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ())
vkCmdDecompressMemoryIndirectCountEXTPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdDecompressMemoryIndirectCountEXT" (Ptr CommandBuffer_T
-> MemoryDecompressionMethodFlagsEXT
-> Word64
-> Word64
-> ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32)
-> IO ()
vkCmdDecompressMemoryIndirectCountEXT'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(MemoryDecompressionMethodFlagsEXT
decompressionMethod)
(Word64
indirectCommandsAddress)
(Word64
indirectCommandsCountAddress)
("maxDecompressionCount" ::: Word32
maxDecompressionCount)
("maxDecompressionCount" ::: Word32
stride))
() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ()
pattern $mMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV :: forall {r}.
MemoryDecompressionMethodFlagsEXT
-> ((# #) -> r) -> ((# #) -> r) -> r
$bMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV :: MemoryDecompressionMethodFlagsEXT
MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT
data PhysicalDeviceMemoryDecompressionFeaturesEXT = PhysicalDeviceMemoryDecompressionFeaturesEXT
{
PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
memoryDecompression :: Bool }
deriving (Typeable, PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
(PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool)
-> (PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool)
-> Eq PhysicalDeviceMemoryDecompressionFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
== :: PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
$c/= :: PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
/= :: PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceMemoryDecompressionFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceMemoryDecompressionFeaturesEXT
instance ToCStruct PhysicalDeviceMemoryDecompressionFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceMemoryDecompressionFeaturesEXT
-> (Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceMemoryDecompressionFeaturesEXT
x Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p -> Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p PhysicalDeviceMemoryDecompressionFeaturesEXT
x (Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b
f Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p PhysicalDeviceMemoryDecompressionFeaturesEXT{Bool
memoryDecompression :: PhysicalDeviceMemoryDecompressionFeaturesEXT -> Bool
memoryDecompression :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
memoryDecompression))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceMemoryDecompressionFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> IO PhysicalDeviceMemoryDecompressionFeaturesEXT
peekCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p = do
memoryDecompression <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
p Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDeviceMemoryDecompressionFeaturesEXT
(bool32ToBool memoryDecompression)
instance Storable PhysicalDeviceMemoryDecompressionFeaturesEXT where
sizeOf :: PhysicalDeviceMemoryDecompressionFeaturesEXT -> Int
sizeOf ~PhysicalDeviceMemoryDecompressionFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceMemoryDecompressionFeaturesEXT -> Int
alignment ~PhysicalDeviceMemoryDecompressionFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> IO PhysicalDeviceMemoryDecompressionFeaturesEXT
peek = Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> IO PhysicalDeviceMemoryDecompressionFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
poked = Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
-> PhysicalDeviceMemoryDecompressionFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
ptr PhysicalDeviceMemoryDecompressionFeaturesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceMemoryDecompressionFeaturesEXT where
zero :: PhysicalDeviceMemoryDecompressionFeaturesEXT
zero = Bool -> PhysicalDeviceMemoryDecompressionFeaturesEXT
PhysicalDeviceMemoryDecompressionFeaturesEXT
Bool
forall a. Zero a => a
zero
data PhysicalDeviceMemoryDecompressionPropertiesEXT = PhysicalDeviceMemoryDecompressionPropertiesEXT
{
PhysicalDeviceMemoryDecompressionPropertiesEXT
-> MemoryDecompressionMethodFlagsEXT
decompressionMethods :: MemoryDecompressionMethodFlagsEXT
,
PhysicalDeviceMemoryDecompressionPropertiesEXT -> Word64
maxDecompressionIndirectCount :: Word64
}
deriving (Typeable, PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool
(PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool)
-> (PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool)
-> Eq PhysicalDeviceMemoryDecompressionPropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool
== :: PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool
$c/= :: PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool
/= :: PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceMemoryDecompressionPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceMemoryDecompressionPropertiesEXT
instance ToCStruct PhysicalDeviceMemoryDecompressionPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceMemoryDecompressionPropertiesEXT
-> (Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceMemoryDecompressionPropertiesEXT
x Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p -> Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p PhysicalDeviceMemoryDecompressionPropertiesEXT
x (Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b
f Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p PhysicalDeviceMemoryDecompressionPropertiesEXT{Word64
MemoryDecompressionMethodFlagsEXT
decompressionMethods :: PhysicalDeviceMemoryDecompressionPropertiesEXT
-> MemoryDecompressionMethodFlagsEXT
maxDecompressionIndirectCount :: PhysicalDeviceMemoryDecompressionPropertiesEXT -> Word64
decompressionMethods :: MemoryDecompressionMethodFlagsEXT
maxDecompressionIndirectCount :: Word64
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr MemoryDecompressionMethodFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsEXT)) (MemoryDecompressionMethodFlagsEXT
decompressionMethods)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word64)) (Word64
maxDecompressionIndirectCount)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr MemoryDecompressionMethodFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsEXT)) (MemoryDecompressionMethodFlagsEXT
forall a. Zero a => a
zero)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word64)) (Word64
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceMemoryDecompressionPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> IO PhysicalDeviceMemoryDecompressionPropertiesEXT
peekCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p = do
decompressionMethods <- forall a. Storable a => Ptr a -> IO a
peek @MemoryDecompressionMethodFlagsEXT ((Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
p Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> Int -> Ptr MemoryDecompressionMethodFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsEXT))
maxDecompressionIndirectCount <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))
pure $ PhysicalDeviceMemoryDecompressionPropertiesEXT
decompressionMethods maxDecompressionIndirectCount
instance Storable PhysicalDeviceMemoryDecompressionPropertiesEXT where
sizeOf :: PhysicalDeviceMemoryDecompressionPropertiesEXT -> Int
sizeOf ~PhysicalDeviceMemoryDecompressionPropertiesEXT
_ = Int
32
alignment :: PhysicalDeviceMemoryDecompressionPropertiesEXT -> Int
alignment ~PhysicalDeviceMemoryDecompressionPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> IO PhysicalDeviceMemoryDecompressionPropertiesEXT
peek = Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> IO PhysicalDeviceMemoryDecompressionPropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
poked = Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
-> PhysicalDeviceMemoryDecompressionPropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
ptr PhysicalDeviceMemoryDecompressionPropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceMemoryDecompressionPropertiesEXT where
zero :: PhysicalDeviceMemoryDecompressionPropertiesEXT
zero = MemoryDecompressionMethodFlagsEXT
-> Word64 -> PhysicalDeviceMemoryDecompressionPropertiesEXT
PhysicalDeviceMemoryDecompressionPropertiesEXT
MemoryDecompressionMethodFlagsEXT
forall a. Zero a => a
zero
Word64
forall a. Zero a => a
zero
data DecompressMemoryRegionEXT = DecompressMemoryRegionEXT
{
DecompressMemoryRegionEXT -> Word64
srcAddress :: DeviceAddress
,
DecompressMemoryRegionEXT -> Word64
dstAddress :: DeviceAddress
,
DecompressMemoryRegionEXT -> Word64
compressedSize :: DeviceSize
,
DecompressMemoryRegionEXT -> Word64
decompressedSize :: DeviceSize
}
deriving (Typeable, DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool
(DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool)
-> (DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool)
-> Eq DecompressMemoryRegionEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool
== :: DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool
$c/= :: DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool
/= :: DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DecompressMemoryRegionEXT)
#endif
deriving instance Show DecompressMemoryRegionEXT
instance ToCStruct DecompressMemoryRegionEXT where
withCStruct :: forall b.
DecompressMemoryRegionEXT
-> (Ptr DecompressMemoryRegionEXT -> IO b) -> IO b
withCStruct DecompressMemoryRegionEXT
x Ptr DecompressMemoryRegionEXT -> IO b
f = Int -> (Ptr DecompressMemoryRegionEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr DecompressMemoryRegionEXT -> IO b) -> IO b)
-> (Ptr DecompressMemoryRegionEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DecompressMemoryRegionEXT
p -> Ptr DecompressMemoryRegionEXT
-> DecompressMemoryRegionEXT -> IO b -> IO b
forall b.
Ptr DecompressMemoryRegionEXT
-> DecompressMemoryRegionEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryRegionEXT
p DecompressMemoryRegionEXT
x (Ptr DecompressMemoryRegionEXT -> IO b
f Ptr DecompressMemoryRegionEXT
p)
pokeCStruct :: forall b.
Ptr DecompressMemoryRegionEXT
-> DecompressMemoryRegionEXT -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryRegionEXT
p DecompressMemoryRegionEXT{Word64
srcAddress :: DecompressMemoryRegionEXT -> Word64
dstAddress :: DecompressMemoryRegionEXT -> Word64
compressedSize :: DecompressMemoryRegionEXT -> Word64
decompressedSize :: DecompressMemoryRegionEXT -> Word64
srcAddress :: Word64
dstAddress :: Word64
compressedSize :: Word64
decompressedSize :: Word64
..} IO b
f = do
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (Word64
srcAddress)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress)) (Word64
dstAddress)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (Word64
compressedSize)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (Word64
decompressedSize)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DecompressMemoryRegionEXT -> IO b -> IO b
pokeZeroCStruct Ptr DecompressMemoryRegionEXT
p IO b
f = do
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (Word64
forall a. Zero a => a
zero)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress)) (Word64
forall a. Zero a => a
zero)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (Word64
forall a. Zero a => a
zero)
Ptr Word64 -> Word64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (Word64
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DecompressMemoryRegionEXT where
peekCStruct :: Ptr DecompressMemoryRegionEXT -> IO DecompressMemoryRegionEXT
peekCStruct Ptr DecompressMemoryRegionEXT
p = do
srcAddress <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr DecompressMemoryRegionEXT
p Ptr DecompressMemoryRegionEXT -> Int -> Ptr Word64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress))
dstAddress <- peek @DeviceAddress ((p `plusPtr` 8 :: Ptr DeviceAddress))
compressedSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))
decompressedSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))
pure $ DecompressMemoryRegionEXT
srcAddress dstAddress compressedSize decompressedSize
instance Storable DecompressMemoryRegionEXT where
sizeOf :: DecompressMemoryRegionEXT -> Int
sizeOf ~DecompressMemoryRegionEXT
_ = Int
32
alignment :: DecompressMemoryRegionEXT -> Int
alignment ~DecompressMemoryRegionEXT
_ = Int
8
peek :: Ptr DecompressMemoryRegionEXT -> IO DecompressMemoryRegionEXT
peek = Ptr DecompressMemoryRegionEXT -> IO DecompressMemoryRegionEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> IO ()
poke Ptr DecompressMemoryRegionEXT
ptr DecompressMemoryRegionEXT
poked = Ptr DecompressMemoryRegionEXT
-> DecompressMemoryRegionEXT -> IO () -> IO ()
forall b.
Ptr DecompressMemoryRegionEXT
-> DecompressMemoryRegionEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryRegionEXT
ptr DecompressMemoryRegionEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DecompressMemoryRegionEXT where
zero :: DecompressMemoryRegionEXT
zero = Word64 -> Word64 -> Word64 -> Word64 -> DecompressMemoryRegionEXT
DecompressMemoryRegionEXT
Word64
forall a. Zero a => a
zero
Word64
forall a. Zero a => a
zero
Word64
forall a. Zero a => a
zero
Word64
forall a. Zero a => a
zero
data DecompressMemoryInfoEXT = DecompressMemoryInfoEXT
{
DecompressMemoryInfoEXT -> MemoryDecompressionMethodFlagsEXT
decompressionMethod :: MemoryDecompressionMethodFlagsEXT
,
DecompressMemoryInfoEXT -> Vector DecompressMemoryRegionEXT
regions :: Vector DecompressMemoryRegionEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DecompressMemoryInfoEXT)
#endif
deriving instance Show DecompressMemoryInfoEXT
instance ToCStruct DecompressMemoryInfoEXT where
withCStruct :: forall b.
DecompressMemoryInfoEXT
-> (Ptr DecompressMemoryInfoEXT -> IO b) -> IO b
withCStruct DecompressMemoryInfoEXT
x Ptr DecompressMemoryInfoEXT -> IO b
f = Int -> (Ptr DecompressMemoryInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr DecompressMemoryInfoEXT -> IO b) -> IO b)
-> (Ptr DecompressMemoryInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DecompressMemoryInfoEXT
p -> Ptr DecompressMemoryInfoEXT
-> DecompressMemoryInfoEXT -> IO b -> IO b
forall b.
Ptr DecompressMemoryInfoEXT
-> DecompressMemoryInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryInfoEXT
p DecompressMemoryInfoEXT
x (Ptr DecompressMemoryInfoEXT -> IO b
f Ptr DecompressMemoryInfoEXT
p)
pokeCStruct :: forall b.
Ptr DecompressMemoryInfoEXT
-> DecompressMemoryInfoEXT -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryInfoEXT
p DecompressMemoryInfoEXT{Vector DecompressMemoryRegionEXT
MemoryDecompressionMethodFlagsEXT
decompressionMethod :: DecompressMemoryInfoEXT -> MemoryDecompressionMethodFlagsEXT
regions :: DecompressMemoryInfoEXT -> Vector DecompressMemoryRegionEXT
decompressionMethod :: MemoryDecompressionMethodFlagsEXT
regions :: Vector DecompressMemoryRegionEXT
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT
-> Int -> Ptr MemoryDecompressionMethodFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsEXT)) (MemoryDecompressionMethodFlagsEXT
decompressionMethod)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("maxDecompressionCount" ::: Word32)
-> ("maxDecompressionCount" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT
-> Int -> Ptr ("maxDecompressionCount" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) ((Int -> "maxDecompressionCount" ::: Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector DecompressMemoryRegionEXT -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector DecompressMemoryRegionEXT -> Int)
-> Vector DecompressMemoryRegionEXT -> Int
forall a b. (a -> b) -> a -> b
$ (Vector DecompressMemoryRegionEXT
regions)) :: Word32))
pPRegions' <- ((Ptr DecompressMemoryRegionEXT -> IO b) -> IO b)
-> ContT b IO (Ptr DecompressMemoryRegionEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DecompressMemoryRegionEXT -> IO b) -> IO b)
-> ContT b IO (Ptr DecompressMemoryRegionEXT))
-> ((Ptr DecompressMemoryRegionEXT -> IO b) -> IO b)
-> ContT b IO (Ptr DecompressMemoryRegionEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @DecompressMemoryRegionEXT ((Vector DecompressMemoryRegionEXT -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector DecompressMemoryRegionEXT
regions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
32)
lift $ Data.Vector.imapM_ (\Int
i DecompressMemoryRegionEXT
e -> Ptr DecompressMemoryRegionEXT -> DecompressMemoryRegionEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DecompressMemoryRegionEXT
pPRegions' Ptr DecompressMemoryRegionEXT
-> Int -> Ptr DecompressMemoryRegionEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr DecompressMemoryRegionEXT) (DecompressMemoryRegionEXT
e)) (regions)
lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr DecompressMemoryRegionEXT))) (pPRegions')
lift $ f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DecompressMemoryInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr DecompressMemoryInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT
-> Int -> Ptr MemoryDecompressionMethodFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsEXT)) (MemoryDecompressionMethodFlagsEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DecompressMemoryInfoEXT where
peekCStruct :: Ptr DecompressMemoryInfoEXT -> IO DecompressMemoryInfoEXT
peekCStruct Ptr DecompressMemoryInfoEXT
p = do
decompressionMethod <- forall a. Storable a => Ptr a -> IO a
peek @MemoryDecompressionMethodFlagsEXT ((Ptr DecompressMemoryInfoEXT
p Ptr DecompressMemoryInfoEXT
-> Int -> Ptr MemoryDecompressionMethodFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsEXT))
regionCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
pRegions <- peek @(Ptr DecompressMemoryRegionEXT) ((p `plusPtr` 32 :: Ptr (Ptr DecompressMemoryRegionEXT)))
pRegions' <- generateM (fromIntegral regionCount) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DecompressMemoryRegionEXT ((Ptr DecompressMemoryRegionEXT
pRegions Ptr DecompressMemoryRegionEXT
-> Int -> Ptr DecompressMemoryRegionEXT
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr DecompressMemoryRegionEXT)))
pure $ DecompressMemoryInfoEXT
decompressionMethod pRegions'
instance Zero DecompressMemoryInfoEXT where
zero :: DecompressMemoryInfoEXT
zero = MemoryDecompressionMethodFlagsEXT
-> Vector DecompressMemoryRegionEXT -> DecompressMemoryInfoEXT
DecompressMemoryInfoEXT
MemoryDecompressionMethodFlagsEXT
forall a. Zero a => a
zero
Vector DecompressMemoryRegionEXT
forall a. Monoid a => a
mempty
type MemoryDecompressionMethodFlagsEXT = MemoryDecompressionMethodFlagBitsEXT
newtype MemoryDecompressionMethodFlagBitsEXT = MemoryDecompressionMethodFlagBitsEXT Flags64
deriving newtype (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
(MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool)
-> Eq MemoryDecompressionMethodFlagsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
== :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
$c/= :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
/= :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
Eq, Eq MemoryDecompressionMethodFlagsEXT
Eq MemoryDecompressionMethodFlagsEXT =>
(MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Ordering)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT)
-> Ord MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Ordering
MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Ordering
compare :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Ordering
$c< :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
< :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
$c<= :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
<= :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
$c> :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
> :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
$c>= :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
>= :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> Bool
$cmax :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
max :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
$cmin :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
min :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
Ord, Ptr MemoryDecompressionMethodFlagsEXT
-> IO MemoryDecompressionMethodFlagsEXT
Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> IO MemoryDecompressionMethodFlagsEXT
Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT -> IO ()
Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
MemoryDecompressionMethodFlagsEXT -> Int
(MemoryDecompressionMethodFlagsEXT -> Int)
-> (MemoryDecompressionMethodFlagsEXT -> Int)
-> (Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> IO MemoryDecompressionMethodFlagsEXT)
-> (Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsEXT)
-> (forall b.
Ptr b -> Int -> MemoryDecompressionMethodFlagsEXT -> IO ())
-> (Ptr MemoryDecompressionMethodFlagsEXT
-> IO MemoryDecompressionMethodFlagsEXT)
-> (Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ())
-> Storable MemoryDecompressionMethodFlagsEXT
forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsEXT
forall b.
Ptr b -> Int -> MemoryDecompressionMethodFlagsEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: MemoryDecompressionMethodFlagsEXT -> Int
sizeOf :: MemoryDecompressionMethodFlagsEXT -> Int
$calignment :: MemoryDecompressionMethodFlagsEXT -> Int
alignment :: MemoryDecompressionMethodFlagsEXT -> Int
$cpeekElemOff :: Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> IO MemoryDecompressionMethodFlagsEXT
peekElemOff :: Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> IO MemoryDecompressionMethodFlagsEXT
$cpokeElemOff :: Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT -> IO ()
pokeElemOff :: Ptr MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsEXT
peekByteOff :: forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsEXT
$cpokeByteOff :: forall b.
Ptr b -> Int -> MemoryDecompressionMethodFlagsEXT -> IO ()
pokeByteOff :: forall b.
Ptr b -> Int -> MemoryDecompressionMethodFlagsEXT -> IO ()
$cpeek :: Ptr MemoryDecompressionMethodFlagsEXT
-> IO MemoryDecompressionMethodFlagsEXT
peek :: Ptr MemoryDecompressionMethodFlagsEXT
-> IO MemoryDecompressionMethodFlagsEXT
$cpoke :: Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
poke :: Ptr MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT -> IO ()
Storable, MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT
-> Zero MemoryDecompressionMethodFlagsEXT
forall a. a -> Zero a
$czero :: MemoryDecompressionMethodFlagsEXT
zero :: MemoryDecompressionMethodFlagsEXT
Zero, Eq MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT
Eq MemoryDecompressionMethodFlagsEXT =>
(MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> MemoryDecompressionMethodFlagsEXT
-> (Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT -> Int -> Bool)
-> (MemoryDecompressionMethodFlagsEXT -> Maybe Int)
-> (MemoryDecompressionMethodFlagsEXT -> Int)
-> (MemoryDecompressionMethodFlagsEXT -> Bool)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT)
-> (MemoryDecompressionMethodFlagsEXT -> Int)
-> Bits MemoryDecompressionMethodFlagsEXT
Int -> MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT -> Bool
MemoryDecompressionMethodFlagsEXT -> Int
MemoryDecompressionMethodFlagsEXT -> Maybe Int
MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT -> Int -> Bool
MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
.&. :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
$c.|. :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
.|. :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
$cxor :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
xor :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
$ccomplement :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
complement :: MemoryDecompressionMethodFlagsEXT
-> MemoryDecompressionMethodFlagsEXT
$cshift :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
shift :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$crotate :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
rotate :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$czeroBits :: MemoryDecompressionMethodFlagsEXT
zeroBits :: MemoryDecompressionMethodFlagsEXT
$cbit :: Int -> MemoryDecompressionMethodFlagsEXT
bit :: Int -> MemoryDecompressionMethodFlagsEXT
$csetBit :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
setBit :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$cclearBit :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
clearBit :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$ccomplementBit :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
complementBit :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$ctestBit :: MemoryDecompressionMethodFlagsEXT -> Int -> Bool
testBit :: MemoryDecompressionMethodFlagsEXT -> Int -> Bool
$cbitSizeMaybe :: MemoryDecompressionMethodFlagsEXT -> Maybe Int
bitSizeMaybe :: MemoryDecompressionMethodFlagsEXT -> Maybe Int
$cbitSize :: MemoryDecompressionMethodFlagsEXT -> Int
bitSize :: MemoryDecompressionMethodFlagsEXT -> Int
$cisSigned :: MemoryDecompressionMethodFlagsEXT -> Bool
isSigned :: MemoryDecompressionMethodFlagsEXT -> Bool
$cshiftL :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
shiftL :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$cunsafeShiftL :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
unsafeShiftL :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$cshiftR :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
shiftR :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$cunsafeShiftR :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
unsafeShiftR :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$crotateL :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
rotateL :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$crotateR :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
rotateR :: MemoryDecompressionMethodFlagsEXT
-> Int -> MemoryDecompressionMethodFlagsEXT
$cpopCount :: MemoryDecompressionMethodFlagsEXT -> Int
popCount :: MemoryDecompressionMethodFlagsEXT -> Int
Bits, Bits MemoryDecompressionMethodFlagsEXT
Bits MemoryDecompressionMethodFlagsEXT =>
(MemoryDecompressionMethodFlagsEXT -> Int)
-> (MemoryDecompressionMethodFlagsEXT -> Int)
-> (MemoryDecompressionMethodFlagsEXT -> Int)
-> FiniteBits MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagsEXT -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: MemoryDecompressionMethodFlagsEXT -> Int
finiteBitSize :: MemoryDecompressionMethodFlagsEXT -> Int
$ccountLeadingZeros :: MemoryDecompressionMethodFlagsEXT -> Int
countLeadingZeros :: MemoryDecompressionMethodFlagsEXT -> Int
$ccountTrailingZeros :: MemoryDecompressionMethodFlagsEXT -> Int
countTrailingZeros :: MemoryDecompressionMethodFlagsEXT -> Int
FiniteBits)
pattern $mMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT :: forall {r}.
MemoryDecompressionMethodFlagsEXT
-> ((# #) -> r) -> ((# #) -> r) -> r
$bMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT :: MemoryDecompressionMethodFlagsEXT
MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = MemoryDecompressionMethodFlagBitsEXT 0x0000000000000001
conNameMemoryDecompressionMethodFlagBitsEXT :: String
conNameMemoryDecompressionMethodFlagBitsEXT :: String
conNameMemoryDecompressionMethodFlagBitsEXT = String
"MemoryDecompressionMethodFlagBitsEXT"
enumPrefixMemoryDecompressionMethodFlagBitsEXT :: String
enumPrefixMemoryDecompressionMethodFlagBitsEXT :: String
enumPrefixMemoryDecompressionMethodFlagBitsEXT = String
"MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT"
showTableMemoryDecompressionMethodFlagBitsEXT :: [(MemoryDecompressionMethodFlagBitsEXT, String)]
showTableMemoryDecompressionMethodFlagBitsEXT :: [(MemoryDecompressionMethodFlagsEXT, String)]
showTableMemoryDecompressionMethodFlagBitsEXT =
[
( MemoryDecompressionMethodFlagsEXT
MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT
, String
""
)
]
instance Show MemoryDecompressionMethodFlagBitsEXT where
showsPrec :: Int -> MemoryDecompressionMethodFlagsEXT -> ShowS
showsPrec =
String
-> [(MemoryDecompressionMethodFlagsEXT, String)]
-> String
-> (MemoryDecompressionMethodFlagsEXT -> Word64)
-> (Word64 -> ShowS)
-> Int
-> MemoryDecompressionMethodFlagsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixMemoryDecompressionMethodFlagBitsEXT
[(MemoryDecompressionMethodFlagsEXT, String)]
showTableMemoryDecompressionMethodFlagBitsEXT
String
conNameMemoryDecompressionMethodFlagBitsEXT
(\(MemoryDecompressionMethodFlagBitsEXT Word64
x) -> Word64
x)
(\Word64
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)
instance Read MemoryDecompressionMethodFlagBitsEXT where
readPrec :: ReadPrec MemoryDecompressionMethodFlagsEXT
readPrec =
String
-> [(MemoryDecompressionMethodFlagsEXT, String)]
-> String
-> (Word64 -> MemoryDecompressionMethodFlagsEXT)
-> ReadPrec MemoryDecompressionMethodFlagsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMemoryDecompressionMethodFlagBitsEXT
[(MemoryDecompressionMethodFlagsEXT, String)]
showTableMemoryDecompressionMethodFlagBitsEXT
String
conNameMemoryDecompressionMethodFlagBitsEXT
Word64 -> MemoryDecompressionMethodFlagsEXT
MemoryDecompressionMethodFlagBitsEXT
type EXT_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
pattern EXT_MEMORY_DECOMPRESSION_SPEC_VERSION :: forall a . Integral a => a
pattern $mEXT_MEMORY_DECOMPRESSION_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_MEMORY_DECOMPRESSION_SPEC_VERSION :: forall a. Integral a => a
EXT_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
type EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_EXT_memory_decompression"
pattern EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mEXT_MEMORY_DECOMPRESSION_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXT_MEMORY_DECOMPRESSION_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_EXT_memory_decompression"