{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_pipeline_library_group_handles ( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(..)
, EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION
, pattern EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION
, EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME
, pattern EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME
) 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.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 Foreign.Ptr (Ptr)
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_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT))
data PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
{
PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
pipelineLibraryGroupHandles :: Bool }
deriving (Typeable, PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
$c/= :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
== :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
$c== :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT)
#endif
deriving instance Show PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
instance ToCStruct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT where
withCStruct :: forall b.
PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> (Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> IO b)
-> IO b
withCStruct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
x Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
x (Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> IO b
f Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT{Bool
pipelineLibraryGroupHandles :: Bool
$sel:pipelineLibraryGroupHandles:PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
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 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
pipelineLibraryGroupHandles))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
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 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
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 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT where
peekCStruct :: Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> IO PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
peekCStruct Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
p = do
Bool32
pipelineLibraryGroupHandles <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
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 -> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
pipelineLibraryGroupHandles)
instance Storable PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT where
sizeOf :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Int
sizeOf ~PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
_ = Int
24
alignment :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> Int
alignment ~PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> IO PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
-> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT -> IO ()
poke Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
ptr PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT where
zero :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
zero = Bool -> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
forall a. Zero a => a
zero
type EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1
pattern EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION :: forall a. Integral a => a
$mEXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1
type EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles"
pattern EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles"