{-# language CPP #-}
module Vulkan.Extensions.VK_NV_representative_fragment_test ( PhysicalDeviceRepresentativeFragmentTestFeaturesNV(..)
, PipelineRepresentativeFragmentTestStateCreateInfoNV(..)
, NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION
, pattern NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION
, NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME
, pattern NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME
) where
import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
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 Foreign.Ptr (Ptr)
import Data.Kind (Type)
import Vulkan.Core10.BaseType (bool32ToBool)
import Vulkan.Core10.BaseType (boolToBool32)
import Vulkan.Core10.BaseType (Bool32)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV))
data PhysicalDeviceRepresentativeFragmentTestFeaturesNV = PhysicalDeviceRepresentativeFragmentTestFeaturesNV
{
PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> Bool
representativeFragmentTest :: Bool }
deriving (Typeable)
deriving instance Show PhysicalDeviceRepresentativeFragmentTestFeaturesNV
instance ToCStruct PhysicalDeviceRepresentativeFragmentTestFeaturesNV where
withCStruct :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> (Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO b)
-> IO b
withCStruct x :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV
x f :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p -> Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p PhysicalDeviceRepresentativeFragmentTestFeaturesNV
x (Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO b
f Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p)
pokeCStruct :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO b
-> IO b
pokeCStruct p :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p PhysicalDeviceRepresentativeFragmentTestFeaturesNV{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
representativeFragmentTest))
IO b
f
cStructSize :: Int
cStructSize = 24
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceRepresentativeFragmentTestFeaturesNV where
peekCStruct :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO PhysicalDeviceRepresentativeFragmentTestFeaturesNV
peekCStruct p :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p = do
Bool32
representativeFragmentTest <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
p Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO PhysicalDeviceRepresentativeFragmentTestFeaturesNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
-> PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO PhysicalDeviceRepresentativeFragmentTestFeaturesNV
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceRepresentativeFragmentTestFeaturesNV
PhysicalDeviceRepresentativeFragmentTestFeaturesNV
(Bool32 -> Bool
bool32ToBool Bool32
representativeFragmentTest)
instance Storable PhysicalDeviceRepresentativeFragmentTestFeaturesNV where
sizeOf :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> Int
sizeOf ~PhysicalDeviceRepresentativeFragmentTestFeaturesNV
_ = 24
alignment :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> Int
alignment ~PhysicalDeviceRepresentativeFragmentTestFeaturesNV
_ = 8
peek :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO PhysicalDeviceRepresentativeFragmentTestFeaturesNV
peek = Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO PhysicalDeviceRepresentativeFragmentTestFeaturesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> PhysicalDeviceRepresentativeFragmentTestFeaturesNV -> IO ()
poke ptr :: Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
ptr poked :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV
poked = Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> PhysicalDeviceRepresentativeFragmentTestFeaturesNV
-> IO ()
-> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
ptr PhysicalDeviceRepresentativeFragmentTestFeaturesNV
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceRepresentativeFragmentTestFeaturesNV where
zero :: PhysicalDeviceRepresentativeFragmentTestFeaturesNV
zero = Bool -> PhysicalDeviceRepresentativeFragmentTestFeaturesNV
PhysicalDeviceRepresentativeFragmentTestFeaturesNV
Bool
forall a. Zero a => a
zero
data PipelineRepresentativeFragmentTestStateCreateInfoNV = PipelineRepresentativeFragmentTestStateCreateInfoNV
{
PipelineRepresentativeFragmentTestStateCreateInfoNV -> Bool
representativeFragmentTestEnable :: Bool }
deriving (Typeable)
deriving instance Show PipelineRepresentativeFragmentTestStateCreateInfoNV
instance ToCStruct PipelineRepresentativeFragmentTestStateCreateInfoNV where
withCStruct :: PipelineRepresentativeFragmentTestStateCreateInfoNV
-> (Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO b)
-> IO b
withCStruct x :: PipelineRepresentativeFragmentTestStateCreateInfoNV
x f :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV -> IO b
f = Int
-> Int
-> (Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV -> IO b)
-> IO b)
-> (Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p -> Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p PipelineRepresentativeFragmentTestStateCreateInfoNV
x (Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV -> IO b
f Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p)
pokeCStruct :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO b
-> IO b
pokeCStruct p :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p PipelineRepresentativeFragmentTestStateCreateInfoNV{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
representativeFragmentTestEnable))
IO b
f
cStructSize :: Int
cStructSize = 24
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO b -> IO b
pokeZeroCStruct p :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PipelineRepresentativeFragmentTestStateCreateInfoNV where
peekCStruct :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO PipelineRepresentativeFragmentTestStateCreateInfoNV
peekCStruct p :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p = do
Bool32
representativeFragmentTestEnable <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
p Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO PipelineRepresentativeFragmentTestStateCreateInfoNV
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO PipelineRepresentativeFragmentTestStateCreateInfoNV)
-> PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO PipelineRepresentativeFragmentTestStateCreateInfoNV
forall a b. (a -> b) -> a -> b
$ Bool -> PipelineRepresentativeFragmentTestStateCreateInfoNV
PipelineRepresentativeFragmentTestStateCreateInfoNV
(Bool32 -> Bool
bool32ToBool Bool32
representativeFragmentTestEnable)
instance Storable PipelineRepresentativeFragmentTestStateCreateInfoNV where
sizeOf :: PipelineRepresentativeFragmentTestStateCreateInfoNV -> Int
sizeOf ~PipelineRepresentativeFragmentTestStateCreateInfoNV
_ = 24
alignment :: PipelineRepresentativeFragmentTestStateCreateInfoNV -> Int
alignment ~PipelineRepresentativeFragmentTestStateCreateInfoNV
_ = 8
peek :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO PipelineRepresentativeFragmentTestStateCreateInfoNV
peek = Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO PipelineRepresentativeFragmentTestStateCreateInfoNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> PipelineRepresentativeFragmentTestStateCreateInfoNV -> IO ()
poke ptr :: Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
ptr poked :: PipelineRepresentativeFragmentTestStateCreateInfoNV
poked = Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
-> PipelineRepresentativeFragmentTestStateCreateInfoNV
-> IO ()
-> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
ptr PipelineRepresentativeFragmentTestStateCreateInfoNV
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PipelineRepresentativeFragmentTestStateCreateInfoNV where
zero :: PipelineRepresentativeFragmentTestStateCreateInfoNV
zero = Bool -> PipelineRepresentativeFragmentTestStateCreateInfoNV
PipelineRepresentativeFragmentTestStateCreateInfoNV
Bool
forall a. Zero a => a
zero
type NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION = 2
pattern NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION :: forall a . Integral a => a
pattern $bNV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION :: a
$mNV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION = 2
type NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME = "VK_NV_representative_fragment_test"
pattern NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bNV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME :: a
$mNV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME = "VK_NV_representative_fragment_test"