{-# language CPP #-}
module Vulkan.Extensions.VK_ARM_render_pass_striped ( PhysicalDeviceRenderPassStripedFeaturesARM(..)
, PhysicalDeviceRenderPassStripedPropertiesARM(..)
, RenderPassStripeInfoARM(..)
, RenderPassStripeBeginInfoARM(..)
, RenderPassStripeSubmitInfoARM(..)
, ARM_RENDER_PASS_STRIPED_SPEC_VERSION
, pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION
, ARM_RENDER_PASS_STRIPED_EXTENSION_NAME
, pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME
) where
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.FundamentalTypes (Extent2D)
import Vulkan.Core10.FundamentalTypes (Rect2D)
import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM))
data PhysicalDeviceRenderPassStripedFeaturesARM = PhysicalDeviceRenderPassStripedFeaturesARM
{
PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
renderPassStriped :: Bool }
deriving (Typeable, PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
(PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool)
-> (PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool)
-> Eq PhysicalDeviceRenderPassStripedFeaturesARM
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
== :: PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
$c/= :: PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
/= :: PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceRenderPassStripedFeaturesARM)
#endif
deriving instance Show PhysicalDeviceRenderPassStripedFeaturesARM
instance ToCStruct PhysicalDeviceRenderPassStripedFeaturesARM where
withCStruct :: forall b.
PhysicalDeviceRenderPassStripedFeaturesARM
-> (Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b) -> IO b
withCStruct PhysicalDeviceRenderPassStripedFeaturesARM
x Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b
f = Int
-> (Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b) -> IO b)
-> (Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p -> Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> IO b -> IO b
forall b.
Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p PhysicalDeviceRenderPassStripedFeaturesARM
x (Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b
f Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p PhysicalDeviceRenderPassStripedFeaturesARM{Bool
$sel:renderPassStriped:PhysicalDeviceRenderPassStripedFeaturesARM :: PhysicalDeviceRenderPassStripedFeaturesARM -> Bool
renderPassStriped :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> 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 PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
renderPassStriped))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> 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 PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> 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 PhysicalDeviceRenderPassStripedFeaturesARM where
peekCStruct :: Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> IO PhysicalDeviceRenderPassStripedFeaturesARM
peekCStruct Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p = do
Bool32
renderPassStriped <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceRenderPassStripedFeaturesARM
p Ptr PhysicalDeviceRenderPassStripedFeaturesARM -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceRenderPassStripedFeaturesARM
-> IO PhysicalDeviceRenderPassStripedFeaturesARM
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceRenderPassStripedFeaturesARM
-> IO PhysicalDeviceRenderPassStripedFeaturesARM)
-> PhysicalDeviceRenderPassStripedFeaturesARM
-> IO PhysicalDeviceRenderPassStripedFeaturesARM
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceRenderPassStripedFeaturesARM
PhysicalDeviceRenderPassStripedFeaturesARM
(Bool32 -> Bool
bool32ToBool Bool32
renderPassStriped)
instance Storable PhysicalDeviceRenderPassStripedFeaturesARM where
sizeOf :: PhysicalDeviceRenderPassStripedFeaturesARM -> Int
sizeOf ~PhysicalDeviceRenderPassStripedFeaturesARM
_ = Int
24
alignment :: PhysicalDeviceRenderPassStripedFeaturesARM -> Int
alignment ~PhysicalDeviceRenderPassStripedFeaturesARM
_ = Int
8
peek :: Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> IO PhysicalDeviceRenderPassStripedFeaturesARM
peek = Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> IO PhysicalDeviceRenderPassStripedFeaturesARM
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> IO ()
poke Ptr PhysicalDeviceRenderPassStripedFeaturesARM
ptr PhysicalDeviceRenderPassStripedFeaturesARM
poked = Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceRenderPassStripedFeaturesARM
-> PhysicalDeviceRenderPassStripedFeaturesARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRenderPassStripedFeaturesARM
ptr PhysicalDeviceRenderPassStripedFeaturesARM
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceRenderPassStripedFeaturesARM where
zero :: PhysicalDeviceRenderPassStripedFeaturesARM
zero = Bool -> PhysicalDeviceRenderPassStripedFeaturesARM
PhysicalDeviceRenderPassStripedFeaturesARM
Bool
forall a. Zero a => a
zero
data PhysicalDeviceRenderPassStripedPropertiesARM = PhysicalDeviceRenderPassStripedPropertiesARM
{
PhysicalDeviceRenderPassStripedPropertiesARM -> Extent2D
renderPassStripeGranularity :: Extent2D
,
PhysicalDeviceRenderPassStripedPropertiesARM -> Word32
maxRenderPassStripes :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceRenderPassStripedPropertiesARM)
#endif
deriving instance Show PhysicalDeviceRenderPassStripedPropertiesARM
instance ToCStruct PhysicalDeviceRenderPassStripedPropertiesARM where
withCStruct :: forall b.
PhysicalDeviceRenderPassStripedPropertiesARM
-> (Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b)
-> IO b
withCStruct PhysicalDeviceRenderPassStripedPropertiesARM
x Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b
f = Int
-> (Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p -> Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> PhysicalDeviceRenderPassStripedPropertiesARM -> IO b -> IO b
forall b.
Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> PhysicalDeviceRenderPassStripedPropertiesARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p PhysicalDeviceRenderPassStripedPropertiesARM
x (Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b
f Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> PhysicalDeviceRenderPassStripedPropertiesARM -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p PhysicalDeviceRenderPassStripedPropertiesARM{Word32
Extent2D
$sel:renderPassStripeGranularity:PhysicalDeviceRenderPassStripedPropertiesARM :: PhysicalDeviceRenderPassStripedPropertiesARM -> Extent2D
$sel:maxRenderPassStripes:PhysicalDeviceRenderPassStripedPropertiesARM :: PhysicalDeviceRenderPassStripedPropertiesARM -> Word32
renderPassStripeGranularity :: Extent2D
maxRenderPassStripes :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Extent2D -> Extent2D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr Extent2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D)) (Extent2D
renderPassStripeGranularity)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
maxRenderPassStripes)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceRenderPassStripedPropertiesARM -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Extent2D -> Extent2D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr Extent2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D)) (Extent2D
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceRenderPassStripedPropertiesARM where
peekCStruct :: Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> IO PhysicalDeviceRenderPassStripedPropertiesARM
peekCStruct Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p = do
Extent2D
renderPassStripeGranularity <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent2D ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr Extent2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Extent2D))
Word32
maxRenderPassStripes <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceRenderPassStripedPropertiesARM
p Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
PhysicalDeviceRenderPassStripedPropertiesARM
-> IO PhysicalDeviceRenderPassStripedPropertiesARM
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceRenderPassStripedPropertiesARM
-> IO PhysicalDeviceRenderPassStripedPropertiesARM)
-> PhysicalDeviceRenderPassStripedPropertiesARM
-> IO PhysicalDeviceRenderPassStripedPropertiesARM
forall a b. (a -> b) -> a -> b
$ Extent2D -> Word32 -> PhysicalDeviceRenderPassStripedPropertiesARM
PhysicalDeviceRenderPassStripedPropertiesARM
Extent2D
renderPassStripeGranularity Word32
maxRenderPassStripes
instance Storable PhysicalDeviceRenderPassStripedPropertiesARM where
sizeOf :: PhysicalDeviceRenderPassStripedPropertiesARM -> Int
sizeOf ~PhysicalDeviceRenderPassStripedPropertiesARM
_ = Int
32
alignment :: PhysicalDeviceRenderPassStripedPropertiesARM -> Int
alignment ~PhysicalDeviceRenderPassStripedPropertiesARM
_ = Int
8
peek :: Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> IO PhysicalDeviceRenderPassStripedPropertiesARM
peek = Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> IO PhysicalDeviceRenderPassStripedPropertiesARM
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> PhysicalDeviceRenderPassStripedPropertiesARM -> IO ()
poke Ptr PhysicalDeviceRenderPassStripedPropertiesARM
ptr PhysicalDeviceRenderPassStripedPropertiesARM
poked = Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> PhysicalDeviceRenderPassStripedPropertiesARM -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceRenderPassStripedPropertiesARM
-> PhysicalDeviceRenderPassStripedPropertiesARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceRenderPassStripedPropertiesARM
ptr PhysicalDeviceRenderPassStripedPropertiesARM
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceRenderPassStripedPropertiesARM where
zero :: PhysicalDeviceRenderPassStripedPropertiesARM
zero = Extent2D -> Word32 -> PhysicalDeviceRenderPassStripedPropertiesARM
PhysicalDeviceRenderPassStripedPropertiesARM
Extent2D
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data RenderPassStripeInfoARM = RenderPassStripeInfoARM
{
RenderPassStripeInfoARM -> Rect2D
stripeArea :: Rect2D }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassStripeInfoARM)
#endif
deriving instance Show RenderPassStripeInfoARM
instance ToCStruct RenderPassStripeInfoARM where
withCStruct :: forall b.
RenderPassStripeInfoARM
-> (Ptr RenderPassStripeInfoARM -> IO b) -> IO b
withCStruct RenderPassStripeInfoARM
x Ptr RenderPassStripeInfoARM -> IO b
f = Int -> (Ptr RenderPassStripeInfoARM -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr RenderPassStripeInfoARM -> IO b) -> IO b)
-> (Ptr RenderPassStripeInfoARM -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassStripeInfoARM
p -> Ptr RenderPassStripeInfoARM
-> RenderPassStripeInfoARM -> IO b -> IO b
forall b.
Ptr RenderPassStripeInfoARM
-> RenderPassStripeInfoARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeInfoARM
p RenderPassStripeInfoARM
x (Ptr RenderPassStripeInfoARM -> IO b
f Ptr RenderPassStripeInfoARM
p)
pokeCStruct :: forall b.
Ptr RenderPassStripeInfoARM
-> RenderPassStripeInfoARM -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeInfoARM
p RenderPassStripeInfoARM{Rect2D
$sel:stripeArea:RenderPassStripeInfoARM :: RenderPassStripeInfoARM -> Rect2D
stripeArea :: Rect2D
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Rect2D -> Rect2D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr Rect2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Rect2D)) (Rect2D
stripeArea)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr RenderPassStripeInfoARM -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassStripeInfoARM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Rect2D -> Rect2D -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr Rect2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Rect2D)) (Rect2D
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderPassStripeInfoARM where
peekCStruct :: Ptr RenderPassStripeInfoARM -> IO RenderPassStripeInfoARM
peekCStruct Ptr RenderPassStripeInfoARM
p = do
Rect2D
stripeArea <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Rect2D ((Ptr RenderPassStripeInfoARM
p Ptr RenderPassStripeInfoARM -> Int -> Ptr Rect2D
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Rect2D))
RenderPassStripeInfoARM -> IO RenderPassStripeInfoARM
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassStripeInfoARM -> IO RenderPassStripeInfoARM)
-> RenderPassStripeInfoARM -> IO RenderPassStripeInfoARM
forall a b. (a -> b) -> a -> b
$ Rect2D -> RenderPassStripeInfoARM
RenderPassStripeInfoARM
Rect2D
stripeArea
instance Storable RenderPassStripeInfoARM where
sizeOf :: RenderPassStripeInfoARM -> Int
sizeOf ~RenderPassStripeInfoARM
_ = Int
32
alignment :: RenderPassStripeInfoARM -> Int
alignment ~RenderPassStripeInfoARM
_ = Int
8
peek :: Ptr RenderPassStripeInfoARM -> IO RenderPassStripeInfoARM
peek = Ptr RenderPassStripeInfoARM -> IO RenderPassStripeInfoARM
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassStripeInfoARM -> RenderPassStripeInfoARM -> IO ()
poke Ptr RenderPassStripeInfoARM
ptr RenderPassStripeInfoARM
poked = Ptr RenderPassStripeInfoARM
-> RenderPassStripeInfoARM -> IO () -> IO ()
forall b.
Ptr RenderPassStripeInfoARM
-> RenderPassStripeInfoARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeInfoARM
ptr RenderPassStripeInfoARM
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassStripeInfoARM where
zero :: RenderPassStripeInfoARM
zero = Rect2D -> RenderPassStripeInfoARM
RenderPassStripeInfoARM
Rect2D
forall a. Zero a => a
zero
data RenderPassStripeBeginInfoARM = RenderPassStripeBeginInfoARM
{
RenderPassStripeBeginInfoARM -> Word32
stripeInfoCount :: Word32
,
RenderPassStripeBeginInfoARM -> Ptr RenderPassStripeInfoARM
stripeInfos :: Ptr RenderPassStripeInfoARM
}
deriving (Typeable, RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool
(RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool)
-> (RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool)
-> Eq RenderPassStripeBeginInfoARM
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool
== :: RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool
$c/= :: RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool
/= :: RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassStripeBeginInfoARM)
#endif
deriving instance Show RenderPassStripeBeginInfoARM
instance ToCStruct RenderPassStripeBeginInfoARM where
withCStruct :: forall b.
RenderPassStripeBeginInfoARM
-> (Ptr RenderPassStripeBeginInfoARM -> IO b) -> IO b
withCStruct RenderPassStripeBeginInfoARM
x Ptr RenderPassStripeBeginInfoARM -> IO b
f = Int -> (Ptr RenderPassStripeBeginInfoARM -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr RenderPassStripeBeginInfoARM -> IO b) -> IO b)
-> (Ptr RenderPassStripeBeginInfoARM -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassStripeBeginInfoARM
p -> Ptr RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> IO b -> IO b
forall b.
Ptr RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeBeginInfoARM
p RenderPassStripeBeginInfoARM
x (Ptr RenderPassStripeBeginInfoARM -> IO b
f Ptr RenderPassStripeBeginInfoARM
p)
pokeCStruct :: forall b.
Ptr RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeBeginInfoARM
p RenderPassStripeBeginInfoARM{Word32
Ptr RenderPassStripeInfoARM
$sel:stripeInfoCount:RenderPassStripeBeginInfoARM :: RenderPassStripeBeginInfoARM -> Word32
$sel:stripeInfos:RenderPassStripeBeginInfoARM :: RenderPassStripeBeginInfoARM -> Ptr RenderPassStripeInfoARM
stripeInfoCount :: Word32
stripeInfos :: Ptr RenderPassStripeInfoARM
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
stripeInfoCount)
Ptr (Ptr RenderPassStripeInfoARM)
-> Ptr RenderPassStripeInfoARM -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM
-> Int -> Ptr (Ptr RenderPassStripeInfoARM)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr RenderPassStripeInfoARM))) (Ptr RenderPassStripeInfoARM
stripeInfos)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr RenderPassStripeBeginInfoARM -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassStripeBeginInfoARM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr (Ptr RenderPassStripeInfoARM)
-> Ptr RenderPassStripeInfoARM -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM
-> Int -> Ptr (Ptr RenderPassStripeInfoARM)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr RenderPassStripeInfoARM))) (Ptr RenderPassStripeInfoARM
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct RenderPassStripeBeginInfoARM where
peekCStruct :: Ptr RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM
peekCStruct Ptr RenderPassStripeBeginInfoARM
p = do
Word32
stripeInfoCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Ptr RenderPassStripeInfoARM
pStripeInfos <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr RenderPassStripeInfoARM) ((Ptr RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM
-> Int -> Ptr (Ptr RenderPassStripeInfoARM)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr RenderPassStripeInfoARM)))
RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM)
-> RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM
forall a b. (a -> b) -> a -> b
$ Word32
-> Ptr RenderPassStripeInfoARM -> RenderPassStripeBeginInfoARM
RenderPassStripeBeginInfoARM
Word32
stripeInfoCount Ptr RenderPassStripeInfoARM
pStripeInfos
instance Storable RenderPassStripeBeginInfoARM where
sizeOf :: RenderPassStripeBeginInfoARM -> Int
sizeOf ~RenderPassStripeBeginInfoARM
_ = Int
32
alignment :: RenderPassStripeBeginInfoARM -> Int
alignment ~RenderPassStripeBeginInfoARM
_ = Int
8
peek :: Ptr RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM
peek = Ptr RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> IO ()
poke Ptr RenderPassStripeBeginInfoARM
ptr RenderPassStripeBeginInfoARM
poked = Ptr RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> IO () -> IO ()
forall b.
Ptr RenderPassStripeBeginInfoARM
-> RenderPassStripeBeginInfoARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeBeginInfoARM
ptr RenderPassStripeBeginInfoARM
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero RenderPassStripeBeginInfoARM where
zero :: RenderPassStripeBeginInfoARM
zero = Word32
-> Ptr RenderPassStripeInfoARM -> RenderPassStripeBeginInfoARM
RenderPassStripeBeginInfoARM
Word32
forall a. Zero a => a
zero
Ptr RenderPassStripeInfoARM
forall a. Zero a => a
zero
data RenderPassStripeSubmitInfoARM = RenderPassStripeSubmitInfoARM
{
RenderPassStripeSubmitInfoARM -> Vector SemaphoreSubmitInfo
stripeSemaphoreInfos :: Vector SemaphoreSubmitInfo }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (RenderPassStripeSubmitInfoARM)
#endif
deriving instance Show RenderPassStripeSubmitInfoARM
instance ToCStruct RenderPassStripeSubmitInfoARM where
withCStruct :: forall b.
RenderPassStripeSubmitInfoARM
-> (Ptr RenderPassStripeSubmitInfoARM -> IO b) -> IO b
withCStruct RenderPassStripeSubmitInfoARM
x Ptr RenderPassStripeSubmitInfoARM -> IO b
f = Int -> (Ptr RenderPassStripeSubmitInfoARM -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr RenderPassStripeSubmitInfoARM -> IO b) -> IO b)
-> (Ptr RenderPassStripeSubmitInfoARM -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr RenderPassStripeSubmitInfoARM
p -> Ptr RenderPassStripeSubmitInfoARM
-> RenderPassStripeSubmitInfoARM -> IO b -> IO b
forall b.
Ptr RenderPassStripeSubmitInfoARM
-> RenderPassStripeSubmitInfoARM -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeSubmitInfoARM
p RenderPassStripeSubmitInfoARM
x (Ptr RenderPassStripeSubmitInfoARM -> IO b
f Ptr RenderPassStripeSubmitInfoARM
p)
pokeCStruct :: forall b.
Ptr RenderPassStripeSubmitInfoARM
-> RenderPassStripeSubmitInfoARM -> IO b -> IO b
pokeCStruct Ptr RenderPassStripeSubmitInfoARM
p RenderPassStripeSubmitInfoARM{Vector SemaphoreSubmitInfo
$sel:stripeSemaphoreInfos:RenderPassStripeSubmitInfoARM :: RenderPassStripeSubmitInfoARM -> Vector SemaphoreSubmitInfo
stripeSemaphoreInfos :: Vector SemaphoreSubmitInfo
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) ((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Vector SemaphoreSubmitInfo -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector SemaphoreSubmitInfo -> Int)
-> Vector SemaphoreSubmitInfo -> Int
forall a b. (a -> b) -> a -> b
$ (Vector SemaphoreSubmitInfo
stripeSemaphoreInfos)) :: Word32))
Ptr SemaphoreSubmitInfo
pPStripeSemaphoreInfos' <- ((Ptr SemaphoreSubmitInfo -> IO b) -> IO b)
-> ContT b IO (Ptr SemaphoreSubmitInfo)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr SemaphoreSubmitInfo -> IO b) -> IO b)
-> ContT b IO (Ptr SemaphoreSubmitInfo))
-> ((Ptr SemaphoreSubmitInfo -> IO b) -> IO b)
-> ContT b IO (Ptr SemaphoreSubmitInfo)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @SemaphoreSubmitInfo ((Vector SemaphoreSubmitInfo -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector SemaphoreSubmitInfo
stripeSemaphoreInfos)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
48)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ (Int -> SemaphoreSubmitInfo -> IO ())
-> Vector SemaphoreSubmitInfo -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i SemaphoreSubmitInfo
e -> Ptr SemaphoreSubmitInfo -> SemaphoreSubmitInfo -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr SemaphoreSubmitInfo
pPStripeSemaphoreInfos' Ptr SemaphoreSubmitInfo -> Int -> Ptr SemaphoreSubmitInfo
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
48 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr SemaphoreSubmitInfo) (SemaphoreSubmitInfo
e)) (Vector SemaphoreSubmitInfo
stripeSemaphoreInfos)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr SemaphoreSubmitInfo) -> Ptr SemaphoreSubmitInfo -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM
-> Int -> Ptr (Ptr SemaphoreSubmitInfo)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr SemaphoreSubmitInfo))) (Ptr SemaphoreSubmitInfo
pPStripeSemaphoreInfos')
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr RenderPassStripeSubmitInfoARM -> IO b -> IO b
pokeZeroCStruct Ptr RenderPassStripeSubmitInfoARM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct RenderPassStripeSubmitInfoARM where
peekCStruct :: Ptr RenderPassStripeSubmitInfoARM
-> IO RenderPassStripeSubmitInfoARM
peekCStruct Ptr RenderPassStripeSubmitInfoARM
p = do
Word32
stripeSemaphoreInfoCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Ptr SemaphoreSubmitInfo
pStripeSemaphoreInfos <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr SemaphoreSubmitInfo) ((Ptr RenderPassStripeSubmitInfoARM
p Ptr RenderPassStripeSubmitInfoARM
-> Int -> Ptr (Ptr SemaphoreSubmitInfo)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr SemaphoreSubmitInfo)))
Vector SemaphoreSubmitInfo
pStripeSemaphoreInfos' <- Int
-> (Int -> IO SemaphoreSubmitInfo)
-> IO (Vector SemaphoreSubmitInfo)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
stripeSemaphoreInfoCount) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @SemaphoreSubmitInfo ((Ptr SemaphoreSubmitInfo
pStripeSemaphoreInfos Ptr SemaphoreSubmitInfo -> Int -> Ptr SemaphoreSubmitInfo
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
48 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr SemaphoreSubmitInfo)))
RenderPassStripeSubmitInfoARM -> IO RenderPassStripeSubmitInfoARM
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (RenderPassStripeSubmitInfoARM -> IO RenderPassStripeSubmitInfoARM)
-> RenderPassStripeSubmitInfoARM
-> IO RenderPassStripeSubmitInfoARM
forall a b. (a -> b) -> a -> b
$ Vector SemaphoreSubmitInfo -> RenderPassStripeSubmitInfoARM
RenderPassStripeSubmitInfoARM
Vector SemaphoreSubmitInfo
pStripeSemaphoreInfos'
instance Zero RenderPassStripeSubmitInfoARM where
zero :: RenderPassStripeSubmitInfoARM
zero = Vector SemaphoreSubmitInfo -> RenderPassStripeSubmitInfoARM
RenderPassStripeSubmitInfoARM
Vector SemaphoreSubmitInfo
forall a. Monoid a => a
mempty
type ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1
pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall a . Integral a => a
pattern $bARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall a. Integral a => a
$mARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1
type ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"
pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"