{-# language CPP #-}
module Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block ( PhysicalDeviceInlineUniformBlockFeatures(..)
, PhysicalDeviceInlineUniformBlockProperties(..)
, WriteDescriptorSetInlineUniformBlock(..)
, DescriptorPoolInlineUniformBlockCreateInfo(..)
, DescriptorType(..)
, StructureType(..)
) where
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
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 Foreign.Ptr (Ptr)
import Data.Word (Word32)
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK))
import Vulkan.Core10.Enums.DescriptorType (DescriptorType(..))
import Vulkan.Core10.Enums.StructureType (StructureType(..))
data PhysicalDeviceInlineUniformBlockFeatures = PhysicalDeviceInlineUniformBlockFeatures
{
PhysicalDeviceInlineUniformBlockFeatures -> Bool
inlineUniformBlock :: Bool
,
PhysicalDeviceInlineUniformBlockFeatures -> Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
}
deriving (Typeable, PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> Bool
$c/= :: PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> Bool
== :: PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> Bool
$c== :: PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceInlineUniformBlockFeatures)
#endif
deriving instance Show PhysicalDeviceInlineUniformBlockFeatures
instance ToCStruct PhysicalDeviceInlineUniformBlockFeatures where
withCStruct :: forall b.
PhysicalDeviceInlineUniformBlockFeatures
-> (Ptr PhysicalDeviceInlineUniformBlockFeatures -> IO b) -> IO b
withCStruct PhysicalDeviceInlineUniformBlockFeatures
x Ptr PhysicalDeviceInlineUniformBlockFeatures -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceInlineUniformBlockFeatures
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceInlineUniformBlockFeatures
p PhysicalDeviceInlineUniformBlockFeatures
x (Ptr PhysicalDeviceInlineUniformBlockFeatures -> IO b
f Ptr PhysicalDeviceInlineUniformBlockFeatures
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceInlineUniformBlockFeatures
p PhysicalDeviceInlineUniformBlockFeatures{Bool
descriptorBindingInlineUniformBlockUpdateAfterBind :: Bool
inlineUniformBlock :: Bool
$sel:descriptorBindingInlineUniformBlockUpdateAfterBind:PhysicalDeviceInlineUniformBlockFeatures :: PhysicalDeviceInlineUniformBlockFeatures -> Bool
$sel:inlineUniformBlock:PhysicalDeviceInlineUniformBlockFeatures :: PhysicalDeviceInlineUniformBlockFeatures -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockFeatures
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 PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
inlineUniformBlock))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
descriptorBindingInlineUniformBlockUpdateAfterBind))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceInlineUniformBlockFeatures -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceInlineUniformBlockFeatures
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockFeatures
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 PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceInlineUniformBlockFeatures where
peekCStruct :: Ptr PhysicalDeviceInlineUniformBlockFeatures
-> IO PhysicalDeviceInlineUniformBlockFeatures
peekCStruct Ptr PhysicalDeviceInlineUniformBlockFeatures
p = do
Bool32
inlineUniformBlock <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
descriptorBindingInlineUniformBlockUpdateAfterBind <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceInlineUniformBlockFeatures
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> PhysicalDeviceInlineUniformBlockFeatures
PhysicalDeviceInlineUniformBlockFeatures
(Bool32 -> Bool
bool32ToBool Bool32
inlineUniformBlock)
(Bool32 -> Bool
bool32ToBool Bool32
descriptorBindingInlineUniformBlockUpdateAfterBind)
instance Storable PhysicalDeviceInlineUniformBlockFeatures where
sizeOf :: PhysicalDeviceInlineUniformBlockFeatures -> Int
sizeOf ~PhysicalDeviceInlineUniformBlockFeatures
_ = Int
24
alignment :: PhysicalDeviceInlineUniformBlockFeatures -> Int
alignment ~PhysicalDeviceInlineUniformBlockFeatures
_ = Int
8
peek :: Ptr PhysicalDeviceInlineUniformBlockFeatures
-> IO PhysicalDeviceInlineUniformBlockFeatures
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceInlineUniformBlockFeatures
-> PhysicalDeviceInlineUniformBlockFeatures -> IO ()
poke Ptr PhysicalDeviceInlineUniformBlockFeatures
ptr PhysicalDeviceInlineUniformBlockFeatures
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceInlineUniformBlockFeatures
ptr PhysicalDeviceInlineUniformBlockFeatures
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceInlineUniformBlockFeatures where
zero :: PhysicalDeviceInlineUniformBlockFeatures
zero = Bool -> Bool -> PhysicalDeviceInlineUniformBlockFeatures
PhysicalDeviceInlineUniformBlockFeatures
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data PhysicalDeviceInlineUniformBlockProperties = PhysicalDeviceInlineUniformBlockProperties
{
PhysicalDeviceInlineUniformBlockProperties -> Word32
maxInlineUniformBlockSize :: Word32
,
PhysicalDeviceInlineUniformBlockProperties -> Word32
maxPerStageDescriptorInlineUniformBlocks :: Word32
,
PhysicalDeviceInlineUniformBlockProperties -> Word32
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32
,
PhysicalDeviceInlineUniformBlockProperties -> Word32
maxDescriptorSetInlineUniformBlocks :: Word32
,
PhysicalDeviceInlineUniformBlockProperties -> Word32
maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32
}
deriving (Typeable, PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> Bool
$c/= :: PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> Bool
== :: PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> Bool
$c== :: PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceInlineUniformBlockProperties)
#endif
deriving instance Show PhysicalDeviceInlineUniformBlockProperties
instance ToCStruct PhysicalDeviceInlineUniformBlockProperties where
withCStruct :: forall b.
PhysicalDeviceInlineUniformBlockProperties
-> (Ptr PhysicalDeviceInlineUniformBlockProperties -> IO b) -> IO b
withCStruct PhysicalDeviceInlineUniformBlockProperties
x Ptr PhysicalDeviceInlineUniformBlockProperties -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceInlineUniformBlockProperties
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceInlineUniformBlockProperties
p PhysicalDeviceInlineUniformBlockProperties
x (Ptr PhysicalDeviceInlineUniformBlockProperties -> IO b
f Ptr PhysicalDeviceInlineUniformBlockProperties
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceInlineUniformBlockProperties
p PhysicalDeviceInlineUniformBlockProperties{Word32
maxDescriptorSetUpdateAfterBindInlineUniformBlocks :: Word32
maxDescriptorSetInlineUniformBlocks :: Word32
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks :: Word32
maxPerStageDescriptorInlineUniformBlocks :: Word32
maxInlineUniformBlockSize :: Word32
$sel:maxDescriptorSetUpdateAfterBindInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties :: PhysicalDeviceInlineUniformBlockProperties -> Word32
$sel:maxDescriptorSetInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties :: PhysicalDeviceInlineUniformBlockProperties -> Word32
$sel:maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties :: PhysicalDeviceInlineUniformBlockProperties -> Word32
$sel:maxPerStageDescriptorInlineUniformBlocks:PhysicalDeviceInlineUniformBlockProperties :: PhysicalDeviceInlineUniformBlockProperties -> Word32
$sel:maxInlineUniformBlockSize:PhysicalDeviceInlineUniformBlockProperties :: PhysicalDeviceInlineUniformBlockProperties -> Word32
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
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 PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
maxInlineUniformBlockSize)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
maxPerStageDescriptorInlineUniformBlocks)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (Word32
maxDescriptorSetInlineUniformBlocks)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (Word32
maxDescriptorSetUpdateAfterBindInlineUniformBlocks)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceInlineUniformBlockProperties -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceInlineUniformBlockProperties
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
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 PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceInlineUniformBlockProperties where
peekCStruct :: Ptr PhysicalDeviceInlineUniformBlockProperties
-> IO PhysicalDeviceInlineUniformBlockProperties
peekCStruct Ptr PhysicalDeviceInlineUniformBlockProperties
p = do
Word32
maxInlineUniformBlockSize <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Word32
maxPerStageDescriptorInlineUniformBlocks <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Word32
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
Word32
maxDescriptorSetInlineUniformBlocks <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32))
Word32
maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceInlineUniformBlockProperties
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Word32
-> Word32
-> Word32
-> Word32
-> Word32
-> PhysicalDeviceInlineUniformBlockProperties
PhysicalDeviceInlineUniformBlockProperties
Word32
maxInlineUniformBlockSize
Word32
maxPerStageDescriptorInlineUniformBlocks
Word32
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
Word32
maxDescriptorSetInlineUniformBlocks
Word32
maxDescriptorSetUpdateAfterBindInlineUniformBlocks
instance Storable PhysicalDeviceInlineUniformBlockProperties where
sizeOf :: PhysicalDeviceInlineUniformBlockProperties -> Int
sizeOf ~PhysicalDeviceInlineUniformBlockProperties
_ = Int
40
alignment :: PhysicalDeviceInlineUniformBlockProperties -> Int
alignment ~PhysicalDeviceInlineUniformBlockProperties
_ = Int
8
peek :: Ptr PhysicalDeviceInlineUniformBlockProperties
-> IO PhysicalDeviceInlineUniformBlockProperties
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceInlineUniformBlockProperties
-> PhysicalDeviceInlineUniformBlockProperties -> IO ()
poke Ptr PhysicalDeviceInlineUniformBlockProperties
ptr PhysicalDeviceInlineUniformBlockProperties
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceInlineUniformBlockProperties
ptr PhysicalDeviceInlineUniformBlockProperties
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceInlineUniformBlockProperties where
zero :: PhysicalDeviceInlineUniformBlockProperties
zero = Word32
-> Word32
-> Word32
-> Word32
-> Word32
-> PhysicalDeviceInlineUniformBlockProperties
PhysicalDeviceInlineUniformBlockProperties
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data WriteDescriptorSetInlineUniformBlock = WriteDescriptorSetInlineUniformBlock
{
WriteDescriptorSetInlineUniformBlock -> Word32
dataSize :: Word32
,
WriteDescriptorSetInlineUniformBlock -> Ptr ()
data' :: Ptr ()
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (WriteDescriptorSetInlineUniformBlock)
#endif
deriving instance Show WriteDescriptorSetInlineUniformBlock
instance ToCStruct WriteDescriptorSetInlineUniformBlock where
withCStruct :: forall b.
WriteDescriptorSetInlineUniformBlock
-> (Ptr WriteDescriptorSetInlineUniformBlock -> IO b) -> IO b
withCStruct WriteDescriptorSetInlineUniformBlock
x Ptr WriteDescriptorSetInlineUniformBlock -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 forall a b. (a -> b) -> a -> b
$ \Ptr WriteDescriptorSetInlineUniformBlock
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr WriteDescriptorSetInlineUniformBlock
p WriteDescriptorSetInlineUniformBlock
x (Ptr WriteDescriptorSetInlineUniformBlock -> IO b
f Ptr WriteDescriptorSetInlineUniformBlock
p)
pokeCStruct :: forall b.
Ptr WriteDescriptorSetInlineUniformBlock
-> WriteDescriptorSetInlineUniformBlock -> IO b -> IO b
pokeCStruct Ptr WriteDescriptorSetInlineUniformBlock
p WriteDescriptorSetInlineUniformBlock{Word32
Ptr ()
data' :: Ptr ()
dataSize :: Word32
$sel:data':WriteDescriptorSetInlineUniformBlock :: WriteDescriptorSetInlineUniformBlock -> Ptr ()
$sel:dataSize:WriteDescriptorSetInlineUniformBlock :: WriteDescriptorSetInlineUniformBlock -> Word32
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr WriteDescriptorSetInlineUniformBlock
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 WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
dataSize)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ()))) (Ptr ()
data')
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr WriteDescriptorSetInlineUniformBlock -> IO b -> IO b
pokeZeroCStruct Ptr WriteDescriptorSetInlineUniformBlock
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr WriteDescriptorSetInlineUniformBlock
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 WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ()))) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct WriteDescriptorSetInlineUniformBlock where
peekCStruct :: Ptr WriteDescriptorSetInlineUniformBlock
-> IO WriteDescriptorSetInlineUniformBlock
peekCStruct Ptr WriteDescriptorSetInlineUniformBlock
p = do
Word32
dataSize <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Ptr ()
pData <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr WriteDescriptorSetInlineUniformBlock
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ())))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Word32 -> Ptr () -> WriteDescriptorSetInlineUniformBlock
WriteDescriptorSetInlineUniformBlock
Word32
dataSize Ptr ()
pData
instance Storable WriteDescriptorSetInlineUniformBlock where
sizeOf :: WriteDescriptorSetInlineUniformBlock -> Int
sizeOf ~WriteDescriptorSetInlineUniformBlock
_ = Int
32
alignment :: WriteDescriptorSetInlineUniformBlock -> Int
alignment ~WriteDescriptorSetInlineUniformBlock
_ = Int
8
peek :: Ptr WriteDescriptorSetInlineUniformBlock
-> IO WriteDescriptorSetInlineUniformBlock
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr WriteDescriptorSetInlineUniformBlock
-> WriteDescriptorSetInlineUniformBlock -> IO ()
poke Ptr WriteDescriptorSetInlineUniformBlock
ptr WriteDescriptorSetInlineUniformBlock
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr WriteDescriptorSetInlineUniformBlock
ptr WriteDescriptorSetInlineUniformBlock
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero WriteDescriptorSetInlineUniformBlock where
zero :: WriteDescriptorSetInlineUniformBlock
zero = Word32 -> Ptr () -> WriteDescriptorSetInlineUniformBlock
WriteDescriptorSetInlineUniformBlock
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data DescriptorPoolInlineUniformBlockCreateInfo = DescriptorPoolInlineUniformBlockCreateInfo
{
DescriptorPoolInlineUniformBlockCreateInfo -> Word32
maxInlineUniformBlockBindings :: Word32 }
deriving (Typeable, DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> Bool
$c/= :: DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> Bool
== :: DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> Bool
$c== :: DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DescriptorPoolInlineUniformBlockCreateInfo)
#endif
deriving instance Show DescriptorPoolInlineUniformBlockCreateInfo
instance ToCStruct DescriptorPoolInlineUniformBlockCreateInfo where
withCStruct :: forall b.
DescriptorPoolInlineUniformBlockCreateInfo
-> (Ptr DescriptorPoolInlineUniformBlockCreateInfo -> IO b) -> IO b
withCStruct DescriptorPoolInlineUniformBlockCreateInfo
x Ptr DescriptorPoolInlineUniformBlockCreateInfo -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr DescriptorPoolInlineUniformBlockCreateInfo
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorPoolInlineUniformBlockCreateInfo
p DescriptorPoolInlineUniformBlockCreateInfo
x (Ptr DescriptorPoolInlineUniformBlockCreateInfo -> IO b
f Ptr DescriptorPoolInlineUniformBlockCreateInfo
p)
pokeCStruct :: forall b.
Ptr DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> IO b -> IO b
pokeCStruct Ptr DescriptorPoolInlineUniformBlockCreateInfo
p DescriptorPoolInlineUniformBlockCreateInfo{Word32
maxInlineUniformBlockBindings :: Word32
$sel:maxInlineUniformBlockBindings:DescriptorPoolInlineUniformBlockCreateInfo :: DescriptorPoolInlineUniformBlockCreateInfo -> Word32
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorPoolInlineUniformBlockCreateInfo
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorPoolInlineUniformBlockCreateInfo
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 DescriptorPoolInlineUniformBlockCreateInfo
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
maxInlineUniformBlockBindings)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr DescriptorPoolInlineUniformBlockCreateInfo -> IO b -> IO b
pokeZeroCStruct Ptr DescriptorPoolInlineUniformBlockCreateInfo
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorPoolInlineUniformBlockCreateInfo
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DescriptorPoolInlineUniformBlockCreateInfo
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 DescriptorPoolInlineUniformBlockCreateInfo
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DescriptorPoolInlineUniformBlockCreateInfo where
peekCStruct :: Ptr DescriptorPoolInlineUniformBlockCreateInfo
-> IO DescriptorPoolInlineUniformBlockCreateInfo
peekCStruct Ptr DescriptorPoolInlineUniformBlockCreateInfo
p = do
Word32
maxInlineUniformBlockBindings <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr DescriptorPoolInlineUniformBlockCreateInfo
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Word32 -> DescriptorPoolInlineUniformBlockCreateInfo
DescriptorPoolInlineUniformBlockCreateInfo
Word32
maxInlineUniformBlockBindings
instance Storable DescriptorPoolInlineUniformBlockCreateInfo where
sizeOf :: DescriptorPoolInlineUniformBlockCreateInfo -> Int
sizeOf ~DescriptorPoolInlineUniformBlockCreateInfo
_ = Int
24
alignment :: DescriptorPoolInlineUniformBlockCreateInfo -> Int
alignment ~DescriptorPoolInlineUniformBlockCreateInfo
_ = Int
8
peek :: Ptr DescriptorPoolInlineUniformBlockCreateInfo
-> IO DescriptorPoolInlineUniformBlockCreateInfo
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DescriptorPoolInlineUniformBlockCreateInfo
-> DescriptorPoolInlineUniformBlockCreateInfo -> IO ()
poke Ptr DescriptorPoolInlineUniformBlockCreateInfo
ptr DescriptorPoolInlineUniformBlockCreateInfo
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DescriptorPoolInlineUniformBlockCreateInfo
ptr DescriptorPoolInlineUniformBlockCreateInfo
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DescriptorPoolInlineUniformBlockCreateInfo where
zero :: DescriptorPoolInlineUniformBlockCreateInfo
zero = Word32 -> DescriptorPoolInlineUniformBlockCreateInfo
DescriptorPoolInlineUniformBlockCreateInfo
forall a. Zero a => a
zero