{-# language CPP #-}
module Vulkan.Core14.Promoted_From_VK_EXT_pipeline_robustnessAdditionalFunctionality' ( PhysicalDevicePipelineRobustnessFeatures(..)
, PipelineRobustnessCreateInfo(..)
, PhysicalDevicePipelineRobustnessProperties(..)
, StructureType(..)
, PipelineRobustnessBufferBehavior(..)
, PipelineRobustnessImageBehavior(..)
) 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.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core14.Enums.PipelineRobustnessBufferBehavior (PipelineRobustnessBufferBehavior)
import Vulkan.Core14.Enums.PipelineRobustnessImageBehavior (PipelineRobustnessImageBehavior)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO))
import Vulkan.Core14.Enums.PipelineRobustnessBufferBehavior (PipelineRobustnessBufferBehavior(..))
import Vulkan.Core14.Enums.PipelineRobustnessImageBehavior (PipelineRobustnessImageBehavior(..))
import Vulkan.Core10.Enums.StructureType (StructureType(..))
data PhysicalDevicePipelineRobustnessFeatures = PhysicalDevicePipelineRobustnessFeatures
{
PhysicalDevicePipelineRobustnessFeatures -> Bool
pipelineRobustness :: Bool }
deriving (Typeable, PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool
(PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool)
-> (PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool)
-> Eq PhysicalDevicePipelineRobustnessFeatures
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool
== :: PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool
$c/= :: PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool
/= :: PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDevicePipelineRobustnessFeatures)
#endif
deriving instance Show PhysicalDevicePipelineRobustnessFeatures
instance ToCStruct PhysicalDevicePipelineRobustnessFeatures where
withCStruct :: forall b.
PhysicalDevicePipelineRobustnessFeatures
-> (Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b) -> IO b
withCStruct PhysicalDevicePipelineRobustnessFeatures
x Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b
f = Int
-> (Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b) -> IO b)
-> (Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDevicePipelineRobustnessFeatures
p -> Ptr PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> IO b -> IO b
forall b.
Ptr PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineRobustnessFeatures
p PhysicalDevicePipelineRobustnessFeatures
x (Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b
f Ptr PhysicalDevicePipelineRobustnessFeatures
p)
pokeCStruct :: forall b.
Ptr PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineRobustnessFeatures
p PhysicalDevicePipelineRobustnessFeatures{Bool
pipelineRobustness :: PhysicalDevicePipelineRobustnessFeatures -> Bool
pipelineRobustness :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures -> 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 PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
pipelineRobustness))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDevicePipelineRobustnessFeatures -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDevicePipelineRobustnessFeatures
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures -> 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 PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures -> 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 PhysicalDevicePipelineRobustnessFeatures where
peekCStruct :: Ptr PhysicalDevicePipelineRobustnessFeatures
-> IO PhysicalDevicePipelineRobustnessFeatures
peekCStruct Ptr PhysicalDevicePipelineRobustnessFeatures
p = do
pipelineRobustness <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDevicePipelineRobustnessFeatures
p Ptr PhysicalDevicePipelineRobustnessFeatures -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDevicePipelineRobustnessFeatures
(bool32ToBool pipelineRobustness)
instance Storable PhysicalDevicePipelineRobustnessFeatures where
sizeOf :: PhysicalDevicePipelineRobustnessFeatures -> Int
sizeOf ~PhysicalDevicePipelineRobustnessFeatures
_ = Int
24
alignment :: PhysicalDevicePipelineRobustnessFeatures -> Int
alignment ~PhysicalDevicePipelineRobustnessFeatures
_ = Int
8
peek :: Ptr PhysicalDevicePipelineRobustnessFeatures
-> IO PhysicalDevicePipelineRobustnessFeatures
peek = Ptr PhysicalDevicePipelineRobustnessFeatures
-> IO PhysicalDevicePipelineRobustnessFeatures
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> IO ()
poke Ptr PhysicalDevicePipelineRobustnessFeatures
ptr PhysicalDevicePipelineRobustnessFeatures
poked = Ptr PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> IO () -> IO ()
forall b.
Ptr PhysicalDevicePipelineRobustnessFeatures
-> PhysicalDevicePipelineRobustnessFeatures -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineRobustnessFeatures
ptr PhysicalDevicePipelineRobustnessFeatures
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDevicePipelineRobustnessFeatures where
zero :: PhysicalDevicePipelineRobustnessFeatures
zero = Bool -> PhysicalDevicePipelineRobustnessFeatures
PhysicalDevicePipelineRobustnessFeatures
Bool
forall a. Zero a => a
zero
data PipelineRobustnessCreateInfo = PipelineRobustnessCreateInfo
{
PipelineRobustnessCreateInfo -> PipelineRobustnessBufferBehavior
storageBuffers :: PipelineRobustnessBufferBehavior
,
PipelineRobustnessCreateInfo -> PipelineRobustnessBufferBehavior
uniformBuffers :: PipelineRobustnessBufferBehavior
,
PipelineRobustnessCreateInfo -> PipelineRobustnessBufferBehavior
vertexInputs :: PipelineRobustnessBufferBehavior
,
PipelineRobustnessCreateInfo -> PipelineRobustnessImageBehavior
images :: PipelineRobustnessImageBehavior
}
deriving (Typeable, PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool
(PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool)
-> (PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool)
-> Eq PipelineRobustnessCreateInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool
== :: PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool
$c/= :: PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool
/= :: PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineRobustnessCreateInfo)
#endif
deriving instance Show PipelineRobustnessCreateInfo
instance ToCStruct PipelineRobustnessCreateInfo where
withCStruct :: forall b.
PipelineRobustnessCreateInfo
-> (Ptr PipelineRobustnessCreateInfo -> IO b) -> IO b
withCStruct PipelineRobustnessCreateInfo
x Ptr PipelineRobustnessCreateInfo -> IO b
f = Int -> (Ptr PipelineRobustnessCreateInfo -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PipelineRobustnessCreateInfo -> IO b) -> IO b)
-> (Ptr PipelineRobustnessCreateInfo -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PipelineRobustnessCreateInfo
p -> Ptr PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> IO b -> IO b
forall b.
Ptr PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineRobustnessCreateInfo
p PipelineRobustnessCreateInfo
x (Ptr PipelineRobustnessCreateInfo -> IO b
f Ptr PipelineRobustnessCreateInfo
p)
pokeCStruct :: forall b.
Ptr PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> IO b -> IO b
pokeCStruct Ptr PipelineRobustnessCreateInfo
p PipelineRobustnessCreateInfo{PipelineRobustnessImageBehavior
PipelineRobustnessBufferBehavior
storageBuffers :: PipelineRobustnessCreateInfo -> PipelineRobustnessBufferBehavior
uniformBuffers :: PipelineRobustnessCreateInfo -> PipelineRobustnessBufferBehavior
vertexInputs :: PipelineRobustnessCreateInfo -> PipelineRobustnessBufferBehavior
images :: PipelineRobustnessCreateInfo -> PipelineRobustnessImageBehavior
storageBuffers :: PipelineRobustnessBufferBehavior
uniformBuffers :: PipelineRobustnessBufferBehavior
vertexInputs :: PipelineRobustnessBufferBehavior
images :: PipelineRobustnessImageBehavior
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
storageBuffers)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
uniformBuffers)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
vertexInputs)
Ptr PipelineRobustnessImageBehavior
-> PipelineRobustnessImageBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessImageBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr PipelineRobustnessImageBehavior)) (PipelineRobustnessImageBehavior
images)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr PipelineRobustnessCreateInfo -> IO b -> IO b
pokeZeroCStruct Ptr PipelineRobustnessCreateInfo
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero)
Ptr PipelineRobustnessImageBehavior
-> PipelineRobustnessImageBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessImageBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr PipelineRobustnessImageBehavior)) (PipelineRobustnessImageBehavior
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PipelineRobustnessCreateInfo where
peekCStruct :: Ptr PipelineRobustnessCreateInfo -> IO PipelineRobustnessCreateInfo
peekCStruct Ptr PipelineRobustnessCreateInfo
p = do
storageBuffers <- forall a. Storable a => Ptr a -> IO a
peek @PipelineRobustnessBufferBehavior ((Ptr PipelineRobustnessCreateInfo
p Ptr PipelineRobustnessCreateInfo
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineRobustnessBufferBehavior))
uniformBuffers <- peek @PipelineRobustnessBufferBehavior ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehavior))
vertexInputs <- peek @PipelineRobustnessBufferBehavior ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehavior))
images <- peek @PipelineRobustnessImageBehavior ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehavior))
pure $ PipelineRobustnessCreateInfo
storageBuffers uniformBuffers vertexInputs images
instance Storable PipelineRobustnessCreateInfo where
sizeOf :: PipelineRobustnessCreateInfo -> Int
sizeOf ~PipelineRobustnessCreateInfo
_ = Int
32
alignment :: PipelineRobustnessCreateInfo -> Int
alignment ~PipelineRobustnessCreateInfo
_ = Int
8
peek :: Ptr PipelineRobustnessCreateInfo -> IO PipelineRobustnessCreateInfo
peek = Ptr PipelineRobustnessCreateInfo -> IO PipelineRobustnessCreateInfo
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> IO ()
poke Ptr PipelineRobustnessCreateInfo
ptr PipelineRobustnessCreateInfo
poked = Ptr PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> IO () -> IO ()
forall b.
Ptr PipelineRobustnessCreateInfo
-> PipelineRobustnessCreateInfo -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineRobustnessCreateInfo
ptr PipelineRobustnessCreateInfo
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PipelineRobustnessCreateInfo where
zero :: PipelineRobustnessCreateInfo
zero = PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior
-> PipelineRobustnessImageBehavior
-> PipelineRobustnessCreateInfo
PipelineRobustnessCreateInfo
PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero
PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero
PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero
PipelineRobustnessImageBehavior
forall a. Zero a => a
zero
data PhysicalDevicePipelineRobustnessProperties = PhysicalDevicePipelineRobustnessProperties
{
PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessBufferBehavior
defaultRobustnessStorageBuffers :: PipelineRobustnessBufferBehavior
,
PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessBufferBehavior
defaultRobustnessUniformBuffers :: PipelineRobustnessBufferBehavior
,
PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessBufferBehavior
defaultRobustnessVertexInputs :: PipelineRobustnessBufferBehavior
,
PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessImageBehavior
defaultRobustnessImages :: PipelineRobustnessImageBehavior
}
deriving (Typeable, PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool
(PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool)
-> (PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool)
-> Eq PhysicalDevicePipelineRobustnessProperties
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool
== :: PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool
$c/= :: PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool
/= :: PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDevicePipelineRobustnessProperties)
#endif
deriving instance Show PhysicalDevicePipelineRobustnessProperties
instance ToCStruct PhysicalDevicePipelineRobustnessProperties where
withCStruct :: forall b.
PhysicalDevicePipelineRobustnessProperties
-> (Ptr PhysicalDevicePipelineRobustnessProperties -> IO b) -> IO b
withCStruct PhysicalDevicePipelineRobustnessProperties
x Ptr PhysicalDevicePipelineRobustnessProperties -> IO b
f = Int
-> (Ptr PhysicalDevicePipelineRobustnessProperties -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDevicePipelineRobustnessProperties -> IO b) -> IO b)
-> (Ptr PhysicalDevicePipelineRobustnessProperties -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDevicePipelineRobustnessProperties
p -> Ptr PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> IO b -> IO b
forall b.
Ptr PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineRobustnessProperties
p PhysicalDevicePipelineRobustnessProperties
x (Ptr PhysicalDevicePipelineRobustnessProperties -> IO b
f Ptr PhysicalDevicePipelineRobustnessProperties
p)
pokeCStruct :: forall b.
Ptr PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineRobustnessProperties
p PhysicalDevicePipelineRobustnessProperties{PipelineRobustnessImageBehavior
PipelineRobustnessBufferBehavior
defaultRobustnessStorageBuffers :: PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessBufferBehavior
defaultRobustnessUniformBuffers :: PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessBufferBehavior
defaultRobustnessVertexInputs :: PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessBufferBehavior
defaultRobustnessImages :: PhysicalDevicePipelineRobustnessProperties
-> PipelineRobustnessImageBehavior
defaultRobustnessStorageBuffers :: PipelineRobustnessBufferBehavior
defaultRobustnessUniformBuffers :: PipelineRobustnessBufferBehavior
defaultRobustnessVertexInputs :: PipelineRobustnessBufferBehavior
defaultRobustnessImages :: PipelineRobustnessImageBehavior
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
defaultRobustnessStorageBuffers)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
defaultRobustnessUniformBuffers)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
defaultRobustnessVertexInputs)
Ptr PipelineRobustnessImageBehavior
-> PipelineRobustnessImageBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessImageBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr PipelineRobustnessImageBehavior)) (PipelineRobustnessImageBehavior
defaultRobustnessImages)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDevicePipelineRobustnessProperties -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDevicePipelineRobustnessProperties
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero)
Ptr PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr PipelineRobustnessBufferBehavior)) (PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero)
Ptr PipelineRobustnessImageBehavior
-> PipelineRobustnessImageBehavior -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessImageBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr PipelineRobustnessImageBehavior)) (PipelineRobustnessImageBehavior
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDevicePipelineRobustnessProperties where
peekCStruct :: Ptr PhysicalDevicePipelineRobustnessProperties
-> IO PhysicalDevicePipelineRobustnessProperties
peekCStruct Ptr PhysicalDevicePipelineRobustnessProperties
p = do
defaultRobustnessStorageBuffers <- forall a. Storable a => Ptr a -> IO a
peek @PipelineRobustnessBufferBehavior ((Ptr PhysicalDevicePipelineRobustnessProperties
p Ptr PhysicalDevicePipelineRobustnessProperties
-> Int -> Ptr PipelineRobustnessBufferBehavior
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineRobustnessBufferBehavior))
defaultRobustnessUniformBuffers <- peek @PipelineRobustnessBufferBehavior ((p `plusPtr` 20 :: Ptr PipelineRobustnessBufferBehavior))
defaultRobustnessVertexInputs <- peek @PipelineRobustnessBufferBehavior ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehavior))
defaultRobustnessImages <- peek @PipelineRobustnessImageBehavior ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehavior))
pure $ PhysicalDevicePipelineRobustnessProperties
defaultRobustnessStorageBuffers
defaultRobustnessUniformBuffers
defaultRobustnessVertexInputs
defaultRobustnessImages
instance Storable PhysicalDevicePipelineRobustnessProperties where
sizeOf :: PhysicalDevicePipelineRobustnessProperties -> Int
sizeOf ~PhysicalDevicePipelineRobustnessProperties
_ = Int
32
alignment :: PhysicalDevicePipelineRobustnessProperties -> Int
alignment ~PhysicalDevicePipelineRobustnessProperties
_ = Int
8
peek :: Ptr PhysicalDevicePipelineRobustnessProperties
-> IO PhysicalDevicePipelineRobustnessProperties
peek = Ptr PhysicalDevicePipelineRobustnessProperties
-> IO PhysicalDevicePipelineRobustnessProperties
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> IO ()
poke Ptr PhysicalDevicePipelineRobustnessProperties
ptr PhysicalDevicePipelineRobustnessProperties
poked = Ptr PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> IO () -> IO ()
forall b.
Ptr PhysicalDevicePipelineRobustnessProperties
-> PhysicalDevicePipelineRobustnessProperties -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineRobustnessProperties
ptr PhysicalDevicePipelineRobustnessProperties
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDevicePipelineRobustnessProperties where
zero :: PhysicalDevicePipelineRobustnessProperties
zero = PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior
-> PipelineRobustnessBufferBehavior
-> PipelineRobustnessImageBehavior
-> PhysicalDevicePipelineRobustnessProperties
PhysicalDevicePipelineRobustnessProperties
PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero
PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero
PipelineRobustnessBufferBehavior
forall a. Zero a => a
zero
PipelineRobustnessImageBehavior
forall a. Zero a => a
zero