{-# language CPP #-}
module Vulkan.Extensions.VK_INTEL_shader_integer_functions2 ( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(..)
, INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION
, pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION
, INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME
, pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_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_INTEGER_FUNCTIONS_2_FEATURES_INTEL))
data PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
{
PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
shaderIntegerFunctions2 :: Bool }
deriving (Typeable, PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
$c/= :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
== :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
$c== :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)
#endif
deriving instance Show PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
instance ToCStruct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL where
withCStruct :: forall b.
PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> (Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
x Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
x (Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> IO b
f Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{Bool
shaderIntegerFunctions2 :: Bool
$sel:shaderIntegerFunctions2:PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
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 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderIntegerFunctions2))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
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 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
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 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL where
peekCStruct :: Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> IO PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
peekCStruct Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
p = do
Bool32
shaderIntegerFunctions2 <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
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 -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
(Bool32 -> Bool
bool32ToBool Bool32
shaderIntegerFunctions2)
instance Storable PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL where
sizeOf :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Int
sizeOf ~PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
_ = Int
24
alignment :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> Int
alignment ~PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
_ = Int
8
peek :: Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> IO PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
-> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL -> IO ()
poke Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
ptr PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL where
zero :: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
zero = Bool -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
forall a. Zero a => a
zero
type INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION = 1
pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION :: forall a . Integral a => a
pattern $bINTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION :: forall a. Integral a => a
$mINTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION = 1
type INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME = "VK_INTEL_shader_integer_functions2"
pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bINTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mINTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME = "VK_INTEL_shader_integer_functions2"