{-# 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
renderPassStriped :: 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
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))
pure $ PhysicalDeviceRenderPassStripedFeaturesARM
(bool32ToBool 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
renderPassStripeGranularity :: PhysicalDeviceRenderPassStripedPropertiesARM -> Extent2D
maxRenderPassStripes :: 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
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))
maxRenderPassStripes <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
pure $ PhysicalDeviceRenderPassStripedPropertiesARM
renderPassStripeGranularity 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
stripeArea :: 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
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))
pure $ RenderPassStripeInfoARM
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 -> Vector RenderPassStripeInfoARM
stripeInfos :: Vector RenderPassStripeInfoARM }
deriving (Typeable)
#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{Vector RenderPassStripeInfoARM
stripeInfos :: RenderPassStripeBeginInfoARM -> Vector RenderPassStripeInfoARM
stripeInfos :: Vector RenderPassStripeInfoARM
..} 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 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)
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 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)
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 RenderPassStripeBeginInfoARM
p Ptr RenderPassStripeBeginInfoARM -> 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 RenderPassStripeInfoARM -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector RenderPassStripeInfoARM -> Int)
-> Vector RenderPassStripeInfoARM -> Int
forall a b. (a -> b) -> a -> b
$ (Vector RenderPassStripeInfoARM
stripeInfos)) :: Word32))
pPStripeInfos' <- ((Ptr RenderPassStripeInfoARM -> IO b) -> IO b)
-> ContT b IO (Ptr RenderPassStripeInfoARM)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr RenderPassStripeInfoARM -> IO b) -> IO b)
-> ContT b IO (Ptr RenderPassStripeInfoARM))
-> ((Ptr RenderPassStripeInfoARM -> IO b) -> IO b)
-> ContT b IO (Ptr RenderPassStripeInfoARM)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @RenderPassStripeInfoARM ((Vector RenderPassStripeInfoARM -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector RenderPassStripeInfoARM
stripeInfos)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
32)
lift $ Data.Vector.imapM_ (\Int
i RenderPassStripeInfoARM
e -> Ptr RenderPassStripeInfoARM -> RenderPassStripeInfoARM -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr RenderPassStripeInfoARM
pPStripeInfos' Ptr RenderPassStripeInfoARM -> Int -> Ptr RenderPassStripeInfoARM
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr RenderPassStripeInfoARM) (RenderPassStripeInfoARM
e)) (stripeInfos)
lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM))) (pPStripeInfos')
lift $ 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)
IO b
f
instance FromCStruct RenderPassStripeBeginInfoARM where
peekCStruct :: Ptr RenderPassStripeBeginInfoARM -> IO RenderPassStripeBeginInfoARM
peekCStruct Ptr RenderPassStripeBeginInfoARM
p = do
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))
pStripeInfos <- peek @(Ptr RenderPassStripeInfoARM) ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM)))
pStripeInfos' <- generateM (fromIntegral stripeInfoCount) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @RenderPassStripeInfoARM ((Ptr RenderPassStripeInfoARM
pStripeInfos Ptr RenderPassStripeInfoARM -> Int -> Ptr RenderPassStripeInfoARM
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr RenderPassStripeInfoARM)))
pure $ RenderPassStripeBeginInfoARM
pStripeInfos'
instance Zero RenderPassStripeBeginInfoARM where
zero :: RenderPassStripeBeginInfoARM
zero = Vector RenderPassStripeInfoARM -> RenderPassStripeBeginInfoARM
RenderPassStripeBeginInfoARM
Vector RenderPassStripeInfoARM
forall a. Monoid a => a
mempty
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
stripeSemaphoreInfos :: 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))
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)
lift $ 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)) (stripeSemaphoreInfos)
lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPStripeSemaphoreInfos')
lift $ 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
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))
pStripeSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))
pStripeSemaphoreInfos' <- generateM (fromIntegral 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)))
pure $ RenderPassStripeSubmitInfoARM
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 $mARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall a. Integral a => a
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 $mARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"