{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_shader_module_identifier ( getShaderModuleIdentifierEXT
, getShaderModuleCreateInfoIdentifierEXT
, PhysicalDeviceShaderModuleIdentifierFeaturesEXT(..)
, PhysicalDeviceShaderModuleIdentifierPropertiesEXT(..)
, PipelineShaderStageModuleIdentifierCreateInfoEXT(..)
, ShaderModuleIdentifierEXT(..)
, EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION
, pattern EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION
, EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME
, pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME
, MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
, pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
) where
import Vulkan.CStruct.Utils (FixedArray)
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 Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import Data.Word (Word32)
import Data.Word (Word8)
import Data.ByteString (ByteString)
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.CStruct.Extends (forgetExtensions)
import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)
import Vulkan.CStruct.Utils (pokeFixedLengthByteString)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Device(Device))
import Vulkan.Dynamic (DeviceCmds(pVkGetShaderModuleCreateInfoIdentifierEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetShaderModuleIdentifierEXT))
import Vulkan.Core10.Handles (Device_T)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.Core10.APIConstants (MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT)
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.Core10.Handles (ShaderModule)
import Vulkan.Core10.Handles (ShaderModule(..))
import Vulkan.Core10.Shader (ShaderModuleCreateInfo)
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.APIConstants (UUID_SIZE)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT))
import Vulkan.Core10.APIConstants (MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT)
import Vulkan.Core10.APIConstants (pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetShaderModuleIdentifierEXT
:: FunPtr (Ptr Device_T -> ShaderModule -> Ptr ShaderModuleIdentifierEXT -> IO ()) -> Ptr Device_T -> ShaderModule -> Ptr ShaderModuleIdentifierEXT -> IO ()
getShaderModuleIdentifierEXT :: forall io
. (MonadIO io)
=>
Device
->
ShaderModule
-> io (ShaderModuleIdentifierEXT)
getShaderModuleIdentifierEXT :: forall (io :: * -> *).
MonadIO io =>
Device -> ShaderModule -> io ShaderModuleIdentifierEXT
getShaderModuleIdentifierEXT Device
device ShaderModule
shaderModule = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetShaderModuleIdentifierEXTPtr :: FunPtr
(Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
vkGetShaderModuleIdentifierEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
pVkGetShaderModuleIdentifierEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
vkGetShaderModuleIdentifierEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetShaderModuleIdentifierEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetShaderModuleIdentifierEXT' :: Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ()
vkGetShaderModuleIdentifierEXT' = FunPtr
(Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
-> Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ()
mkVkGetShaderModuleIdentifierEXT FunPtr
(Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
vkGetShaderModuleIdentifierEXTPtr
"pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
pPIdentifier <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @ShaderModuleIdentifierEXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetShaderModuleIdentifierEXT" (Ptr Device_T
-> ShaderModule
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ()
vkGetShaderModuleIdentifierEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(ShaderModule
shaderModule)
("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
pPIdentifier))
ShaderModuleIdentifierEXT
pIdentifier <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ShaderModuleIdentifierEXT "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
pPIdentifier
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (ShaderModuleIdentifierEXT
pIdentifier)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetShaderModuleCreateInfoIdentifierEXT
:: FunPtr (Ptr Device_T -> Ptr (SomeStruct ShaderModuleCreateInfo) -> Ptr ShaderModuleIdentifierEXT -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct ShaderModuleCreateInfo) -> Ptr ShaderModuleIdentifierEXT -> IO ()
getShaderModuleCreateInfoIdentifierEXT :: forall a io
. ( Extendss ShaderModuleCreateInfo a
, PokeChain a
, MonadIO io )
=>
Device
->
(ShaderModuleCreateInfo a)
-> io (ShaderModuleIdentifierEXT)
getShaderModuleCreateInfoIdentifierEXT :: forall (a :: [*]) (io :: * -> *).
(Extendss ShaderModuleCreateInfo a, PokeChain a, MonadIO io) =>
Device -> ShaderModuleCreateInfo a -> io ShaderModuleIdentifierEXT
getShaderModuleCreateInfoIdentifierEXT Device
device
ShaderModuleCreateInfo a
createInfo = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetShaderModuleCreateInfoIdentifierEXTPtr :: FunPtr
(Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
vkGetShaderModuleCreateInfoIdentifierEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
pVkGetShaderModuleCreateInfoIdentifierEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
vkGetShaderModuleCreateInfoIdentifierEXTPtr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetShaderModuleCreateInfoIdentifierEXT is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetShaderModuleCreateInfoIdentifierEXT' :: Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ()
vkGetShaderModuleCreateInfoIdentifierEXT' = FunPtr
(Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
-> Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ()
mkVkGetShaderModuleCreateInfoIdentifierEXT FunPtr
(Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ())
vkGetShaderModuleCreateInfoIdentifierEXTPtr
Ptr (ShaderModuleCreateInfo a)
pCreateInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (ShaderModuleCreateInfo a
createInfo)
"pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
pPIdentifier <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @ShaderModuleIdentifierEXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetShaderModuleCreateInfoIdentifierEXT" (Ptr Device_T
-> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo))
-> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ()
vkGetShaderModuleCreateInfoIdentifierEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions Ptr (ShaderModuleCreateInfo a)
pCreateInfo)
("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
pPIdentifier))
ShaderModuleIdentifierEXT
pIdentifier <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ShaderModuleIdentifierEXT "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
pPIdentifier
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (ShaderModuleIdentifierEXT
pIdentifier)
data PhysicalDeviceShaderModuleIdentifierFeaturesEXT = PhysicalDeviceShaderModuleIdentifierFeaturesEXT
{
PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
shaderModuleIdentifier :: Bool }
deriving (Typeable, PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
$c/= :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
== :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
$c== :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderModuleIdentifierFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceShaderModuleIdentifierFeaturesEXT
instance ToCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> (Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT
x Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p PhysicalDeviceShaderModuleIdentifierFeaturesEXT
x (Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> IO b
f Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p PhysicalDeviceShaderModuleIdentifierFeaturesEXT{Bool
shaderModuleIdentifier :: Bool
$sel:shaderModuleIdentifier:PhysicalDeviceShaderModuleIdentifierFeaturesEXT :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderModuleIdentifier))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderModuleIdentifierFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> IO PhysicalDeviceShaderModuleIdentifierFeaturesEXT
peekCStruct Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p = do
Bool32
shaderModuleIdentifier <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceShaderModuleIdentifierFeaturesEXT
PhysicalDeviceShaderModuleIdentifierFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
shaderModuleIdentifier)
instance Storable PhysicalDeviceShaderModuleIdentifierFeaturesEXT where
sizeOf :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Int
sizeOf ~PhysicalDeviceShaderModuleIdentifierFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> Int
alignment ~PhysicalDeviceShaderModuleIdentifierFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> IO PhysicalDeviceShaderModuleIdentifierFeaturesEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
-> PhysicalDeviceShaderModuleIdentifierFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
ptr PhysicalDeviceShaderModuleIdentifierFeaturesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderModuleIdentifierFeaturesEXT where
zero :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT
zero = Bool -> PhysicalDeviceShaderModuleIdentifierFeaturesEXT
PhysicalDeviceShaderModuleIdentifierFeaturesEXT
forall a. Zero a => a
zero
data PhysicalDeviceShaderModuleIdentifierPropertiesEXT = PhysicalDeviceShaderModuleIdentifierPropertiesEXT
{
PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> ByteString
shaderModuleIdentifierAlgorithmUUID :: ByteString }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderModuleIdentifierPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceShaderModuleIdentifierPropertiesEXT
instance ToCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> (Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT
x Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p PhysicalDeviceShaderModuleIdentifierPropertiesEXT
x (Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> IO b
f Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p PhysicalDeviceShaderModuleIdentifierPropertiesEXT{ByteString
shaderModuleIdentifierAlgorithmUUID :: ByteString
$sel:shaderModuleIdentifierAlgorithmUUID:PhysicalDeviceShaderModuleIdentifierPropertiesEXT :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> ByteString
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n Word8) -> ByteString -> IO ()
pokeFixedLengthByteString ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (FixedArray UUID_SIZE Word8))) (ByteString
shaderModuleIdentifierAlgorithmUUID)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n Word8) -> ByteString -> IO ()
pokeFixedLengthByteString ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (FixedArray UUID_SIZE Word8))) (forall a. Monoid a => a
mempty)
IO b
f
instance FromCStruct PhysicalDeviceShaderModuleIdentifierPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> IO PhysicalDeviceShaderModuleIdentifierPropertiesEXT
peekCStruct Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p = do
ByteString
shaderModuleIdentifierAlgorithmUUID <- forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n Word8) -> IO ByteString
peekByteStringFromSizedVectorPtr ((Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (FixedArray UUID_SIZE Word8)))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ ByteString -> PhysicalDeviceShaderModuleIdentifierPropertiesEXT
PhysicalDeviceShaderModuleIdentifierPropertiesEXT
ByteString
shaderModuleIdentifierAlgorithmUUID
instance Storable PhysicalDeviceShaderModuleIdentifierPropertiesEXT where
sizeOf :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> Int
sizeOf ~PhysicalDeviceShaderModuleIdentifierPropertiesEXT
_ = Int
32
alignment :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> Int
alignment ~PhysicalDeviceShaderModuleIdentifierPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> IO PhysicalDeviceShaderModuleIdentifierPropertiesEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
-> PhysicalDeviceShaderModuleIdentifierPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
ptr PhysicalDeviceShaderModuleIdentifierPropertiesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderModuleIdentifierPropertiesEXT where
zero :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT
zero = ByteString -> PhysicalDeviceShaderModuleIdentifierPropertiesEXT
PhysicalDeviceShaderModuleIdentifierPropertiesEXT
forall a. Monoid a => a
mempty
data PipelineShaderStageModuleIdentifierCreateInfoEXT = PipelineShaderStageModuleIdentifierCreateInfoEXT
{
PipelineShaderStageModuleIdentifierCreateInfoEXT -> Vector Word8
identifier :: Vector Word8 }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineShaderStageModuleIdentifierCreateInfoEXT)
#endif
deriving instance Show PipelineShaderStageModuleIdentifierCreateInfoEXT
instance ToCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT where
withCStruct :: forall b.
PipelineShaderStageModuleIdentifierCreateInfoEXT
-> (Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT -> IO b)
-> IO b
withCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT
x Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 forall a b. (a -> b) -> a -> b
$ \Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p PipelineShaderStageModuleIdentifierCreateInfoEXT
x (Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT -> IO b
f Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
-> PipelineShaderStageModuleIdentifierCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p PipelineShaderStageModuleIdentifierCreateInfoEXT{Vector Word8
identifier :: Vector Word8
$sel:identifier:PipelineShaderStageModuleIdentifierCreateInfoEXT :: PipelineShaderStageModuleIdentifierCreateInfoEXT -> Vector Word8
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ (Vector Word8
identifier)) :: Word32))
Ptr Word8
pPIdentifier' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @Word8 (forall a. Vector a -> Int
Data.Vector.length (Vector Word8
identifier))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i Word8
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr Word8
pPIdentifier' forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
1 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Word8) (Word8
e)) (Vector Word8
identifier)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr Word8))) (Ptr Word8
pPIdentifier')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
-> IO b -> IO b
pokeZeroCStruct Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct PipelineShaderStageModuleIdentifierCreateInfoEXT where
peekCStruct :: Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
-> IO PipelineShaderStageModuleIdentifierCreateInfoEXT
peekCStruct Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p = do
Word32
identifierSize <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Ptr Word8
pIdentifier <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr Word8) ((Ptr PipelineShaderStageModuleIdentifierCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr Word8)))
Vector Word8
pIdentifier' <- forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
identifierSize) (\Int
i -> forall a. Storable a => Ptr a -> IO a
peek @Word8 ((Ptr Word8
pIdentifier forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
1 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Word8)))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Vector Word8 -> PipelineShaderStageModuleIdentifierCreateInfoEXT
PipelineShaderStageModuleIdentifierCreateInfoEXT
Vector Word8
pIdentifier'
instance Zero PipelineShaderStageModuleIdentifierCreateInfoEXT where
zero :: PipelineShaderStageModuleIdentifierCreateInfoEXT
zero = Vector Word8 -> PipelineShaderStageModuleIdentifierCreateInfoEXT
PipelineShaderStageModuleIdentifierCreateInfoEXT
forall a. Monoid a => a
mempty
data ShaderModuleIdentifierEXT = ShaderModuleIdentifierEXT
{
ShaderModuleIdentifierEXT -> Word32
identifierSize :: Word32
,
ShaderModuleIdentifierEXT -> ByteString
identifier :: ByteString
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ShaderModuleIdentifierEXT)
#endif
deriving instance Show ShaderModuleIdentifierEXT
instance ToCStruct ShaderModuleIdentifierEXT where
withCStruct :: forall b.
ShaderModuleIdentifierEXT
-> (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO b)
-> IO b
withCStruct ShaderModuleIdentifierEXT
x ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 forall a b. (a -> b) -> a -> b
$ \"pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p ShaderModuleIdentifierEXT
x (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO b
f "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p)
pokeCStruct :: forall b.
("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> ShaderModuleIdentifierEXT -> IO b -> IO b
pokeCStruct "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p ShaderModuleIdentifierEXT{Word32
ByteString
identifier :: ByteString
identifierSize :: Word32
$sel:identifier:ShaderModuleIdentifierEXT :: ShaderModuleIdentifierEXT -> ByteString
$sel:identifierSize:ShaderModuleIdentifierEXT :: ShaderModuleIdentifierEXT -> Word32
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
identifierSize)
forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n Word8) -> ByteString -> IO ()
pokeFixedLengthByteString (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr (FixedArray MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT Word8))) (ByteString
identifier)
IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO b -> IO b
pokeZeroCStruct "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n Word8) -> ByteString -> IO ()
pokeFixedLengthByteString (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr (FixedArray MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT Word8))) (forall a. Monoid a => a
mempty)
IO b
f
instance FromCStruct ShaderModuleIdentifierEXT where
peekCStruct :: ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ShaderModuleIdentifierEXT
peekCStruct "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p = do
Word32
identifierSize <- forall a. Storable a => Ptr a -> IO a
peek @Word32 (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
ByteString
identifier <- forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n Word8) -> IO ByteString
peekByteStringFromSizedVectorPtr (("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr (FixedArray MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT Word8)))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Word32 -> ByteString -> ShaderModuleIdentifierEXT
ShaderModuleIdentifierEXT
Word32
identifierSize ByteString
identifier
instance Storable ShaderModuleIdentifierEXT where
sizeOf :: ShaderModuleIdentifierEXT -> Int
sizeOf ~ShaderModuleIdentifierEXT
_ = Int
56
alignment :: ShaderModuleIdentifierEXT -> Int
alignment ~ShaderModuleIdentifierEXT
_ = Int
8
peek :: ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> IO ShaderModuleIdentifierEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT)
-> ShaderModuleIdentifierEXT -> IO ()
poke "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
ptr ShaderModuleIdentifierEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pIdentifier" ::: Ptr ShaderModuleIdentifierEXT
ptr ShaderModuleIdentifierEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ShaderModuleIdentifierEXT where
zero :: ShaderModuleIdentifierEXT
zero = Word32 -> ByteString -> ShaderModuleIdentifierEXT
ShaderModuleIdentifierEXT
forall a. Zero a => a
zero
forall a. Monoid a => a
mempty
type EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1
pattern EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION :: forall a. Integral a => a
$mEXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1
type EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier"
pattern EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier"