{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_provoking_vertex ( PhysicalDeviceProvokingVertexFeaturesEXT(..)
, PhysicalDeviceProvokingVertexPropertiesEXT(..)
, PipelineRasterizationProvokingVertexStateCreateInfoEXT(..)
, ProvokingVertexModeEXT( PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT
, PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
, ..
)
, EXT_PROVOKING_VERTEX_SPEC_VERSION
, pattern EXT_PROVOKING_VERTEX_SPEC_VERSION
, EXT_PROVOKING_VERTEX_EXTENSION_NAME
, pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME
) where
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showsPrec)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
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 Data.Int (Int32)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
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_PROVOKING_VERTEX_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT))
data PhysicalDeviceProvokingVertexFeaturesEXT = PhysicalDeviceProvokingVertexFeaturesEXT
{
PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
provokingVertexLast :: Bool
,
PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
transformFeedbackPreservesProvokingVertex :: Bool
}
deriving (Typeable, PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
$c/= :: PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
== :: PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
$c== :: PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceProvokingVertexFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceProvokingVertexFeaturesEXT
instance ToCStruct PhysicalDeviceProvokingVertexFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceProvokingVertexFeaturesEXT
-> (Ptr PhysicalDeviceProvokingVertexFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceProvokingVertexFeaturesEXT
x Ptr PhysicalDeviceProvokingVertexFeaturesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p PhysicalDeviceProvokingVertexFeaturesEXT
x (Ptr PhysicalDeviceProvokingVertexFeaturesEXT -> IO b
f Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p PhysicalDeviceProvokingVertexFeaturesEXT{Bool
transformFeedbackPreservesProvokingVertex :: Bool
provokingVertexLast :: Bool
$sel:transformFeedbackPreservesProvokingVertex:PhysicalDeviceProvokingVertexFeaturesEXT :: PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
$sel:provokingVertexLast:PhysicalDeviceProvokingVertexFeaturesEXT :: PhysicalDeviceProvokingVertexFeaturesEXT -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
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 PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
provokingVertexLast))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
transformFeedbackPreservesProvokingVertex))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceProvokingVertexFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
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 PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceProvokingVertexFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceProvokingVertexFeaturesEXT
-> IO PhysicalDeviceProvokingVertexFeaturesEXT
peekCStruct Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p = do
Bool32
provokingVertexLast <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
transformFeedbackPreservesProvokingVertex <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceProvokingVertexFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> PhysicalDeviceProvokingVertexFeaturesEXT
PhysicalDeviceProvokingVertexFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
provokingVertexLast)
(Bool32 -> Bool
bool32ToBool Bool32
transformFeedbackPreservesProvokingVertex)
instance Storable PhysicalDeviceProvokingVertexFeaturesEXT where
sizeOf :: PhysicalDeviceProvokingVertexFeaturesEXT -> Int
sizeOf ~PhysicalDeviceProvokingVertexFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceProvokingVertexFeaturesEXT -> Int
alignment ~PhysicalDeviceProvokingVertexFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceProvokingVertexFeaturesEXT
-> IO PhysicalDeviceProvokingVertexFeaturesEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceProvokingVertexFeaturesEXT
-> PhysicalDeviceProvokingVertexFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceProvokingVertexFeaturesEXT
ptr PhysicalDeviceProvokingVertexFeaturesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceProvokingVertexFeaturesEXT
ptr PhysicalDeviceProvokingVertexFeaturesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceProvokingVertexFeaturesEXT where
zero :: PhysicalDeviceProvokingVertexFeaturesEXT
zero = Bool -> Bool -> PhysicalDeviceProvokingVertexFeaturesEXT
PhysicalDeviceProvokingVertexFeaturesEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data PhysicalDeviceProvokingVertexPropertiesEXT = PhysicalDeviceProvokingVertexPropertiesEXT
{
PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
provokingVertexModePerPipeline :: Bool
,
PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
transformFeedbackPreservesTriangleFanProvokingVertex :: Bool
}
deriving (Typeable, PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
$c/= :: PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
== :: PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
$c== :: PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceProvokingVertexPropertiesEXT)
#endif
deriving instance Show PhysicalDeviceProvokingVertexPropertiesEXT
instance ToCStruct PhysicalDeviceProvokingVertexPropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceProvokingVertexPropertiesEXT
-> (Ptr PhysicalDeviceProvokingVertexPropertiesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceProvokingVertexPropertiesEXT
x Ptr PhysicalDeviceProvokingVertexPropertiesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p PhysicalDeviceProvokingVertexPropertiesEXT
x (Ptr PhysicalDeviceProvokingVertexPropertiesEXT -> IO b
f Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p PhysicalDeviceProvokingVertexPropertiesEXT{Bool
transformFeedbackPreservesTriangleFanProvokingVertex :: Bool
provokingVertexModePerPipeline :: Bool
$sel:transformFeedbackPreservesTriangleFanProvokingVertex:PhysicalDeviceProvokingVertexPropertiesEXT :: PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
$sel:provokingVertexModePerPipeline:PhysicalDeviceProvokingVertexPropertiesEXT :: PhysicalDeviceProvokingVertexPropertiesEXT -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
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 PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
provokingVertexModePerPipeline))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
transformFeedbackPreservesTriangleFanProvokingVertex))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceProvokingVertexPropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
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 PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceProvokingVertexPropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceProvokingVertexPropertiesEXT
-> IO PhysicalDeviceProvokingVertexPropertiesEXT
peekCStruct Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p = do
Bool32
provokingVertexModePerPipeline <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
transformFeedbackPreservesTriangleFanProvokingVertex <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceProvokingVertexPropertiesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> PhysicalDeviceProvokingVertexPropertiesEXT
PhysicalDeviceProvokingVertexPropertiesEXT
(Bool32 -> Bool
bool32ToBool Bool32
provokingVertexModePerPipeline)
(Bool32 -> Bool
bool32ToBool Bool32
transformFeedbackPreservesTriangleFanProvokingVertex)
instance Storable PhysicalDeviceProvokingVertexPropertiesEXT where
sizeOf :: PhysicalDeviceProvokingVertexPropertiesEXT -> Int
sizeOf ~PhysicalDeviceProvokingVertexPropertiesEXT
_ = Int
24
alignment :: PhysicalDeviceProvokingVertexPropertiesEXT -> Int
alignment ~PhysicalDeviceProvokingVertexPropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceProvokingVertexPropertiesEXT
-> IO PhysicalDeviceProvokingVertexPropertiesEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceProvokingVertexPropertiesEXT
-> PhysicalDeviceProvokingVertexPropertiesEXT -> IO ()
poke Ptr PhysicalDeviceProvokingVertexPropertiesEXT
ptr PhysicalDeviceProvokingVertexPropertiesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceProvokingVertexPropertiesEXT
ptr PhysicalDeviceProvokingVertexPropertiesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceProvokingVertexPropertiesEXT where
zero :: PhysicalDeviceProvokingVertexPropertiesEXT
zero = Bool -> Bool -> PhysicalDeviceProvokingVertexPropertiesEXT
PhysicalDeviceProvokingVertexPropertiesEXT
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data PipelineRasterizationProvokingVertexStateCreateInfoEXT = PipelineRasterizationProvokingVertexStateCreateInfoEXT
{
PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> ProvokingVertexModeEXT
provokingVertexMode :: ProvokingVertexModeEXT }
deriving (Typeable, PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Bool
$c/= :: PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Bool
== :: PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Bool
$c== :: PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineRasterizationProvokingVertexStateCreateInfoEXT)
#endif
deriving instance Show PipelineRasterizationProvokingVertexStateCreateInfoEXT
instance ToCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT where
withCStruct :: forall b.
PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> (Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> IO b)
-> IO b
withCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT
x Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p PipelineRasterizationProvokingVertexStateCreateInfoEXT
x (Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT -> IO b
f Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> IO b
-> IO b
pokeCStruct Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p PipelineRasterizationProvokingVertexStateCreateInfoEXT{ProvokingVertexModeEXT
provokingVertexMode :: ProvokingVertexModeEXT
$sel:provokingVertexMode:PipelineRasterizationProvokingVertexStateCreateInfoEXT :: PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> ProvokingVertexModeEXT
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
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 PipelineRasterizationProvokingVertexStateCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ProvokingVertexModeEXT)) (ProvokingVertexModeEXT
provokingVertexMode)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> IO b -> IO b
pokeZeroCStruct Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
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 PipelineRasterizationProvokingVertexStateCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ProvokingVertexModeEXT)) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT where
peekCStruct :: Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> IO PipelineRasterizationProvokingVertexStateCreateInfoEXT
peekCStruct Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p = do
ProvokingVertexModeEXT
provokingVertexMode <- forall a. Storable a => Ptr a -> IO a
peek @ProvokingVertexModeEXT ((Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ProvokingVertexModeEXT))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ ProvokingVertexModeEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT
PipelineRasterizationProvokingVertexStateCreateInfoEXT
ProvokingVertexModeEXT
provokingVertexMode
instance Storable PipelineRasterizationProvokingVertexStateCreateInfoEXT where
sizeOf :: PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Int
sizeOf ~PipelineRasterizationProvokingVertexStateCreateInfoEXT
_ = Int
24
alignment :: PipelineRasterizationProvokingVertexStateCreateInfoEXT -> Int
alignment ~PipelineRasterizationProvokingVertexStateCreateInfoEXT
_ = Int
8
peek :: Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> IO PipelineRasterizationProvokingVertexStateCreateInfoEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT -> IO ()
poke Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
ptr PipelineRasterizationProvokingVertexStateCreateInfoEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PipelineRasterizationProvokingVertexStateCreateInfoEXT where
zero :: PipelineRasterizationProvokingVertexStateCreateInfoEXT
zero = ProvokingVertexModeEXT
-> PipelineRasterizationProvokingVertexStateCreateInfoEXT
PipelineRasterizationProvokingVertexStateCreateInfoEXT
forall a. Zero a => a
zero
newtype ProvokingVertexModeEXT = ProvokingVertexModeEXT Int32
deriving newtype (ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
$c/= :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
== :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
$c== :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
Eq, Eq ProvokingVertexModeEXT
ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Ordering
ProvokingVertexModeEXT
-> ProvokingVertexModeEXT -> ProvokingVertexModeEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ProvokingVertexModeEXT
-> ProvokingVertexModeEXT -> ProvokingVertexModeEXT
$cmin :: ProvokingVertexModeEXT
-> ProvokingVertexModeEXT -> ProvokingVertexModeEXT
max :: ProvokingVertexModeEXT
-> ProvokingVertexModeEXT -> ProvokingVertexModeEXT
$cmax :: ProvokingVertexModeEXT
-> ProvokingVertexModeEXT -> ProvokingVertexModeEXT
>= :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
$c>= :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
> :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
$c> :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
<= :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
$c<= :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
< :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
$c< :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Bool
compare :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Ordering
$ccompare :: ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> Ordering
Ord, Ptr ProvokingVertexModeEXT -> IO ProvokingVertexModeEXT
Ptr ProvokingVertexModeEXT -> Int -> IO ProvokingVertexModeEXT
Ptr ProvokingVertexModeEXT
-> Int -> ProvokingVertexModeEXT -> IO ()
Ptr ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> IO ()
ProvokingVertexModeEXT -> Int
forall b. Ptr b -> Int -> IO ProvokingVertexModeEXT
forall b. Ptr b -> Int -> ProvokingVertexModeEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> IO ()
$cpoke :: Ptr ProvokingVertexModeEXT -> ProvokingVertexModeEXT -> IO ()
peek :: Ptr ProvokingVertexModeEXT -> IO ProvokingVertexModeEXT
$cpeek :: Ptr ProvokingVertexModeEXT -> IO ProvokingVertexModeEXT
pokeByteOff :: forall b. Ptr b -> Int -> ProvokingVertexModeEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ProvokingVertexModeEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO ProvokingVertexModeEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ProvokingVertexModeEXT
pokeElemOff :: Ptr ProvokingVertexModeEXT
-> Int -> ProvokingVertexModeEXT -> IO ()
$cpokeElemOff :: Ptr ProvokingVertexModeEXT
-> Int -> ProvokingVertexModeEXT -> IO ()
peekElemOff :: Ptr ProvokingVertexModeEXT -> Int -> IO ProvokingVertexModeEXT
$cpeekElemOff :: Ptr ProvokingVertexModeEXT -> Int -> IO ProvokingVertexModeEXT
alignment :: ProvokingVertexModeEXT -> Int
$calignment :: ProvokingVertexModeEXT -> Int
sizeOf :: ProvokingVertexModeEXT -> Int
$csizeOf :: ProvokingVertexModeEXT -> Int
Storable, ProvokingVertexModeEXT
forall a. a -> Zero a
zero :: ProvokingVertexModeEXT
$czero :: ProvokingVertexModeEXT
Zero)
pattern $bPROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT :: ProvokingVertexModeEXT
$mPROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT :: forall {r}.
ProvokingVertexModeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = ProvokingVertexModeEXT 0
pattern $bPROVOKING_VERTEX_MODE_LAST_VERTEX_EXT :: ProvokingVertexModeEXT
$mPROVOKING_VERTEX_MODE_LAST_VERTEX_EXT :: forall {r}.
ProvokingVertexModeEXT -> ((# #) -> r) -> ((# #) -> r) -> r
PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = ProvokingVertexModeEXT 1
{-# COMPLETE
PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT
, PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT ::
ProvokingVertexModeEXT
#-}
conNameProvokingVertexModeEXT :: String
conNameProvokingVertexModeEXT :: String
conNameProvokingVertexModeEXT = String
"ProvokingVertexModeEXT"
enumPrefixProvokingVertexModeEXT :: String
enumPrefixProvokingVertexModeEXT :: String
enumPrefixProvokingVertexModeEXT = String
"PROVOKING_VERTEX_MODE_"
showTableProvokingVertexModeEXT :: [(ProvokingVertexModeEXT, String)]
showTableProvokingVertexModeEXT :: [(ProvokingVertexModeEXT, String)]
showTableProvokingVertexModeEXT =
[
( ProvokingVertexModeEXT
PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT
, String
"FIRST_VERTEX_EXT"
)
,
( ProvokingVertexModeEXT
PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
, String
"LAST_VERTEX_EXT"
)
]
instance Show ProvokingVertexModeEXT where
showsPrec :: Int -> ProvokingVertexModeEXT -> ShowS
showsPrec =
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixProvokingVertexModeEXT
[(ProvokingVertexModeEXT, String)]
showTableProvokingVertexModeEXT
String
conNameProvokingVertexModeEXT
(\(ProvokingVertexModeEXT Int32
x) -> Int32
x)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read ProvokingVertexModeEXT where
readPrec :: ReadPrec ProvokingVertexModeEXT
readPrec =
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixProvokingVertexModeEXT
[(ProvokingVertexModeEXT, String)]
showTableProvokingVertexModeEXT
String
conNameProvokingVertexModeEXT
Int32 -> ProvokingVertexModeEXT
ProvokingVertexModeEXT
type EXT_PROVOKING_VERTEX_SPEC_VERSION = 1
pattern EXT_PROVOKING_VERTEX_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_PROVOKING_VERTEX_SPEC_VERSION :: forall a. Integral a => a
$mEXT_PROVOKING_VERTEX_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_PROVOKING_VERTEX_SPEC_VERSION = 1
type EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"
pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_PROVOKING_VERTEX_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_PROVOKING_VERTEX_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"