{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_shader_quad_control ( PhysicalDeviceShaderQuadControlFeaturesKHR(..)
, KHR_SHADER_QUAD_CONTROL_SPEC_VERSION
, pattern KHR_SHADER_QUAD_CONTROL_SPEC_VERSION
, KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME
, pattern KHR_SHADER_QUAD_CONTROL_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_QUAD_CONTROL_FEATURES_KHR))
data PhysicalDeviceShaderQuadControlFeaturesKHR = PhysicalDeviceShaderQuadControlFeaturesKHR
{
PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
shaderQuadControl :: Bool }
deriving (Typeable, PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
(PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool)
-> (PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool)
-> Eq PhysicalDeviceShaderQuadControlFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
== :: PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
$c/= :: PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
/= :: PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderQuadControlFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceShaderQuadControlFeaturesKHR
instance ToCStruct PhysicalDeviceShaderQuadControlFeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceShaderQuadControlFeaturesKHR
-> (Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b) -> IO b
withCStruct PhysicalDeviceShaderQuadControlFeaturesKHR
x Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p -> Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p PhysicalDeviceShaderQuadControlFeaturesKHR
x (Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b
f Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p PhysicalDeviceShaderQuadControlFeaturesKHR{Bool
shaderQuadControl :: PhysicalDeviceShaderQuadControlFeaturesKHR -> Bool
shaderQuadControl :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> 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 PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderQuadControl))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> 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 PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> 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 PhysicalDeviceShaderQuadControlFeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> IO PhysicalDeviceShaderQuadControlFeaturesKHR
peekCStruct Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p = do
shaderQuadControl <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
p Ptr PhysicalDeviceShaderQuadControlFeaturesKHR -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDeviceShaderQuadControlFeaturesKHR
(bool32ToBool shaderQuadControl)
instance Storable PhysicalDeviceShaderQuadControlFeaturesKHR where
sizeOf :: PhysicalDeviceShaderQuadControlFeaturesKHR -> Int
sizeOf ~PhysicalDeviceShaderQuadControlFeaturesKHR
_ = Int
24
alignment :: PhysicalDeviceShaderQuadControlFeaturesKHR -> Int
alignment ~PhysicalDeviceShaderQuadControlFeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> IO PhysicalDeviceShaderQuadControlFeaturesKHR
peek = Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> IO PhysicalDeviceShaderQuadControlFeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> IO ()
poke Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
ptr PhysicalDeviceShaderQuadControlFeaturesKHR
poked = Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
-> PhysicalDeviceShaderQuadControlFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderQuadControlFeaturesKHR
ptr PhysicalDeviceShaderQuadControlFeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderQuadControlFeaturesKHR where
zero :: PhysicalDeviceShaderQuadControlFeaturesKHR
zero = Bool -> PhysicalDeviceShaderQuadControlFeaturesKHR
PhysicalDeviceShaderQuadControlFeaturesKHR
Bool
forall a. Zero a => a
zero
type KHR_SHADER_QUAD_CONTROL_SPEC_VERSION = 1
pattern KHR_SHADER_QUAD_CONTROL_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_SHADER_QUAD_CONTROL_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_QUAD_CONTROL_SPEC_VERSION :: forall a. Integral a => a
KHR_SHADER_QUAD_CONTROL_SPEC_VERSION = 1
type KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME = "VK_KHR_shader_quad_control"
pattern KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_SHADER_QUAD_CONTROL_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_QUAD_CONTROL_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME = "VK_KHR_shader_quad_control"