{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_subpass_merge_feedback ( RenderPassCreationControlEXT(..)
, RenderPassCreationFeedbackInfoEXT(..)
, RenderPassCreationFeedbackCreateInfoEXT(..)
, RenderPassSubpassFeedbackInfoEXT(..)
, RenderPassSubpassFeedbackCreateInfoEXT(..)
, PhysicalDeviceSubpassMergeFeedbackFeaturesEXT(..)
, SubpassMergeStatusEXT( SUBPASS_MERGE_STATUS_MERGED_EXT
, SUBPASS_MERGE_STATUS_DISALLOWED_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT
, ..
)
, EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION
, pattern EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION
, EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME
, pattern EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME
) where
import Vulkan.CStruct.Utils (FixedArray)
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 Data.ByteString (packCString)
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.C.Types (CChar)
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.Word (Word32)
import Data.ByteString (ByteString)
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Utils (lowerArrayPtr)
import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT))
data RenderPassCreationControlEXT = RenderPassCreationControlEXT
{
RenderPassCreationControlEXT -> Bool
disallowMerging :: Bool }
deriving (Typeable, RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool
(RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool)
-> (RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool)
-> Eq RenderPassCreationControlEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool
$c/= :: RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool
== :: RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool
$c== :: RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassCreationControlEXT)
#endif
deriving instance Show RenderPassCreationControlEXT
instance ToCStruct RenderPassCreationControlEXT where
withCStruct :: forall b.
RenderPassCreationControlEXT
-> (Ptr RenderPassCreationControlEXT -> IO b) -> IO b
withCStruct RenderPassCreationControlEXT
x Ptr RenderPassCreationControlEXT -> IO b
f = Int -> (Ptr RenderPassCreationControlEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr RenderPassCreationControlEXT -> IO b) -> IO b)
-> (Ptr RenderPassCreationControlEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassCreationControlEXT
p -> Ptr RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationControlEXT
p RenderPassCreationControlEXT
x (Ptr RenderPassCreationControlEXT -> IO b
f Ptr RenderPassCreationControlEXT
p)
pokeCStruct :: forall b.
Ptr RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationControlEXT
p RenderPassCreationControlEXT{Bool
disallowMerging :: Bool
$sel:disallowMerging:RenderPassCreationControlEXT :: RenderPassCreationControlEXT -> Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> 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 RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
disallowMerging))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr RenderPassCreationControlEXT -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassCreationControlEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> 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 RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> 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 RenderPassCreationControlEXT where
peekCStruct :: Ptr RenderPassCreationControlEXT -> IO RenderPassCreationControlEXT
peekCStruct Ptr RenderPassCreationControlEXT
p = do
Bool32
disallowMerging <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr RenderPassCreationControlEXT
p Ptr RenderPassCreationControlEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
RenderPassCreationControlEXT -> IO RenderPassCreationControlEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassCreationControlEXT -> IO RenderPassCreationControlEXT)
-> RenderPassCreationControlEXT -> IO RenderPassCreationControlEXT
forall a b. (a -> b) -> a -> b
$ Bool -> RenderPassCreationControlEXT
RenderPassCreationControlEXT
(Bool32 -> Bool
bool32ToBool Bool32
disallowMerging)
instance Storable RenderPassCreationControlEXT where
sizeOf :: RenderPassCreationControlEXT -> Int
sizeOf ~RenderPassCreationControlEXT
_ = Int
24
alignment :: RenderPassCreationControlEXT -> Int
alignment ~RenderPassCreationControlEXT
_ = Int
8
peek :: Ptr RenderPassCreationControlEXT -> IO RenderPassCreationControlEXT
peek = Ptr RenderPassCreationControlEXT -> IO RenderPassCreationControlEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> IO ()
poke Ptr RenderPassCreationControlEXT
ptr RenderPassCreationControlEXT
poked = Ptr RenderPassCreationControlEXT
-> RenderPassCreationControlEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationControlEXT
ptr RenderPassCreationControlEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassCreationControlEXT where
zero :: RenderPassCreationControlEXT
zero = Bool -> RenderPassCreationControlEXT
RenderPassCreationControlEXT
Bool
forall a. Zero a => a
zero
data RenderPassCreationFeedbackInfoEXT = RenderPassCreationFeedbackInfoEXT
{
RenderPassCreationFeedbackInfoEXT -> Word32
postMergeSubpassCount :: Word32 }
deriving (Typeable, RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool
(RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool)
-> (RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool)
-> Eq RenderPassCreationFeedbackInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool
$c/= :: RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool
== :: RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool
$c== :: RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassCreationFeedbackInfoEXT)
#endif
deriving instance Show RenderPassCreationFeedbackInfoEXT
instance ToCStruct RenderPassCreationFeedbackInfoEXT where
withCStruct :: forall b.
RenderPassCreationFeedbackInfoEXT
-> (Ptr RenderPassCreationFeedbackInfoEXT -> IO b) -> IO b
withCStruct RenderPassCreationFeedbackInfoEXT
x Ptr RenderPassCreationFeedbackInfoEXT -> IO b
f = Int -> (Ptr RenderPassCreationFeedbackInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
4 ((Ptr RenderPassCreationFeedbackInfoEXT -> IO b) -> IO b)
-> (Ptr RenderPassCreationFeedbackInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassCreationFeedbackInfoEXT
p -> Ptr RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationFeedbackInfoEXT
p RenderPassCreationFeedbackInfoEXT
x (Ptr RenderPassCreationFeedbackInfoEXT -> IO b
f Ptr RenderPassCreationFeedbackInfoEXT
p)
pokeCStruct :: forall b.
Ptr RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationFeedbackInfoEXT
p RenderPassCreationFeedbackInfoEXT{Word32
postMergeSubpassCount :: Word32
$sel:postMergeSubpassCount:RenderPassCreationFeedbackInfoEXT :: RenderPassCreationFeedbackInfoEXT -> Word32
..} IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackInfoEXT
p Ptr RenderPassCreationFeedbackInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
postMergeSubpassCount)
IO b
f
cStructSize :: Int
cStructSize = Int
4
cStructAlignment :: Int
cStructAlignment = Int
4
pokeZeroCStruct :: forall b. Ptr RenderPassCreationFeedbackInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassCreationFeedbackInfoEXT
p IO b
f = do
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackInfoEXT
p Ptr RenderPassCreationFeedbackInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderPassCreationFeedbackInfoEXT where
peekCStruct :: Ptr RenderPassCreationFeedbackInfoEXT
-> IO RenderPassCreationFeedbackInfoEXT
peekCStruct Ptr RenderPassCreationFeedbackInfoEXT
p = do
Word32
postMergeSubpassCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr RenderPassCreationFeedbackInfoEXT
p Ptr RenderPassCreationFeedbackInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32))
RenderPassCreationFeedbackInfoEXT
-> IO RenderPassCreationFeedbackInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassCreationFeedbackInfoEXT
-> IO RenderPassCreationFeedbackInfoEXT)
-> RenderPassCreationFeedbackInfoEXT
-> IO RenderPassCreationFeedbackInfoEXT
forall a b. (a -> b) -> a -> b
$ Word32 -> RenderPassCreationFeedbackInfoEXT
RenderPassCreationFeedbackInfoEXT
Word32
postMergeSubpassCount
instance Storable RenderPassCreationFeedbackInfoEXT where
sizeOf :: RenderPassCreationFeedbackInfoEXT -> Int
sizeOf ~RenderPassCreationFeedbackInfoEXT
_ = Int
4
alignment :: RenderPassCreationFeedbackInfoEXT -> Int
alignment ~RenderPassCreationFeedbackInfoEXT
_ = Int
4
peek :: Ptr RenderPassCreationFeedbackInfoEXT
-> IO RenderPassCreationFeedbackInfoEXT
peek = Ptr RenderPassCreationFeedbackInfoEXT
-> IO RenderPassCreationFeedbackInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> IO ()
poke Ptr RenderPassCreationFeedbackInfoEXT
ptr RenderPassCreationFeedbackInfoEXT
poked = Ptr RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationFeedbackInfoEXT
ptr RenderPassCreationFeedbackInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassCreationFeedbackInfoEXT where
zero :: RenderPassCreationFeedbackInfoEXT
zero = Word32 -> RenderPassCreationFeedbackInfoEXT
RenderPassCreationFeedbackInfoEXT
Word32
forall a. Zero a => a
zero
data RenderPassCreationFeedbackCreateInfoEXT = RenderPassCreationFeedbackCreateInfoEXT
{
RenderPassCreationFeedbackCreateInfoEXT
-> Ptr RenderPassCreationFeedbackInfoEXT
renderPassFeedback :: Ptr RenderPassCreationFeedbackInfoEXT }
deriving (Typeable, RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool
(RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool)
-> (RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool)
-> Eq RenderPassCreationFeedbackCreateInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool
$c/= :: RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool
== :: RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool
$c== :: RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassCreationFeedbackCreateInfoEXT)
#endif
deriving instance Show RenderPassCreationFeedbackCreateInfoEXT
instance ToCStruct RenderPassCreationFeedbackCreateInfoEXT where
withCStruct :: forall b.
RenderPassCreationFeedbackCreateInfoEXT
-> (Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b) -> IO b
withCStruct RenderPassCreationFeedbackCreateInfoEXT
x Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b
f = Int
-> (Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b) -> IO b)
-> (Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassCreationFeedbackCreateInfoEXT
p -> Ptr RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationFeedbackCreateInfoEXT
p RenderPassCreationFeedbackCreateInfoEXT
x (Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b
f Ptr RenderPassCreationFeedbackCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationFeedbackCreateInfoEXT
p RenderPassCreationFeedbackCreateInfoEXT{Ptr RenderPassCreationFeedbackInfoEXT
renderPassFeedback :: Ptr RenderPassCreationFeedbackInfoEXT
$sel:renderPassFeedback:RenderPassCreationFeedbackCreateInfoEXT :: RenderPassCreationFeedbackCreateInfoEXT
-> Ptr RenderPassCreationFeedbackInfoEXT
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr (Ptr RenderPassCreationFeedbackInfoEXT)
-> Ptr RenderPassCreationFeedbackInfoEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT
-> Int -> Ptr (Ptr RenderPassCreationFeedbackInfoEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr RenderPassCreationFeedbackInfoEXT))) (Ptr RenderPassCreationFeedbackInfoEXT
renderPassFeedback)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr RenderPassCreationFeedbackCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassCreationFeedbackCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr (Ptr RenderPassCreationFeedbackInfoEXT)
-> Ptr RenderPassCreationFeedbackInfoEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT
-> Int -> Ptr (Ptr RenderPassCreationFeedbackInfoEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr RenderPassCreationFeedbackInfoEXT))) (Ptr RenderPassCreationFeedbackInfoEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderPassCreationFeedbackCreateInfoEXT where
peekCStruct :: Ptr RenderPassCreationFeedbackCreateInfoEXT
-> IO RenderPassCreationFeedbackCreateInfoEXT
peekCStruct Ptr RenderPassCreationFeedbackCreateInfoEXT
p = do
Ptr RenderPassCreationFeedbackInfoEXT
pRenderPassFeedback <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr RenderPassCreationFeedbackInfoEXT) ((Ptr RenderPassCreationFeedbackCreateInfoEXT
p Ptr RenderPassCreationFeedbackCreateInfoEXT
-> Int -> Ptr (Ptr RenderPassCreationFeedbackInfoEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr RenderPassCreationFeedbackInfoEXT)))
RenderPassCreationFeedbackCreateInfoEXT
-> IO RenderPassCreationFeedbackCreateInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassCreationFeedbackCreateInfoEXT
-> IO RenderPassCreationFeedbackCreateInfoEXT)
-> RenderPassCreationFeedbackCreateInfoEXT
-> IO RenderPassCreationFeedbackCreateInfoEXT
forall a b. (a -> b) -> a -> b
$ Ptr RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT
RenderPassCreationFeedbackCreateInfoEXT
Ptr RenderPassCreationFeedbackInfoEXT
pRenderPassFeedback
instance Storable RenderPassCreationFeedbackCreateInfoEXT where
sizeOf :: RenderPassCreationFeedbackCreateInfoEXT -> Int
sizeOf ~RenderPassCreationFeedbackCreateInfoEXT
_ = Int
24
alignment :: RenderPassCreationFeedbackCreateInfoEXT -> Int
alignment ~RenderPassCreationFeedbackCreateInfoEXT
_ = Int
8
peek :: Ptr RenderPassCreationFeedbackCreateInfoEXT
-> IO RenderPassCreationFeedbackCreateInfoEXT
peek = Ptr RenderPassCreationFeedbackCreateInfoEXT
-> IO RenderPassCreationFeedbackCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> IO ()
poke Ptr RenderPassCreationFeedbackCreateInfoEXT
ptr RenderPassCreationFeedbackCreateInfoEXT
poked = Ptr RenderPassCreationFeedbackCreateInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassCreationFeedbackCreateInfoEXT
ptr RenderPassCreationFeedbackCreateInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassCreationFeedbackCreateInfoEXT where
zero :: RenderPassCreationFeedbackCreateInfoEXT
zero = Ptr RenderPassCreationFeedbackInfoEXT
-> RenderPassCreationFeedbackCreateInfoEXT
RenderPassCreationFeedbackCreateInfoEXT
Ptr RenderPassCreationFeedbackInfoEXT
forall a. Zero a => a
zero
data RenderPassSubpassFeedbackInfoEXT = RenderPassSubpassFeedbackInfoEXT
{
RenderPassSubpassFeedbackInfoEXT -> SubpassMergeStatusEXT
subpassMergeStatus :: SubpassMergeStatusEXT
,
RenderPassSubpassFeedbackInfoEXT -> ByteString
description :: ByteString
,
RenderPassSubpassFeedbackInfoEXT -> Word32
postMergeIndex :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassSubpassFeedbackInfoEXT)
#endif
deriving instance Show RenderPassSubpassFeedbackInfoEXT
instance ToCStruct RenderPassSubpassFeedbackInfoEXT where
withCStruct :: forall b.
RenderPassSubpassFeedbackInfoEXT
-> (Ptr RenderPassSubpassFeedbackInfoEXT -> IO b) -> IO b
withCStruct RenderPassSubpassFeedbackInfoEXT
x Ptr RenderPassSubpassFeedbackInfoEXT -> IO b
f = Int -> (Ptr RenderPassSubpassFeedbackInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
264 ((Ptr RenderPassSubpassFeedbackInfoEXT -> IO b) -> IO b)
-> (Ptr RenderPassSubpassFeedbackInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassSubpassFeedbackInfoEXT
p -> Ptr RenderPassSubpassFeedbackInfoEXT
-> RenderPassSubpassFeedbackInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassSubpassFeedbackInfoEXT
p RenderPassSubpassFeedbackInfoEXT
x (Ptr RenderPassSubpassFeedbackInfoEXT -> IO b
f Ptr RenderPassSubpassFeedbackInfoEXT
p)
pokeCStruct :: forall b.
Ptr RenderPassSubpassFeedbackInfoEXT
-> RenderPassSubpassFeedbackInfoEXT -> IO b -> IO b
pokeCStruct Ptr RenderPassSubpassFeedbackInfoEXT
p RenderPassSubpassFeedbackInfoEXT{Word32
ByteString
SubpassMergeStatusEXT
postMergeIndex :: Word32
description :: ByteString
subpassMergeStatus :: SubpassMergeStatusEXT
$sel:postMergeIndex:RenderPassSubpassFeedbackInfoEXT :: RenderPassSubpassFeedbackInfoEXT -> Word32
$sel:description:RenderPassSubpassFeedbackInfoEXT :: RenderPassSubpassFeedbackInfoEXT -> ByteString
$sel:subpassMergeStatus:RenderPassSubpassFeedbackInfoEXT :: RenderPassSubpassFeedbackInfoEXT -> SubpassMergeStatusEXT
..} IO b
f = do
Ptr SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT
-> Int -> Ptr SubpassMergeStatusEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr SubpassMergeStatusEXT)) (SubpassMergeStatusEXT
subpassMergeStatus)
Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar) -> ByteString -> IO ()
forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n CChar) -> ByteString -> IO ()
pokeFixedLengthNullTerminatedByteString ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT
-> Int -> Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (ByteString
description)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
260 :: Ptr Word32)) (Word32
postMergeIndex)
IO b
f
cStructSize :: Int
cStructSize = Int
264
cStructAlignment :: Int
cStructAlignment = Int
4
pokeZeroCStruct :: forall b. Ptr RenderPassSubpassFeedbackInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassSubpassFeedbackInfoEXT
p IO b
f = do
Ptr SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT
-> Int -> Ptr SubpassMergeStatusEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr SubpassMergeStatusEXT)) (SubpassMergeStatusEXT
forall a. Zero a => a
zero)
Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar) -> ByteString -> IO ()
forall (n :: Nat).
KnownNat n =>
Ptr (FixedArray n CChar) -> ByteString -> IO ()
pokeFixedLengthNullTerminatedByteString ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT
-> Int -> Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (ByteString
forall a. Monoid a => a
mempty)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
260 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderPassSubpassFeedbackInfoEXT where
peekCStruct :: Ptr RenderPassSubpassFeedbackInfoEXT
-> IO RenderPassSubpassFeedbackInfoEXT
peekCStruct Ptr RenderPassSubpassFeedbackInfoEXT
p = do
SubpassMergeStatusEXT
subpassMergeStatus <- forall a. Storable a => Ptr a -> IO a
peek @SubpassMergeStatusEXT ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT
-> Int -> Ptr SubpassMergeStatusEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr SubpassMergeStatusEXT))
ByteString
description <- CString -> IO ByteString
packCString (Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar) -> CString
forall a (n :: Nat). Ptr (FixedArray n a) -> Ptr a
lowerArrayPtr ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT
-> Int -> Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))
Word32
postMergeIndex <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr RenderPassSubpassFeedbackInfoEXT
p Ptr RenderPassSubpassFeedbackInfoEXT -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
260 :: Ptr Word32))
RenderPassSubpassFeedbackInfoEXT
-> IO RenderPassSubpassFeedbackInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassSubpassFeedbackInfoEXT
-> IO RenderPassSubpassFeedbackInfoEXT)
-> RenderPassSubpassFeedbackInfoEXT
-> IO RenderPassSubpassFeedbackInfoEXT
forall a b. (a -> b) -> a -> b
$ SubpassMergeStatusEXT
-> ByteString -> Word32 -> RenderPassSubpassFeedbackInfoEXT
RenderPassSubpassFeedbackInfoEXT
SubpassMergeStatusEXT
subpassMergeStatus ByteString
description Word32
postMergeIndex
instance Storable RenderPassSubpassFeedbackInfoEXT where
sizeOf :: RenderPassSubpassFeedbackInfoEXT -> Int
sizeOf ~RenderPassSubpassFeedbackInfoEXT
_ = Int
264
alignment :: RenderPassSubpassFeedbackInfoEXT -> Int
alignment ~RenderPassSubpassFeedbackInfoEXT
_ = Int
4
peek :: Ptr RenderPassSubpassFeedbackInfoEXT
-> IO RenderPassSubpassFeedbackInfoEXT
peek = Ptr RenderPassSubpassFeedbackInfoEXT
-> IO RenderPassSubpassFeedbackInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassSubpassFeedbackInfoEXT
-> RenderPassSubpassFeedbackInfoEXT -> IO ()
poke Ptr RenderPassSubpassFeedbackInfoEXT
ptr RenderPassSubpassFeedbackInfoEXT
poked = Ptr RenderPassSubpassFeedbackInfoEXT
-> RenderPassSubpassFeedbackInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassSubpassFeedbackInfoEXT
ptr RenderPassSubpassFeedbackInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassSubpassFeedbackInfoEXT where
zero :: RenderPassSubpassFeedbackInfoEXT
zero = SubpassMergeStatusEXT
-> ByteString -> Word32 -> RenderPassSubpassFeedbackInfoEXT
RenderPassSubpassFeedbackInfoEXT
SubpassMergeStatusEXT
forall a. Zero a => a
zero
ByteString
forall a. Monoid a => a
mempty
Word32
forall a. Zero a => a
zero
data RenderPassSubpassFeedbackCreateInfoEXT = RenderPassSubpassFeedbackCreateInfoEXT
{
RenderPassSubpassFeedbackCreateInfoEXT
-> Ptr RenderPassSubpassFeedbackInfoEXT
subpassFeedback :: Ptr RenderPassSubpassFeedbackInfoEXT }
deriving (Typeable, RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool
(RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool)
-> (RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool)
-> Eq RenderPassSubpassFeedbackCreateInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool
$c/= :: RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool
== :: RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool
$c== :: RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassSubpassFeedbackCreateInfoEXT)
#endif
deriving instance Show RenderPassSubpassFeedbackCreateInfoEXT
instance ToCStruct RenderPassSubpassFeedbackCreateInfoEXT where
withCStruct :: forall b.
RenderPassSubpassFeedbackCreateInfoEXT
-> (Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b) -> IO b
withCStruct RenderPassSubpassFeedbackCreateInfoEXT
x Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b
f = Int -> (Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b) -> IO b)
-> (Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassSubpassFeedbackCreateInfoEXT
p -> Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassSubpassFeedbackCreateInfoEXT
p RenderPassSubpassFeedbackCreateInfoEXT
x (Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b
f Ptr RenderPassSubpassFeedbackCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr RenderPassSubpassFeedbackCreateInfoEXT
p RenderPassSubpassFeedbackCreateInfoEXT{Ptr RenderPassSubpassFeedbackInfoEXT
subpassFeedback :: Ptr RenderPassSubpassFeedbackInfoEXT
$sel:subpassFeedback:RenderPassSubpassFeedbackCreateInfoEXT :: RenderPassSubpassFeedbackCreateInfoEXT
-> Ptr RenderPassSubpassFeedbackInfoEXT
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)
-> Ptr RenderPassSubpassFeedbackInfoEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> Int -> Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr RenderPassSubpassFeedbackInfoEXT))) (Ptr RenderPassSubpassFeedbackInfoEXT
subpassFeedback)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr RenderPassSubpassFeedbackCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassSubpassFeedbackCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)
-> Ptr RenderPassSubpassFeedbackInfoEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> Int -> Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr RenderPassSubpassFeedbackInfoEXT))) (Ptr RenderPassSubpassFeedbackInfoEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderPassSubpassFeedbackCreateInfoEXT where
peekCStruct :: Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> IO RenderPassSubpassFeedbackCreateInfoEXT
peekCStruct Ptr RenderPassSubpassFeedbackCreateInfoEXT
p = do
Ptr RenderPassSubpassFeedbackInfoEXT
pSubpassFeedback <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr RenderPassSubpassFeedbackInfoEXT) ((Ptr RenderPassSubpassFeedbackCreateInfoEXT
p Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> Int -> Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr RenderPassSubpassFeedbackInfoEXT)))
RenderPassSubpassFeedbackCreateInfoEXT
-> IO RenderPassSubpassFeedbackCreateInfoEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassSubpassFeedbackCreateInfoEXT
-> IO RenderPassSubpassFeedbackCreateInfoEXT)
-> RenderPassSubpassFeedbackCreateInfoEXT
-> IO RenderPassSubpassFeedbackCreateInfoEXT
forall a b. (a -> b) -> a -> b
$ Ptr RenderPassSubpassFeedbackInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT
RenderPassSubpassFeedbackCreateInfoEXT
Ptr RenderPassSubpassFeedbackInfoEXT
pSubpassFeedback
instance Storable RenderPassSubpassFeedbackCreateInfoEXT where
sizeOf :: RenderPassSubpassFeedbackCreateInfoEXT -> Int
sizeOf ~RenderPassSubpassFeedbackCreateInfoEXT
_ = Int
24
alignment :: RenderPassSubpassFeedbackCreateInfoEXT -> Int
alignment ~RenderPassSubpassFeedbackCreateInfoEXT
_ = Int
8
peek :: Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> IO RenderPassSubpassFeedbackCreateInfoEXT
peek = Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> IO RenderPassSubpassFeedbackCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> IO ()
poke Ptr RenderPassSubpassFeedbackCreateInfoEXT
ptr RenderPassSubpassFeedbackCreateInfoEXT
poked = Ptr RenderPassSubpassFeedbackCreateInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassSubpassFeedbackCreateInfoEXT
ptr RenderPassSubpassFeedbackCreateInfoEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassSubpassFeedbackCreateInfoEXT where
zero :: RenderPassSubpassFeedbackCreateInfoEXT
zero = Ptr RenderPassSubpassFeedbackInfoEXT
-> RenderPassSubpassFeedbackCreateInfoEXT
RenderPassSubpassFeedbackCreateInfoEXT
Ptr RenderPassSubpassFeedbackInfoEXT
forall a. Zero a => a
zero
data PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
{
PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
subpassMergeFeedback :: Bool }
deriving (Typeable, PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
(PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool)
-> (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool)
-> Eq PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
$c/= :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
== :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
$c== :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
instance ToCStruct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> (Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b)
-> IO b
withCStruct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
x Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p -> Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
x (Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b
f Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p PhysicalDeviceSubpassMergeFeedbackFeaturesEXT{Bool
subpassMergeFeedback :: Bool
$sel:subpassMergeFeedback:PhysicalDeviceSubpassMergeFeedbackFeaturesEXT :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> 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 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
subpassMergeFeedback))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> 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 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> 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 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> IO PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
peekCStruct Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p = do
Bool32
subpassMergeFeedback <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
p Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> IO PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> IO PhysicalDeviceSubpassMergeFeedbackFeaturesEXT)
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> IO PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
subpassMergeFeedback)
instance Storable PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where
sizeOf :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Int
sizeOf ~PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> Int
alignment ~PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> IO PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
peek = Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> IO PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
poked = Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
-> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
ptr PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceSubpassMergeFeedbackFeaturesEXT where
zero :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
zero = Bool -> PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
Bool
forall a. Zero a => a
zero
newtype SubpassMergeStatusEXT = SubpassMergeStatusEXT Int32
deriving newtype (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
(SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool)
-> (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool)
-> Eq SubpassMergeStatusEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
$c/= :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
== :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
$c== :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
Eq, Eq SubpassMergeStatusEXT
Eq SubpassMergeStatusEXT
-> (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Ordering)
-> (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool)
-> (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool)
-> (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool)
-> (SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool)
-> (SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT)
-> (SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT)
-> Ord SubpassMergeStatusEXT
SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Ordering
SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT
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 :: SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT
$cmin :: SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT
max :: SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT
$cmax :: SubpassMergeStatusEXT
-> SubpassMergeStatusEXT -> SubpassMergeStatusEXT
>= :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
$c>= :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
> :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
$c> :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
<= :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
$c<= :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
< :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
$c< :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Bool
compare :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Ordering
$ccompare :: SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> Ordering
Ord, Ptr SubpassMergeStatusEXT -> IO SubpassMergeStatusEXT
Ptr SubpassMergeStatusEXT -> Int -> IO SubpassMergeStatusEXT
Ptr SubpassMergeStatusEXT -> Int -> SubpassMergeStatusEXT -> IO ()
Ptr SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> IO ()
SubpassMergeStatusEXT -> Int
(SubpassMergeStatusEXT -> Int)
-> (SubpassMergeStatusEXT -> Int)
-> (Ptr SubpassMergeStatusEXT -> Int -> IO SubpassMergeStatusEXT)
-> (Ptr SubpassMergeStatusEXT
-> Int -> SubpassMergeStatusEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO SubpassMergeStatusEXT)
-> (forall b. Ptr b -> Int -> SubpassMergeStatusEXT -> IO ())
-> (Ptr SubpassMergeStatusEXT -> IO SubpassMergeStatusEXT)
-> (Ptr SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> IO ())
-> Storable SubpassMergeStatusEXT
forall b. Ptr b -> Int -> IO SubpassMergeStatusEXT
forall b. Ptr b -> Int -> SubpassMergeStatusEXT -> 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 SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> IO ()
$cpoke :: Ptr SubpassMergeStatusEXT -> SubpassMergeStatusEXT -> IO ()
peek :: Ptr SubpassMergeStatusEXT -> IO SubpassMergeStatusEXT
$cpeek :: Ptr SubpassMergeStatusEXT -> IO SubpassMergeStatusEXT
pokeByteOff :: forall b. Ptr b -> Int -> SubpassMergeStatusEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> SubpassMergeStatusEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO SubpassMergeStatusEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SubpassMergeStatusEXT
pokeElemOff :: Ptr SubpassMergeStatusEXT -> Int -> SubpassMergeStatusEXT -> IO ()
$cpokeElemOff :: Ptr SubpassMergeStatusEXT -> Int -> SubpassMergeStatusEXT -> IO ()
peekElemOff :: Ptr SubpassMergeStatusEXT -> Int -> IO SubpassMergeStatusEXT
$cpeekElemOff :: Ptr SubpassMergeStatusEXT -> Int -> IO SubpassMergeStatusEXT
alignment :: SubpassMergeStatusEXT -> Int
$calignment :: SubpassMergeStatusEXT -> Int
sizeOf :: SubpassMergeStatusEXT -> Int
$csizeOf :: SubpassMergeStatusEXT -> Int
Storable, SubpassMergeStatusEXT
SubpassMergeStatusEXT -> Zero SubpassMergeStatusEXT
forall a. a -> Zero a
zero :: SubpassMergeStatusEXT
$czero :: SubpassMergeStatusEXT
Zero)
pattern $bSUBPASS_MERGE_STATUS_MERGED_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_MERGED_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_MERGED_EXT = SubpassMergeStatusEXT 0
pattern $bSUBPASS_MERGE_STATUS_DISALLOWED_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_DISALLOWED_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_DISALLOWED_EXT = SubpassMergeStatusEXT 1
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = SubpassMergeStatusEXT 2
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = SubpassMergeStatusEXT 3
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = SubpassMergeStatusEXT 4
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = SubpassMergeStatusEXT 5
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = SubpassMergeStatusEXT 6
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = SubpassMergeStatusEXT 7
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = SubpassMergeStatusEXT 8
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = SubpassMergeStatusEXT 9
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = SubpassMergeStatusEXT 10
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = SubpassMergeStatusEXT 11
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = SubpassMergeStatusEXT 12
pattern $bSUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT :: SubpassMergeStatusEXT
$mSUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT :: forall {r}.
SubpassMergeStatusEXT -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = SubpassMergeStatusEXT 13
{-# COMPLETE
SUBPASS_MERGE_STATUS_MERGED_EXT
, SUBPASS_MERGE_STATUS_DISALLOWED_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT
, SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT ::
SubpassMergeStatusEXT
#-}
conNameSubpassMergeStatusEXT :: String
conNameSubpassMergeStatusEXT :: String
conNameSubpassMergeStatusEXT = String
"SubpassMergeStatusEXT"
enumPrefixSubpassMergeStatusEXT :: String
enumPrefixSubpassMergeStatusEXT :: String
enumPrefixSubpassMergeStatusEXT = String
"SUBPASS_MERGE_STATUS_"
showTableSubpassMergeStatusEXT :: [(SubpassMergeStatusEXT, String)]
showTableSubpassMergeStatusEXT :: [(SubpassMergeStatusEXT, String)]
showTableSubpassMergeStatusEXT =
[
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_MERGED_EXT
, String
"MERGED_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_DISALLOWED_EXT
, String
"DISALLOWED_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT
, String
"NOT_MERGED_SIDE_EFFECTS_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT
, String
"NOT_MERGED_SAMPLES_MISMATCH_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT
, String
"NOT_MERGED_VIEWS_MISMATCH_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT
, String
"NOT_MERGED_ALIASING_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT
, String
"NOT_MERGED_DEPENDENCIES_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT
, String
"NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT
, String
"NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT
, String
"NOT_MERGED_INSUFFICIENT_STORAGE_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT
, String
"NOT_MERGED_DEPTH_STENCIL_COUNT_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT
, String
"NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT
, String
"NOT_MERGED_SINGLE_SUBPASS_EXT"
)
,
( SubpassMergeStatusEXT
SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT
, String
"NOT_MERGED_UNSPECIFIED_EXT"
)
]
instance Show SubpassMergeStatusEXT where
showsPrec :: Int -> SubpassMergeStatusEXT -> ShowS
showsPrec =
String
-> [(SubpassMergeStatusEXT, String)]
-> String
-> (SubpassMergeStatusEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> SubpassMergeStatusEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixSubpassMergeStatusEXT
[(SubpassMergeStatusEXT, String)]
showTableSubpassMergeStatusEXT
String
conNameSubpassMergeStatusEXT
(\(SubpassMergeStatusEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read SubpassMergeStatusEXT where
readPrec :: ReadPrec SubpassMergeStatusEXT
readPrec =
String
-> [(SubpassMergeStatusEXT, String)]
-> String
-> (Int32 -> SubpassMergeStatusEXT)
-> ReadPrec SubpassMergeStatusEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixSubpassMergeStatusEXT
[(SubpassMergeStatusEXT, String)]
showTableSubpassMergeStatusEXT
String
conNameSubpassMergeStatusEXT
Int32 -> SubpassMergeStatusEXT
SubpassMergeStatusEXT
type EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2
pattern EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION :: forall a. Integral a => a
$mEXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2
type EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback"
pattern EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback"