{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_depth_clamp_zero_one ( PhysicalDeviceDepthClampZeroOneFeaturesKHR(..)
, KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION
, pattern KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION
, KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME
, pattern KHR_DEPTH_CLAMP_ZERO_ONE_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_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR))
data PhysicalDeviceDepthClampZeroOneFeaturesKHR = PhysicalDeviceDepthClampZeroOneFeaturesKHR
{
PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
depthClampZeroOne :: Bool }
deriving (Typeable, PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
(PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool)
-> (PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool)
-> Eq PhysicalDeviceDepthClampZeroOneFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
== :: PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
$c/= :: PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
/= :: PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceDepthClampZeroOneFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceDepthClampZeroOneFeaturesKHR
instance ToCStruct PhysicalDeviceDepthClampZeroOneFeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> (Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b) -> IO b
withCStruct PhysicalDeviceDepthClampZeroOneFeaturesKHR
x Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b) -> IO b)
-> (Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p -> Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b -> IO b
forall b.
Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p PhysicalDeviceDepthClampZeroOneFeaturesKHR
x (Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b
f Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p PhysicalDeviceDepthClampZeroOneFeaturesKHR{Bool
depthClampZeroOne :: PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Bool
depthClampZeroOne :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> 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 PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
depthClampZeroOne))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> 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 PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> 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 PhysicalDeviceDepthClampZeroOneFeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> IO PhysicalDeviceDepthClampZeroOneFeaturesKHR
peekCStruct Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p = do
depthClampZeroOne <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
p Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDeviceDepthClampZeroOneFeaturesKHR
(bool32ToBool depthClampZeroOne)
instance Storable PhysicalDeviceDepthClampZeroOneFeaturesKHR where
sizeOf :: PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Int
sizeOf ~PhysicalDeviceDepthClampZeroOneFeaturesKHR
_ = Int
24
alignment :: PhysicalDeviceDepthClampZeroOneFeaturesKHR -> Int
alignment ~PhysicalDeviceDepthClampZeroOneFeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> IO PhysicalDeviceDepthClampZeroOneFeaturesKHR
peek = Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> IO PhysicalDeviceDepthClampZeroOneFeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO ()
poke Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
poked = Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
-> PhysicalDeviceDepthClampZeroOneFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
ptr PhysicalDeviceDepthClampZeroOneFeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceDepthClampZeroOneFeaturesKHR where
zero :: PhysicalDeviceDepthClampZeroOneFeaturesKHR
zero = Bool -> PhysicalDeviceDepthClampZeroOneFeaturesKHR
PhysicalDeviceDepthClampZeroOneFeaturesKHR
Bool
forall a. Zero a => a
zero
type KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1
pattern KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION :: forall a. Integral a => a
KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1
type KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_KHR_depth_clamp_zero_one"
pattern KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_KHR_depth_clamp_zero_one"