{-# language CPP #-}
module Vulkan.Extensions.VK_HUAWEI_subpass_shading ( getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI
, cmdSubpassShadingHUAWEI
, SubpassShadingPipelineCreateInfoHUAWEI(..)
, PhysicalDeviceSubpassShadingPropertiesHUAWEI(..)
, PhysicalDeviceSubpassShadingFeaturesHUAWEI(..)
, HUAWEI_SUBPASS_SHADING_SPEC_VERSION
, pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION
, HUAWEI_SUBPASS_SHADING_EXTENSION_NAME
, pattern HUAWEI_SUBPASS_SHADING_EXTENSION_NAME
, PipelineStageFlagBits2KHR(..)
, PipelineStageFlags2KHR
, Flags64
) where
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
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 GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Dynamic (DeviceCmds(pVkCmdSubpassShadingHUAWEI))
import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI))
import Vulkan.Core10.Handles (Device_T)
import Vulkan.Core10.FundamentalTypes (Extent2D)
import Vulkan.Core10.Handles (RenderPass)
import Vulkan.Core10.Handles (RenderPass(..))
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Core10.FundamentalTypes (Flags64)
import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlagBits2KHR(..))
import Vulkan.Extensions.VK_KHR_synchronization2 (PipelineStageFlags2KHR)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI
:: FunPtr (Ptr Device_T -> RenderPass -> Ptr Extent2D -> IO Result) -> Ptr Device_T -> RenderPass -> Ptr Extent2D -> IO Result
getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI :: forall io
. (MonadIO io)
=>
Device
->
RenderPass
-> io (Result, ("maxWorkgroupSize" ::: Extent2D))
getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI :: Device
-> RenderPass -> io (Result, "maxWorkgroupSize" ::: Extent2D)
getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI Device
device RenderPass
renderpass = IO (Result, "maxWorkgroupSize" ::: Extent2D)
-> io (Result, "maxWorkgroupSize" ::: Extent2D)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Result, "maxWorkgroupSize" ::: Extent2D)
-> io (Result, "maxWorkgroupSize" ::: Extent2D))
-> (ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
-> IO (Result, "maxWorkgroupSize" ::: Extent2D))
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
-> io (Result, "maxWorkgroupSize" ::: Extent2D)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
-> IO (Result, "maxWorkgroupSize" ::: Extent2D)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
-> io (Result, "maxWorkgroupSize" ::: Extent2D))
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
-> io (Result, "maxWorkgroupSize" ::: Extent2D)
forall a b. (a -> b) -> a -> b
$ do
let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr :: FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
pVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (Device -> DeviceCmds
deviceCmds (Device
device :: Device))
IO () -> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO ())
-> IO () -> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
-> FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI' :: Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI' = FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
-> Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result
mkVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI FunPtr
(Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result)
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr
"pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D)
pPMaxWorkgroupSize <- ((("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO (Result, "maxWorkgroupSize" ::: Extent2D))
-> IO (Result, "maxWorkgroupSize" ::: Extent2D))
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
forall k (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall b.
ToCStruct ("maxWorkgroupSize" ::: Extent2D) =>
(("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO b)
-> IO b
forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @Extent2D)
Result
r <- IO Result
-> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO Result
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO Result)
-> IO Result
-> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" (Ptr Device_T
-> RenderPass
-> ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO Result
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI' (Device -> Ptr Device_T
deviceHandle (Device
device)) (RenderPass
renderpass) ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D)
pPMaxWorkgroupSize))
IO () -> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO ())
-> IO () -> ContT (Result, "maxWorkgroupSize" ::: Extent2D) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
"maxWorkgroupSize" ::: Extent2D
pMaxWorkgroupSize <- IO ("maxWorkgroupSize" ::: Extent2D)
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
("maxWorkgroupSize" ::: Extent2D)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("maxWorkgroupSize" ::: Extent2D)
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
("maxWorkgroupSize" ::: Extent2D))
-> IO ("maxWorkgroupSize" ::: Extent2D)
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
("maxWorkgroupSize" ::: Extent2D)
forall a b. (a -> b) -> a -> b
$ ("pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D))
-> IO ("maxWorkgroupSize" ::: Extent2D)
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @Extent2D "pMaxWorkgroupSize" ::: Ptr ("maxWorkgroupSize" ::: Extent2D)
pPMaxWorkgroupSize
(Result, "maxWorkgroupSize" ::: Extent2D)
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
forall (f :: * -> *) a. Applicative f => a -> f a
pure ((Result, "maxWorkgroupSize" ::: Extent2D)
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D))
-> (Result, "maxWorkgroupSize" ::: Extent2D)
-> ContT
(Result, "maxWorkgroupSize" ::: Extent2D)
IO
(Result, "maxWorkgroupSize" ::: Extent2D)
forall a b. (a -> b) -> a -> b
$ (Result
r, "maxWorkgroupSize" ::: Extent2D
pMaxWorkgroupSize)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdSubpassShadingHUAWEI
:: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()
cmdSubpassShadingHUAWEI :: forall io
. (MonadIO io)
=>
CommandBuffer
-> io ()
cmdSubpassShadingHUAWEI :: CommandBuffer -> io ()
cmdSubpassShadingHUAWEI CommandBuffer
commandBuffer = IO () -> io ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdSubpassShadingHUAWEIPtr :: FunPtr (Ptr CommandBuffer_T -> IO ())
vkCmdSubpassShadingHUAWEIPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> IO ())
pVkCmdSubpassShadingHUAWEI (CommandBuffer -> DeviceCmds
deviceCmds (CommandBuffer
commandBuffer :: CommandBuffer))
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr CommandBuffer_T -> IO ())
vkCmdSubpassShadingHUAWEIPtr FunPtr (Ptr CommandBuffer_T -> IO ())
-> FunPtr (Ptr CommandBuffer_T -> IO ()) -> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr (Ptr CommandBuffer_T -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCmdSubpassShadingHUAWEI is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdSubpassShadingHUAWEI' :: Ptr CommandBuffer_T -> IO ()
vkCmdSubpassShadingHUAWEI' = FunPtr (Ptr CommandBuffer_T -> IO ())
-> Ptr CommandBuffer_T -> IO ()
mkVkCmdSubpassShadingHUAWEI FunPtr (Ptr CommandBuffer_T -> IO ())
vkCmdSubpassShadingHUAWEIPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdSubpassShadingHUAWEI" (Ptr CommandBuffer_T -> IO ()
vkCmdSubpassShadingHUAWEI' (CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer)))
() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ()
data SubpassShadingPipelineCreateInfoHUAWEI = SubpassShadingPipelineCreateInfoHUAWEI
{
SubpassShadingPipelineCreateInfoHUAWEI -> RenderPass
renderPass :: RenderPass
,
SubpassShadingPipelineCreateInfoHUAWEI -> Word32
subpass :: Word32
}
deriving (Typeable, SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool
(SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool)
-> (SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool)
-> Eq SubpassShadingPipelineCreateInfoHUAWEI
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool
$c/= :: SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool
== :: SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool
$c== :: SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SubpassShadingPipelineCreateInfoHUAWEI)
#endif
deriving instance Show SubpassShadingPipelineCreateInfoHUAWEI
instance ToCStruct SubpassShadingPipelineCreateInfoHUAWEI where
withCStruct :: SubpassShadingPipelineCreateInfoHUAWEI
-> (Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b) -> IO b
withCStruct SubpassShadingPipelineCreateInfoHUAWEI
x Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b
f = Int -> (Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b) -> IO b)
-> (Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr SubpassShadingPipelineCreateInfoHUAWEI
p -> Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SubpassShadingPipelineCreateInfoHUAWEI
p SubpassShadingPipelineCreateInfoHUAWEI
x (Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b
f Ptr SubpassShadingPipelineCreateInfoHUAWEI
p)
pokeCStruct :: Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> IO b -> IO b
pokeCStruct Ptr SubpassShadingPipelineCreateInfoHUAWEI
p SubpassShadingPipelineCreateInfoHUAWEI{Word32
RenderPass
subpass :: Word32
renderPass :: RenderPass
$sel:subpass:SubpassShadingPipelineCreateInfoHUAWEI :: SubpassShadingPipelineCreateInfoHUAWEI -> Word32
$sel:renderPass:SubpassShadingPipelineCreateInfoHUAWEI :: SubpassShadingPipelineCreateInfoHUAWEI -> RenderPass
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr RenderPass -> RenderPass -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr RenderPass
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr RenderPass)) (RenderPass
renderPass)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
subpass)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr SubpassShadingPipelineCreateInfoHUAWEI -> IO b -> IO b
pokeZeroCStruct Ptr SubpassShadingPipelineCreateInfoHUAWEI
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr RenderPass -> RenderPass -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr RenderPass
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr RenderPass)) (RenderPass
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> 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 SubpassShadingPipelineCreateInfoHUAWEI where
peekCStruct :: Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> IO SubpassShadingPipelineCreateInfoHUAWEI
peekCStruct Ptr SubpassShadingPipelineCreateInfoHUAWEI
p = do
RenderPass
renderPass <- Ptr RenderPass -> IO RenderPass
forall a. Storable a => Ptr a -> IO a
peek @RenderPass ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr RenderPass
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr RenderPass))
Word32
subpass <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr SubpassShadingPipelineCreateInfoHUAWEI
p Ptr SubpassShadingPipelineCreateInfoHUAWEI -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
SubpassShadingPipelineCreateInfoHUAWEI
-> IO SubpassShadingPipelineCreateInfoHUAWEI
forall (f :: * -> *) a. Applicative f => a -> f a
pure (SubpassShadingPipelineCreateInfoHUAWEI
-> IO SubpassShadingPipelineCreateInfoHUAWEI)
-> SubpassShadingPipelineCreateInfoHUAWEI
-> IO SubpassShadingPipelineCreateInfoHUAWEI
forall a b. (a -> b) -> a -> b
$ RenderPass -> Word32 -> SubpassShadingPipelineCreateInfoHUAWEI
SubpassShadingPipelineCreateInfoHUAWEI
RenderPass
renderPass Word32
subpass
instance Storable SubpassShadingPipelineCreateInfoHUAWEI where
sizeOf :: SubpassShadingPipelineCreateInfoHUAWEI -> Int
sizeOf ~SubpassShadingPipelineCreateInfoHUAWEI
_ = Int
32
alignment :: SubpassShadingPipelineCreateInfoHUAWEI -> Int
alignment ~SubpassShadingPipelineCreateInfoHUAWEI
_ = Int
8
peek :: Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> IO SubpassShadingPipelineCreateInfoHUAWEI
peek = Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> IO SubpassShadingPipelineCreateInfoHUAWEI
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> IO ()
poke Ptr SubpassShadingPipelineCreateInfoHUAWEI
ptr SubpassShadingPipelineCreateInfoHUAWEI
poked = Ptr SubpassShadingPipelineCreateInfoHUAWEI
-> SubpassShadingPipelineCreateInfoHUAWEI -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SubpassShadingPipelineCreateInfoHUAWEI
ptr SubpassShadingPipelineCreateInfoHUAWEI
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero SubpassShadingPipelineCreateInfoHUAWEI where
zero :: SubpassShadingPipelineCreateInfoHUAWEI
zero = RenderPass -> Word32 -> SubpassShadingPipelineCreateInfoHUAWEI
SubpassShadingPipelineCreateInfoHUAWEI
RenderPass
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data PhysicalDeviceSubpassShadingPropertiesHUAWEI = PhysicalDeviceSubpassShadingPropertiesHUAWEI
{
PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Word32
maxSubpassShadingWorkgroupSizeAspectRatio :: Word32 }
deriving (Typeable, PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool
(PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool)
-> (PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool)
-> Eq PhysicalDeviceSubpassShadingPropertiesHUAWEI
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool
$c/= :: PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool
== :: PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool
$c== :: PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceSubpassShadingPropertiesHUAWEI)
#endif
deriving instance Show PhysicalDeviceSubpassShadingPropertiesHUAWEI
instance ToCStruct PhysicalDeviceSubpassShadingPropertiesHUAWEI where
withCStruct :: PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> (Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b)
-> IO b
withCStruct PhysicalDeviceSubpassShadingPropertiesHUAWEI
x Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b
f = Int
-> (Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p -> Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p PhysicalDeviceSubpassShadingPropertiesHUAWEI
x (Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b
f Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p)
pokeCStruct :: Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p PhysicalDeviceSubpassShadingPropertiesHUAWEI{Word32
maxSubpassShadingWorkgroupSizeAspectRatio :: Word32
$sel:maxSubpassShadingWorkgroupSizeAspectRatio:PhysicalDeviceSubpassShadingPropertiesHUAWEI :: PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> 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 PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
maxSubpassShadingWorkgroupSizeAspectRatio)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> 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 PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceSubpassShadingPropertiesHUAWEI where
peekCStruct :: Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> IO PhysicalDeviceSubpassShadingPropertiesHUAWEI
peekCStruct Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p = do
Word32
maxSubpassShadingWorkgroupSizeAspectRatio <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
p Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> IO PhysicalDeviceSubpassShadingPropertiesHUAWEI
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> IO PhysicalDeviceSubpassShadingPropertiesHUAWEI)
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> IO PhysicalDeviceSubpassShadingPropertiesHUAWEI
forall a b. (a -> b) -> a -> b
$ Word32 -> PhysicalDeviceSubpassShadingPropertiesHUAWEI
PhysicalDeviceSubpassShadingPropertiesHUAWEI
Word32
maxSubpassShadingWorkgroupSizeAspectRatio
instance Storable PhysicalDeviceSubpassShadingPropertiesHUAWEI where
sizeOf :: PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Int
sizeOf ~PhysicalDeviceSubpassShadingPropertiesHUAWEI
_ = Int
24
alignment :: PhysicalDeviceSubpassShadingPropertiesHUAWEI -> Int
alignment ~PhysicalDeviceSubpassShadingPropertiesHUAWEI
_ = Int
8
peek :: Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> IO PhysicalDeviceSubpassShadingPropertiesHUAWEI
peek = Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> IO PhysicalDeviceSubpassShadingPropertiesHUAWEI
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO ()
poke Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
poked = Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
-> PhysicalDeviceSubpassShadingPropertiesHUAWEI -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
ptr PhysicalDeviceSubpassShadingPropertiesHUAWEI
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceSubpassShadingPropertiesHUAWEI where
zero :: PhysicalDeviceSubpassShadingPropertiesHUAWEI
zero = Word32 -> PhysicalDeviceSubpassShadingPropertiesHUAWEI
PhysicalDeviceSubpassShadingPropertiesHUAWEI
Word32
forall a. Zero a => a
zero
data PhysicalDeviceSubpassShadingFeaturesHUAWEI = PhysicalDeviceSubpassShadingFeaturesHUAWEI
{
PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
subpassShading :: Bool }
deriving (Typeable, PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
(PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool)
-> (PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool)
-> Eq PhysicalDeviceSubpassShadingFeaturesHUAWEI
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
$c/= :: PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
== :: PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
$c== :: PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceSubpassShadingFeaturesHUAWEI)
#endif
deriving instance Show PhysicalDeviceSubpassShadingFeaturesHUAWEI
instance ToCStruct PhysicalDeviceSubpassShadingFeaturesHUAWEI where
withCStruct :: PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> (Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b) -> IO b
withCStruct PhysicalDeviceSubpassShadingFeaturesHUAWEI
x Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b
f = Int
-> (Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b) -> IO b)
-> (Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p -> Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p PhysicalDeviceSubpassShadingFeaturesHUAWEI
x (Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b
f Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p)
pokeCStruct :: Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p PhysicalDeviceSubpassShadingFeaturesHUAWEI{Bool
subpassShading :: Bool
$sel:subpassShading:PhysicalDeviceSubpassShadingFeaturesHUAWEI :: PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> 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 PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
subpassShading))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> 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 PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> 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 PhysicalDeviceSubpassShadingFeaturesHUAWEI where
peekCStruct :: Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> IO PhysicalDeviceSubpassShadingFeaturesHUAWEI
peekCStruct Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p = do
Bool32
subpassShading <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
p Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> IO PhysicalDeviceSubpassShadingFeaturesHUAWEI
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> IO PhysicalDeviceSubpassShadingFeaturesHUAWEI)
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> IO PhysicalDeviceSubpassShadingFeaturesHUAWEI
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceSubpassShadingFeaturesHUAWEI
PhysicalDeviceSubpassShadingFeaturesHUAWEI
(Bool32 -> Bool
bool32ToBool Bool32
subpassShading)
instance Storable PhysicalDeviceSubpassShadingFeaturesHUAWEI where
sizeOf :: PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Int
sizeOf ~PhysicalDeviceSubpassShadingFeaturesHUAWEI
_ = Int
24
alignment :: PhysicalDeviceSubpassShadingFeaturesHUAWEI -> Int
alignment ~PhysicalDeviceSubpassShadingFeaturesHUAWEI
_ = Int
8
peek :: Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> IO PhysicalDeviceSubpassShadingFeaturesHUAWEI
peek = Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> IO PhysicalDeviceSubpassShadingFeaturesHUAWEI
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO ()
poke Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
poked = Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
-> PhysicalDeviceSubpassShadingFeaturesHUAWEI -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
ptr PhysicalDeviceSubpassShadingFeaturesHUAWEI
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceSubpassShadingFeaturesHUAWEI where
zero :: PhysicalDeviceSubpassShadingFeaturesHUAWEI
zero = Bool -> PhysicalDeviceSubpassShadingFeaturesHUAWEI
PhysicalDeviceSubpassShadingFeaturesHUAWEI
Bool
forall a. Zero a => a
zero
type HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 2
pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION :: forall a . Integral a => a
pattern $bHUAWEI_SUBPASS_SHADING_SPEC_VERSION :: a
$mHUAWEI_SUBPASS_SHADING_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 2
type HUAWEI_SUBPASS_SHADING_EXTENSION_NAME = "VK_HUAWEI_subpass_shading"
pattern HUAWEI_SUBPASS_SHADING_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bHUAWEI_SUBPASS_SHADING_EXTENSION_NAME :: a
$mHUAWEI_SUBPASS_SHADING_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
HUAWEI_SUBPASS_SHADING_EXTENSION_NAME = "VK_HUAWEI_subpass_shading"