{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_shader_float_controls2 ( PhysicalDeviceShaderFloatControls2FeaturesKHR(..)
, KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION
, pattern KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION
, KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME
, pattern KHR_SHADER_FLOAT_CONTROLS_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_FLOAT_CONTROLS_2_FEATURES_KHR))
data PhysicalDeviceShaderFloatControls2FeaturesKHR = PhysicalDeviceShaderFloatControls2FeaturesKHR
{
PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
shaderFloatControls2 :: Bool }
deriving (Typeable, PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
(PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool)
-> (PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool)
-> Eq PhysicalDeviceShaderFloatControls2FeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
== :: PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
$c/= :: PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
/= :: PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderFloatControls2FeaturesKHR)
#endif
deriving instance Show PhysicalDeviceShaderFloatControls2FeaturesKHR
instance ToCStruct PhysicalDeviceShaderFloatControls2FeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceShaderFloatControls2FeaturesKHR
-> (Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderFloatControls2FeaturesKHR
x Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p -> Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p PhysicalDeviceShaderFloatControls2FeaturesKHR
x (Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b
f Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p PhysicalDeviceShaderFloatControls2FeaturesKHR{Bool
$sel:shaderFloatControls2:PhysicalDeviceShaderFloatControls2FeaturesKHR :: PhysicalDeviceShaderFloatControls2FeaturesKHR -> Bool
shaderFloatControls2 :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> 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 PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderFloatControls2))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> 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 PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> 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 PhysicalDeviceShaderFloatControls2FeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> IO PhysicalDeviceShaderFloatControls2FeaturesKHR
peekCStruct Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p = do
Bool32
shaderFloatControls2 <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
p Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceShaderFloatControls2FeaturesKHR
-> IO PhysicalDeviceShaderFloatControls2FeaturesKHR
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderFloatControls2FeaturesKHR
-> IO PhysicalDeviceShaderFloatControls2FeaturesKHR)
-> PhysicalDeviceShaderFloatControls2FeaturesKHR
-> IO PhysicalDeviceShaderFloatControls2FeaturesKHR
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceShaderFloatControls2FeaturesKHR
PhysicalDeviceShaderFloatControls2FeaturesKHR
(Bool32 -> Bool
bool32ToBool Bool32
shaderFloatControls2)
instance Storable PhysicalDeviceShaderFloatControls2FeaturesKHR where
sizeOf :: PhysicalDeviceShaderFloatControls2FeaturesKHR -> Int
sizeOf ~PhysicalDeviceShaderFloatControls2FeaturesKHR
_ = Int
24
alignment :: PhysicalDeviceShaderFloatControls2FeaturesKHR -> Int
alignment ~PhysicalDeviceShaderFloatControls2FeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> IO PhysicalDeviceShaderFloatControls2FeaturesKHR
peek = Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> IO PhysicalDeviceShaderFloatControls2FeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO ()
poke Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
poked = Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
-> PhysicalDeviceShaderFloatControls2FeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
ptr PhysicalDeviceShaderFloatControls2FeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderFloatControls2FeaturesKHR where
zero :: PhysicalDeviceShaderFloatControls2FeaturesKHR
zero = Bool -> PhysicalDeviceShaderFloatControls2FeaturesKHR
PhysicalDeviceShaderFloatControls2FeaturesKHR
Bool
forall a. Zero a => a
zero
type KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION = 1
pattern KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION :: forall a. Integral a => a
KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION = 1
type KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME = "VK_KHR_shader_float_controls2"
pattern KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME = "VK_KHR_shader_float_controls2"