{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_shader_expect_assume ( PhysicalDeviceShaderExpectAssumeFeaturesKHR(..)
, KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION
, pattern KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION
, KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME
, pattern KHR_SHADER_EXPECT_ASSUME_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_SHADER_EXPECT_ASSUME_FEATURES_KHR))
data PhysicalDeviceShaderExpectAssumeFeaturesKHR = PhysicalDeviceShaderExpectAssumeFeaturesKHR
{
PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
shaderExpectAssume :: Bool }
deriving (Typeable, PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
(PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool)
-> (PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool)
-> Eq PhysicalDeviceShaderExpectAssumeFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
== :: PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
$c/= :: PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
/= :: PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderExpectAssumeFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceShaderExpectAssumeFeaturesKHR
instance ToCStruct PhysicalDeviceShaderExpectAssumeFeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> (Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderExpectAssumeFeaturesKHR
x Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p -> Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p PhysicalDeviceShaderExpectAssumeFeaturesKHR
x (Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b
f Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p PhysicalDeviceShaderExpectAssumeFeaturesKHR{Bool
$sel:shaderExpectAssume:PhysicalDeviceShaderExpectAssumeFeaturesKHR :: PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Bool
shaderExpectAssume :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> 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 PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderExpectAssume))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> 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 PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> 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 PhysicalDeviceShaderExpectAssumeFeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> IO PhysicalDeviceShaderExpectAssumeFeaturesKHR
peekCStruct Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p = do
Bool32
shaderExpectAssume <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
p Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> IO PhysicalDeviceShaderExpectAssumeFeaturesKHR
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> IO PhysicalDeviceShaderExpectAssumeFeaturesKHR)
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> IO PhysicalDeviceShaderExpectAssumeFeaturesKHR
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceShaderExpectAssumeFeaturesKHR
PhysicalDeviceShaderExpectAssumeFeaturesKHR
(Bool32 -> Bool
bool32ToBool Bool32
shaderExpectAssume)
instance Storable PhysicalDeviceShaderExpectAssumeFeaturesKHR where
sizeOf :: PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Int
sizeOf ~PhysicalDeviceShaderExpectAssumeFeaturesKHR
_ = Int
24
alignment :: PhysicalDeviceShaderExpectAssumeFeaturesKHR -> Int
alignment ~PhysicalDeviceShaderExpectAssumeFeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> IO PhysicalDeviceShaderExpectAssumeFeaturesKHR
peek = Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> IO PhysicalDeviceShaderExpectAssumeFeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO ()
poke Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
poked = Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
-> PhysicalDeviceShaderExpectAssumeFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
ptr PhysicalDeviceShaderExpectAssumeFeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderExpectAssumeFeaturesKHR where
zero :: PhysicalDeviceShaderExpectAssumeFeaturesKHR
zero = Bool -> PhysicalDeviceShaderExpectAssumeFeaturesKHR
PhysicalDeviceShaderExpectAssumeFeaturesKHR
Bool
forall a. Zero a => a
zero
type KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION = 1
pattern KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_SHADER_EXPECT_ASSUME_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_EXPECT_ASSUME_SPEC_VERSION :: forall a. Integral a => a
KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION = 1
type KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME = "VK_KHR_shader_expect_assume"
pattern KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME = "VK_KHR_shader_expect_assume"