{-# language CPP #-}
module Vulkan.Extensions.VK_NV_memory_decompression ( cmdDecompressMemoryNV
, cmdDecompressMemoryIndirectCountNV
, PhysicalDeviceMemoryDecompressionFeaturesNV(..)
, PhysicalDeviceMemoryDecompressionPropertiesNV(..)
, DecompressMemoryRegionNV(..)
, MemoryDecompressionMethodFlagsNV
, MemoryDecompressionMethodFlagBitsNV( MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV
, ..
)
, NV_MEMORY_DECOMPRESSION_SPEC_VERSION
, pattern NV_MEMORY_DECOMPRESSION_SPEC_VERSION
, NV_MEMORY_DECOMPRESSION_EXTENSION_NAME
, pattern NV_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 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.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(pVkCmdDecompressMemoryIndirectCountNV))
import Vulkan.Dynamic (DeviceCmds(pVkCmdDecompressMemoryNV))
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.Core10.FundamentalTypes (Flags64)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdDecompressMemoryNV
:: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr DecompressMemoryRegionNV -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr DecompressMemoryRegionNV -> IO ()
cmdDecompressMemoryNV :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> io ()
cmdDecompressMemoryNV :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer
-> ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> io ()
cmdDecompressMemoryNV CommandBuffer
commandBuffer
"decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV
decompressMemoryRegions = 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 vkCmdDecompressMemoryNVPtr :: FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
vkCmdDecompressMemoryNVPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
pVkCmdDecompressMemoryNV (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: 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
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
vkCmdDecompressMemoryNVPtr FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> 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 vkCmdDecompressMemoryNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDecompressMemoryNV' :: Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ()
vkCmdDecompressMemoryNV' = FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
-> Ptr CommandBuffer_T
-> Word32
-> Ptr DecompressMemoryRegionNV
-> IO ()
mkVkCmdDecompressMemoryNV FunPtr
(Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ())
vkCmdDecompressMemoryNVPtr
Ptr DecompressMemoryRegionNV
pPDecompressMemoryRegions <- ((Ptr DecompressMemoryRegionNV -> IO ()) -> IO ())
-> ContT () IO (Ptr DecompressMemoryRegionNV)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DecompressMemoryRegionNV -> IO ()) -> IO ())
-> ContT () IO (Ptr DecompressMemoryRegionNV))
-> ((Ptr DecompressMemoryRegionNV -> IO ()) -> IO ())
-> ContT () IO (Ptr DecompressMemoryRegionNV)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @DecompressMemoryRegionNV ((("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> Int
forall a. Vector a -> Int
Data.Vector.length ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV
decompressMemoryRegions)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
40)
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
$ (Int -> DecompressMemoryRegionNV -> IO ())
-> ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i DecompressMemoryRegionNV
e -> Ptr DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DecompressMemoryRegionNV
pPDecompressMemoryRegions Ptr DecompressMemoryRegionNV -> Int -> Ptr DecompressMemoryRegionNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
40 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr DecompressMemoryRegionNV) (DecompressMemoryRegionNV
e)) ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV
decompressMemoryRegions)
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
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdDecompressMemoryNV" (Ptr CommandBuffer_T
-> Word32 -> Ptr DecompressMemoryRegionNV -> IO ()
vkCmdDecompressMemoryNV'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> Int
forall a. Vector a -> Int
Data.Vector.length (("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> Int)
-> ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
-> Int
forall a b. (a -> b) -> a -> b
$ ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV
decompressMemoryRegions)) :: Word32))
(Ptr DecompressMemoryRegionNV
pPDecompressMemoryRegions))
() -> ContT () IO ()
forall a. a -> ContT () IO a
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" mkVkCmdDecompressMemoryIndirectCountNV
:: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> Word32 -> IO ()
cmdDecompressMemoryIndirectCountNV :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("indirectCommandsAddress" ::: DeviceAddress)
->
("indirectCommandsCountAddress" ::: DeviceAddress)
->
("stride" ::: Word32)
-> io ()
cmdDecompressMemoryIndirectCountNV :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> Flags64 -> Flags64 -> Word32 -> io ()
cmdDecompressMemoryIndirectCountNV CommandBuffer
commandBuffer
Flags64
indirectCommandsAddress
Flags64
indirectCommandsCountAddress
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 vkCmdDecompressMemoryIndirectCountNVPtr :: FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
vkCmdDecompressMemoryIndirectCountNVPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
pVkCmdDecompressMemoryIndirectCountNV (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
vkCmdDecompressMemoryIndirectCountNVPtr FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
-> FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> 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 vkCmdDecompressMemoryIndirectCountNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDecompressMemoryIndirectCountNV' :: Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ()
vkCmdDecompressMemoryIndirectCountNV' = FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
-> Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ()
mkVkCmdDecompressMemoryIndirectCountNV FunPtr
(Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ())
vkCmdDecompressMemoryIndirectCountNVPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdDecompressMemoryIndirectCountNV" (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> Word32 -> IO ()
vkCmdDecompressMemoryIndirectCountNV'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(Flags64
indirectCommandsAddress)
(Flags64
indirectCommandsCountAddress)
(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
$ ()
data PhysicalDeviceMemoryDecompressionFeaturesNV = PhysicalDeviceMemoryDecompressionFeaturesNV
{
PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
memoryDecompression :: Bool }
deriving (Typeable, PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
(PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool)
-> (PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool)
-> Eq PhysicalDeviceMemoryDecompressionFeaturesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
== :: PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
$c/= :: PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
/= :: PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceMemoryDecompressionFeaturesNV)
#endif
deriving instance Show PhysicalDeviceMemoryDecompressionFeaturesNV
instance ToCStruct PhysicalDeviceMemoryDecompressionFeaturesNV where
withCStruct :: forall b.
PhysicalDeviceMemoryDecompressionFeaturesNV
-> (Ptr PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b)
-> IO b
withCStruct PhysicalDeviceMemoryDecompressionFeaturesNV
x Ptr PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b
f = Int
-> (Ptr PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b) -> IO b)
-> (Ptr PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p -> Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b -> IO b
forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p PhysicalDeviceMemoryDecompressionFeaturesNV
x (Ptr PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b
f Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p PhysicalDeviceMemoryDecompressionFeaturesNV{Bool
$sel:memoryDecompression:PhysicalDeviceMemoryDecompressionFeaturesNV :: PhysicalDeviceMemoryDecompressionFeaturesNV -> Bool
memoryDecompression :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> 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 PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> 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 PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> 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 PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> 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 PhysicalDeviceMemoryDecompressionFeaturesNV where
peekCStruct :: Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> IO PhysicalDeviceMemoryDecompressionFeaturesNV
peekCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p = do
Bool32
memoryDecompression <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
p Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceMemoryDecompressionFeaturesNV
-> IO PhysicalDeviceMemoryDecompressionFeaturesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceMemoryDecompressionFeaturesNV
-> IO PhysicalDeviceMemoryDecompressionFeaturesNV)
-> PhysicalDeviceMemoryDecompressionFeaturesNV
-> IO PhysicalDeviceMemoryDecompressionFeaturesNV
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceMemoryDecompressionFeaturesNV
PhysicalDeviceMemoryDecompressionFeaturesNV
(Bool32 -> Bool
bool32ToBool Bool32
memoryDecompression)
instance Storable PhysicalDeviceMemoryDecompressionFeaturesNV where
sizeOf :: PhysicalDeviceMemoryDecompressionFeaturesNV -> Int
sizeOf ~PhysicalDeviceMemoryDecompressionFeaturesNV
_ = Int
24
alignment :: PhysicalDeviceMemoryDecompressionFeaturesNV -> Int
alignment ~PhysicalDeviceMemoryDecompressionFeaturesNV
_ = Int
8
peek :: Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> IO PhysicalDeviceMemoryDecompressionFeaturesNV
peek = Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> IO PhysicalDeviceMemoryDecompressionFeaturesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> IO ()
poke Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
ptr PhysicalDeviceMemoryDecompressionFeaturesNV
poked = Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
-> PhysicalDeviceMemoryDecompressionFeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionFeaturesNV
ptr PhysicalDeviceMemoryDecompressionFeaturesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceMemoryDecompressionFeaturesNV where
zero :: PhysicalDeviceMemoryDecompressionFeaturesNV
zero = Bool -> PhysicalDeviceMemoryDecompressionFeaturesNV
PhysicalDeviceMemoryDecompressionFeaturesNV
Bool
forall a. Zero a => a
zero
data PhysicalDeviceMemoryDecompressionPropertiesNV = PhysicalDeviceMemoryDecompressionPropertiesNV
{
PhysicalDeviceMemoryDecompressionPropertiesNV
-> MemoryDecompressionMethodFlagsNV
decompressionMethods :: MemoryDecompressionMethodFlagsNV
,
PhysicalDeviceMemoryDecompressionPropertiesNV -> Flags64
maxDecompressionIndirectCount :: Word64
}
deriving (Typeable, PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool
(PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool)
-> (PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool)
-> Eq PhysicalDeviceMemoryDecompressionPropertiesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool
== :: PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool
$c/= :: PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool
/= :: PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceMemoryDecompressionPropertiesNV)
#endif
deriving instance Show PhysicalDeviceMemoryDecompressionPropertiesNV
instance ToCStruct PhysicalDeviceMemoryDecompressionPropertiesNV where
withCStruct :: forall b.
PhysicalDeviceMemoryDecompressionPropertiesNV
-> (Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b)
-> IO b
withCStruct PhysicalDeviceMemoryDecompressionPropertiesNV
x Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b
f = Int
-> (Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p -> Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b -> IO b
forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p PhysicalDeviceMemoryDecompressionPropertiesNV
x (Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b
f Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p PhysicalDeviceMemoryDecompressionPropertiesNV{Flags64
MemoryDecompressionMethodFlagsNV
$sel:decompressionMethods:PhysicalDeviceMemoryDecompressionPropertiesNV :: PhysicalDeviceMemoryDecompressionPropertiesNV
-> MemoryDecompressionMethodFlagsNV
$sel:maxDecompressionIndirectCount:PhysicalDeviceMemoryDecompressionPropertiesNV :: PhysicalDeviceMemoryDecompressionPropertiesNV -> Flags64
decompressionMethods :: MemoryDecompressionMethodFlagsNV
maxDecompressionIndirectCount :: Flags64
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr MemoryDecompressionMethodFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsNV)) (MemoryDecompressionMethodFlagsNV
decompressionMethods)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word64)) (Flags64
maxDecompressionIndirectCount)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr MemoryDecompressionMethodFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsNV)) (MemoryDecompressionMethodFlagsNV
forall a. Zero a => a
zero)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word64)) (Flags64
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceMemoryDecompressionPropertiesNV where
peekCStruct :: Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> IO PhysicalDeviceMemoryDecompressionPropertiesNV
peekCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p = do
MemoryDecompressionMethodFlagsNV
decompressionMethods <- forall a. Storable a => Ptr a -> IO a
peek @MemoryDecompressionMethodFlagsNV ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr MemoryDecompressionMethodFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr MemoryDecompressionMethodFlagsNV))
Flags64
maxDecompressionIndirectCount <- forall a. Storable a => Ptr a -> IO a
peek @Word64 ((Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
p Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word64))
PhysicalDeviceMemoryDecompressionPropertiesNV
-> IO PhysicalDeviceMemoryDecompressionPropertiesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceMemoryDecompressionPropertiesNV
-> IO PhysicalDeviceMemoryDecompressionPropertiesNV)
-> PhysicalDeviceMemoryDecompressionPropertiesNV
-> IO PhysicalDeviceMemoryDecompressionPropertiesNV
forall a b. (a -> b) -> a -> b
$ MemoryDecompressionMethodFlagsNV
-> Flags64 -> PhysicalDeviceMemoryDecompressionPropertiesNV
PhysicalDeviceMemoryDecompressionPropertiesNV
MemoryDecompressionMethodFlagsNV
decompressionMethods Flags64
maxDecompressionIndirectCount
instance Storable PhysicalDeviceMemoryDecompressionPropertiesNV where
sizeOf :: PhysicalDeviceMemoryDecompressionPropertiesNV -> Int
sizeOf ~PhysicalDeviceMemoryDecompressionPropertiesNV
_ = Int
32
alignment :: PhysicalDeviceMemoryDecompressionPropertiesNV -> Int
alignment ~PhysicalDeviceMemoryDecompressionPropertiesNV
_ = Int
8
peek :: Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> IO PhysicalDeviceMemoryDecompressionPropertiesNV
peek = Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> IO PhysicalDeviceMemoryDecompressionPropertiesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> IO ()
poke Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
ptr PhysicalDeviceMemoryDecompressionPropertiesNV
poked = Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
-> PhysicalDeviceMemoryDecompressionPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMemoryDecompressionPropertiesNV
ptr PhysicalDeviceMemoryDecompressionPropertiesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceMemoryDecompressionPropertiesNV where
zero :: PhysicalDeviceMemoryDecompressionPropertiesNV
zero = MemoryDecompressionMethodFlagsNV
-> Flags64 -> PhysicalDeviceMemoryDecompressionPropertiesNV
PhysicalDeviceMemoryDecompressionPropertiesNV
MemoryDecompressionMethodFlagsNV
forall a. Zero a => a
zero
Flags64
forall a. Zero a => a
zero
data DecompressMemoryRegionNV = DecompressMemoryRegionNV
{
DecompressMemoryRegionNV -> Flags64
srcAddress :: DeviceAddress
,
DecompressMemoryRegionNV -> Flags64
dstAddress :: DeviceAddress
,
DecompressMemoryRegionNV -> Flags64
compressedSize :: DeviceSize
,
DecompressMemoryRegionNV -> Flags64
decompressedSize :: DeviceSize
,
DecompressMemoryRegionNV -> MemoryDecompressionMethodFlagsNV
decompressionMethod :: MemoryDecompressionMethodFlagsNV
}
deriving (Typeable, DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool
(DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool)
-> (DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool)
-> Eq DecompressMemoryRegionNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool
== :: DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool
$c/= :: DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool
/= :: DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DecompressMemoryRegionNV)
#endif
deriving instance Show DecompressMemoryRegionNV
instance ToCStruct DecompressMemoryRegionNV where
withCStruct :: forall b.
DecompressMemoryRegionNV
-> (Ptr DecompressMemoryRegionNV -> IO b) -> IO b
withCStruct DecompressMemoryRegionNV
x Ptr DecompressMemoryRegionNV -> IO b
f = Int -> (Ptr DecompressMemoryRegionNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr DecompressMemoryRegionNV -> IO b) -> IO b)
-> (Ptr DecompressMemoryRegionNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DecompressMemoryRegionNV
p -> Ptr DecompressMemoryRegionNV
-> DecompressMemoryRegionNV -> IO b -> IO b
forall b.
Ptr DecompressMemoryRegionNV
-> DecompressMemoryRegionNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryRegionNV
p DecompressMemoryRegionNV
x (Ptr DecompressMemoryRegionNV -> IO b
f Ptr DecompressMemoryRegionNV
p)
pokeCStruct :: forall b.
Ptr DecompressMemoryRegionNV
-> DecompressMemoryRegionNV -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryRegionNV
p DecompressMemoryRegionNV{Flags64
MemoryDecompressionMethodFlagsNV
$sel:srcAddress:DecompressMemoryRegionNV :: DecompressMemoryRegionNV -> Flags64
$sel:dstAddress:DecompressMemoryRegionNV :: DecompressMemoryRegionNV -> Flags64
$sel:compressedSize:DecompressMemoryRegionNV :: DecompressMemoryRegionNV -> Flags64
$sel:decompressedSize:DecompressMemoryRegionNV :: DecompressMemoryRegionNV -> Flags64
$sel:decompressionMethod:DecompressMemoryRegionNV :: DecompressMemoryRegionNV -> MemoryDecompressionMethodFlagsNV
srcAddress :: Flags64
dstAddress :: Flags64
compressedSize :: Flags64
decompressedSize :: Flags64
decompressionMethod :: MemoryDecompressionMethodFlagsNV
..} IO b
f = do
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (Flags64
srcAddress)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress)) (Flags64
dstAddress)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (Flags64
compressedSize)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (Flags64
decompressedSize)
Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV
-> Int -> Ptr MemoryDecompressionMethodFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr MemoryDecompressionMethodFlagsNV)) (MemoryDecompressionMethodFlagsNV
decompressionMethod)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DecompressMemoryRegionNV -> IO b -> IO b
pokeZeroCStruct Ptr DecompressMemoryRegionNV
p IO b
f = do
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress)) (Flags64
forall a. Zero a => a
zero)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress)) (Flags64
forall a. Zero a => a
zero)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (Flags64
forall a. Zero a => a
zero)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize)) (Flags64
forall a. Zero a => a
zero)
Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV
-> Int -> Ptr MemoryDecompressionMethodFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr MemoryDecompressionMethodFlagsNV)) (MemoryDecompressionMethodFlagsNV
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DecompressMemoryRegionNV where
peekCStruct :: Ptr DecompressMemoryRegionNV -> IO DecompressMemoryRegionNV
peekCStruct Ptr DecompressMemoryRegionNV
p = do
Flags64
srcAddress <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr DeviceAddress))
Flags64
dstAddress <- forall a. Storable a => Ptr a -> IO a
peek @DeviceAddress ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceAddress))
Flags64
compressedSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
Flags64
decompressedSize <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr DeviceSize))
MemoryDecompressionMethodFlagsNV
decompressionMethod <- forall a. Storable a => Ptr a -> IO a
peek @MemoryDecompressionMethodFlagsNV ((Ptr DecompressMemoryRegionNV
p Ptr DecompressMemoryRegionNV
-> Int -> Ptr MemoryDecompressionMethodFlagsNV
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr MemoryDecompressionMethodFlagsNV))
DecompressMemoryRegionNV -> IO DecompressMemoryRegionNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (DecompressMemoryRegionNV -> IO DecompressMemoryRegionNV)
-> DecompressMemoryRegionNV -> IO DecompressMemoryRegionNV
forall a b. (a -> b) -> a -> b
$ Flags64
-> Flags64
-> Flags64
-> Flags64
-> MemoryDecompressionMethodFlagsNV
-> DecompressMemoryRegionNV
DecompressMemoryRegionNV
Flags64
srcAddress
Flags64
dstAddress
Flags64
compressedSize
Flags64
decompressedSize
MemoryDecompressionMethodFlagsNV
decompressionMethod
instance Storable DecompressMemoryRegionNV where
sizeOf :: DecompressMemoryRegionNV -> Int
sizeOf ~DecompressMemoryRegionNV
_ = Int
40
alignment :: DecompressMemoryRegionNV -> Int
alignment ~DecompressMemoryRegionNV
_ = Int
8
peek :: Ptr DecompressMemoryRegionNV -> IO DecompressMemoryRegionNV
peek = Ptr DecompressMemoryRegionNV -> IO DecompressMemoryRegionNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DecompressMemoryRegionNV -> DecompressMemoryRegionNV -> IO ()
poke Ptr DecompressMemoryRegionNV
ptr DecompressMemoryRegionNV
poked = Ptr DecompressMemoryRegionNV
-> DecompressMemoryRegionNV -> IO () -> IO ()
forall b.
Ptr DecompressMemoryRegionNV
-> DecompressMemoryRegionNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DecompressMemoryRegionNV
ptr DecompressMemoryRegionNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DecompressMemoryRegionNV where
zero :: DecompressMemoryRegionNV
zero = Flags64
-> Flags64
-> Flags64
-> Flags64
-> MemoryDecompressionMethodFlagsNV
-> DecompressMemoryRegionNV
DecompressMemoryRegionNV
Flags64
forall a. Zero a => a
zero
Flags64
forall a. Zero a => a
zero
Flags64
forall a. Zero a => a
zero
Flags64
forall a. Zero a => a
zero
MemoryDecompressionMethodFlagsNV
forall a. Zero a => a
zero
type MemoryDecompressionMethodFlagsNV = MemoryDecompressionMethodFlagBitsNV
newtype MemoryDecompressionMethodFlagBitsNV = MemoryDecompressionMethodFlagBitsNV Flags64
deriving newtype (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
(MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool)
-> Eq MemoryDecompressionMethodFlagsNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
== :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
$c/= :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
/= :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
Eq, Eq MemoryDecompressionMethodFlagsNV
Eq MemoryDecompressionMethodFlagsNV =>
(MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Ordering)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV)
-> Ord MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Ordering
MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
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 :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Ordering
compare :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Ordering
$c< :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
< :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
$c<= :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
<= :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
$c> :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
> :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
$c>= :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
>= :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> Bool
$cmax :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
max :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
$cmin :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
min :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
Ord, Ptr MemoryDecompressionMethodFlagsNV
-> IO MemoryDecompressionMethodFlagsNV
Ptr MemoryDecompressionMethodFlagsNV
-> Int -> IO MemoryDecompressionMethodFlagsNV
Ptr MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV -> IO ()
Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
MemoryDecompressionMethodFlagsNV -> Int
(MemoryDecompressionMethodFlagsNV -> Int)
-> (MemoryDecompressionMethodFlagsNV -> Int)
-> (Ptr MemoryDecompressionMethodFlagsNV
-> Int -> IO MemoryDecompressionMethodFlagsNV)
-> (Ptr MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV -> IO ())
-> (forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsNV)
-> (forall b.
Ptr b -> Int -> MemoryDecompressionMethodFlagsNV -> IO ())
-> (Ptr MemoryDecompressionMethodFlagsNV
-> IO MemoryDecompressionMethodFlagsNV)
-> (Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ())
-> Storable MemoryDecompressionMethodFlagsNV
forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsNV
forall b. Ptr b -> Int -> MemoryDecompressionMethodFlagsNV -> 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 :: MemoryDecompressionMethodFlagsNV -> Int
sizeOf :: MemoryDecompressionMethodFlagsNV -> Int
$calignment :: MemoryDecompressionMethodFlagsNV -> Int
alignment :: MemoryDecompressionMethodFlagsNV -> Int
$cpeekElemOff :: Ptr MemoryDecompressionMethodFlagsNV
-> Int -> IO MemoryDecompressionMethodFlagsNV
peekElemOff :: Ptr MemoryDecompressionMethodFlagsNV
-> Int -> IO MemoryDecompressionMethodFlagsNV
$cpokeElemOff :: Ptr MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV -> IO ()
pokeElemOff :: Ptr MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsNV
peekByteOff :: forall b. Ptr b -> Int -> IO MemoryDecompressionMethodFlagsNV
$cpokeByteOff :: forall b. Ptr b -> Int -> MemoryDecompressionMethodFlagsNV -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> MemoryDecompressionMethodFlagsNV -> IO ()
$cpeek :: Ptr MemoryDecompressionMethodFlagsNV
-> IO MemoryDecompressionMethodFlagsNV
peek :: Ptr MemoryDecompressionMethodFlagsNV
-> IO MemoryDecompressionMethodFlagsNV
$cpoke :: Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
poke :: Ptr MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV -> IO ()
Storable, MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV
-> Zero MemoryDecompressionMethodFlagsNV
forall a. a -> Zero a
$czero :: MemoryDecompressionMethodFlagsNV
zero :: MemoryDecompressionMethodFlagsNV
Zero, Eq MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV
Eq MemoryDecompressionMethodFlagsNV =>
(MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> MemoryDecompressionMethodFlagsNV
-> (Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV -> Int -> Bool)
-> (MemoryDecompressionMethodFlagsNV -> Maybe Int)
-> (MemoryDecompressionMethodFlagsNV -> Int)
-> (MemoryDecompressionMethodFlagsNV -> Bool)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV)
-> (MemoryDecompressionMethodFlagsNV -> Int)
-> Bits MemoryDecompressionMethodFlagsNV
Int -> MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV -> Bool
MemoryDecompressionMethodFlagsNV -> Int
MemoryDecompressionMethodFlagsNV -> Maybe Int
MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV -> Int -> Bool
MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
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.&. :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
.&. :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
$c.|. :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
.|. :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
$cxor :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
xor :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
$ccomplement :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
complement :: MemoryDecompressionMethodFlagsNV
-> MemoryDecompressionMethodFlagsNV
$cshift :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
shift :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$crotate :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
rotate :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$czeroBits :: MemoryDecompressionMethodFlagsNV
zeroBits :: MemoryDecompressionMethodFlagsNV
$cbit :: Int -> MemoryDecompressionMethodFlagsNV
bit :: Int -> MemoryDecompressionMethodFlagsNV
$csetBit :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
setBit :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$cclearBit :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
clearBit :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$ccomplementBit :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
complementBit :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$ctestBit :: MemoryDecompressionMethodFlagsNV -> Int -> Bool
testBit :: MemoryDecompressionMethodFlagsNV -> Int -> Bool
$cbitSizeMaybe :: MemoryDecompressionMethodFlagsNV -> Maybe Int
bitSizeMaybe :: MemoryDecompressionMethodFlagsNV -> Maybe Int
$cbitSize :: MemoryDecompressionMethodFlagsNV -> Int
bitSize :: MemoryDecompressionMethodFlagsNV -> Int
$cisSigned :: MemoryDecompressionMethodFlagsNV -> Bool
isSigned :: MemoryDecompressionMethodFlagsNV -> Bool
$cshiftL :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
shiftL :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$cunsafeShiftL :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
unsafeShiftL :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$cshiftR :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
shiftR :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$cunsafeShiftR :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
unsafeShiftR :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$crotateL :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
rotateL :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$crotateR :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
rotateR :: MemoryDecompressionMethodFlagsNV
-> Int -> MemoryDecompressionMethodFlagsNV
$cpopCount :: MemoryDecompressionMethodFlagsNV -> Int
popCount :: MemoryDecompressionMethodFlagsNV -> Int
Bits, Bits MemoryDecompressionMethodFlagsNV
Bits MemoryDecompressionMethodFlagsNV =>
(MemoryDecompressionMethodFlagsNV -> Int)
-> (MemoryDecompressionMethodFlagsNV -> Int)
-> (MemoryDecompressionMethodFlagsNV -> Int)
-> FiniteBits MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagsNV -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: MemoryDecompressionMethodFlagsNV -> Int
finiteBitSize :: MemoryDecompressionMethodFlagsNV -> Int
$ccountLeadingZeros :: MemoryDecompressionMethodFlagsNV -> Int
countLeadingZeros :: MemoryDecompressionMethodFlagsNV -> Int
$ccountTrailingZeros :: MemoryDecompressionMethodFlagsNV -> Int
countTrailingZeros :: MemoryDecompressionMethodFlagsNV -> Int
FiniteBits)
pattern $bMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV :: MemoryDecompressionMethodFlagsNV
$mMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV :: forall {r}.
MemoryDecompressionMethodFlagsNV
-> ((# #) -> r) -> ((# #) -> r) -> r
MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = MemoryDecompressionMethodFlagBitsNV 0x0000000000000001
conNameMemoryDecompressionMethodFlagBitsNV :: String
conNameMemoryDecompressionMethodFlagBitsNV :: String
conNameMemoryDecompressionMethodFlagBitsNV = String
"MemoryDecompressionMethodFlagBitsNV"
enumPrefixMemoryDecompressionMethodFlagBitsNV :: String
enumPrefixMemoryDecompressionMethodFlagBitsNV :: String
enumPrefixMemoryDecompressionMethodFlagBitsNV = String
"MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV"
showTableMemoryDecompressionMethodFlagBitsNV :: [(MemoryDecompressionMethodFlagBitsNV, String)]
showTableMemoryDecompressionMethodFlagBitsNV :: [(MemoryDecompressionMethodFlagsNV, String)]
showTableMemoryDecompressionMethodFlagBitsNV =
[
( MemoryDecompressionMethodFlagsNV
MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV
, String
""
)
]
instance Show MemoryDecompressionMethodFlagBitsNV where
showsPrec :: Int -> MemoryDecompressionMethodFlagsNV -> ShowS
showsPrec =
String
-> [(MemoryDecompressionMethodFlagsNV, String)]
-> String
-> (MemoryDecompressionMethodFlagsNV -> Flags64)
-> (Flags64 -> ShowS)
-> Int
-> MemoryDecompressionMethodFlagsNV
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixMemoryDecompressionMethodFlagBitsNV
[(MemoryDecompressionMethodFlagsNV, String)]
showTableMemoryDecompressionMethodFlagBitsNV
String
conNameMemoryDecompressionMethodFlagBitsNV
(\(MemoryDecompressionMethodFlagBitsNV Flags64
x) -> Flags64
x)
(\Flags64
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Flags64
x)
instance Read MemoryDecompressionMethodFlagBitsNV where
readPrec :: ReadPrec MemoryDecompressionMethodFlagsNV
readPrec =
String
-> [(MemoryDecompressionMethodFlagsNV, String)]
-> String
-> (Flags64 -> MemoryDecompressionMethodFlagsNV)
-> ReadPrec MemoryDecompressionMethodFlagsNV
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixMemoryDecompressionMethodFlagBitsNV
[(MemoryDecompressionMethodFlagsNV, String)]
showTableMemoryDecompressionMethodFlagBitsNV
String
conNameMemoryDecompressionMethodFlagBitsNV
Flags64 -> MemoryDecompressionMethodFlagsNV
MemoryDecompressionMethodFlagBitsNV
type NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
pattern NV_MEMORY_DECOMPRESSION_SPEC_VERSION :: forall a . Integral a => a
pattern $bNV_MEMORY_DECOMPRESSION_SPEC_VERSION :: forall a. Integral a => a
$mNV_MEMORY_DECOMPRESSION_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
type NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression"
pattern NV_MEMORY_DECOMPRESSION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bNV_MEMORY_DECOMPRESSION_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mNV_MEMORY_DECOMPRESSION_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression"