{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_get_display_properties2 ( getPhysicalDeviceDisplayProperties2KHR
, getPhysicalDeviceDisplayPlaneProperties2KHR
, getDisplayModeProperties2KHR
, getDisplayPlaneCapabilities2KHR
, DisplayProperties2KHR(..)
, DisplayPlaneProperties2KHR(..)
, DisplayModeProperties2KHR(..)
, DisplayPlaneInfo2KHR(..)
, DisplayPlaneCapabilities2KHR(..)
, KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION
, pattern KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION
, KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME
, pattern KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME
, DisplayKHR(..)
, DisplayModeKHR(..)
, DisplayPropertiesKHR(..)
, DisplayPlanePropertiesKHR(..)
, DisplayModeParametersKHR(..)
, DisplayModePropertiesKHR(..)
, DisplayPlaneCapabilitiesKHR(..)
, DisplayPlaneAlphaFlagBitsKHR(..)
, DisplayPlaneAlphaFlagsKHR
, SurfaceTransformFlagBitsKHR(..)
, SurfaceTransformFlagsKHR
) where
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
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 Data.Vector (generateM)
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.Type.Equality ((:~:)(Refl))
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 Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.NamedType ((:::))
import Vulkan.CStruct.Extends (Chain)
import Vulkan.Extensions.Handles (DisplayKHR)
import Vulkan.Extensions.Handles (DisplayKHR(..))
import Vulkan.Extensions.Handles (DisplayModeKHR)
import Vulkan.Extensions.VK_KHR_display (DisplayModePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_display_stereo (DisplayModeStereoPropertiesNV)
import Vulkan.Extensions.VK_KHR_display (DisplayPlaneCapabilitiesKHR)
import Vulkan.Extensions.VK_KHR_display (DisplayPlanePropertiesKHR)
import Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR)
import Vulkan.CStruct.Extends (Extends)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.CStruct.Extends (Extensible(..))
import Vulkan.Dynamic (InstanceCmds(pVkGetDisplayModeProperties2KHR))
import Vulkan.Dynamic (InstanceCmds(pVkGetDisplayPlaneCapabilities2KHR))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDisplayPlaneProperties2KHR))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDisplayProperties2KHR))
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
import Vulkan.Core10.Handles (PhysicalDevice_T)
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.Handles (DisplayKHR(..))
import Vulkan.Extensions.Handles (DisplayModeKHR(..))
import Vulkan.Extensions.VK_KHR_display (DisplayModeParametersKHR(..))
import Vulkan.Extensions.VK_KHR_display (DisplayModePropertiesKHR(..))
import Vulkan.Extensions.VK_KHR_display (DisplayPlaneAlphaFlagBitsKHR(..))
import Vulkan.Extensions.VK_KHR_display (DisplayPlaneAlphaFlagsKHR)
import Vulkan.Extensions.VK_KHR_display (DisplayPlaneCapabilitiesKHR(..))
import Vulkan.Extensions.VK_KHR_display (DisplayPlanePropertiesKHR(..))
import Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR(..))
import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR(..))
import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagsKHR)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceDisplayProperties2KHR
:: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result
getPhysicalDeviceDisplayProperties2KHR :: forall io
. (MonadIO io)
=>
PhysicalDevice
-> io (Result, ("properties" ::: Vector DisplayProperties2KHR))
getPhysicalDeviceDisplayProperties2KHR :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> io (Result, "properties" ::: Vector DisplayProperties2KHR)
getPhysicalDeviceDisplayProperties2KHR PhysicalDevice
physicalDevice = IO (Result, "properties" ::: Vector DisplayProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayProperties2KHR)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Result, "properties" ::: Vector DisplayProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayProperties2KHR))
-> (ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayProperties2KHR)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayProperties2KHR)
forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceDisplayProperties2KHRPtr :: FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
vkGetPhysicalDeviceDisplayProperties2KHRPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
pVkGetPhysicalDeviceDisplayProperties2KHR (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO ()
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) IO ()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) IO ())
-> IO ()
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
vkGetPhysicalDeviceDisplayProperties2KHRPtr FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, 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 vkGetPhysicalDeviceDisplayProperties2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetPhysicalDeviceDisplayProperties2KHR' :: Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result
vkGetPhysicalDeviceDisplayProperties2KHR' = FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
-> Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr DisplayProperties2KHR
-> IO Result
mkVkGetPhysicalDeviceDisplayProperties2KHR FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayProperties2KHR -> IO Result)
vkGetPhysicalDeviceDisplayProperties2KHRPtr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
pPPropertyCount <- ((Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Ptr Word32)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Ptr Word32))
-> ((Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR)
IO
(Ptr Word32)
forall a b. (a -> b) -> a -> b
$ IO (Ptr Word32)
-> (Ptr Word32 -> IO ())
-> (Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
free
r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR'
physicalDevice'
(pPPropertyCount)
(nullPtr))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pPropertyCount <- lift $ peek @Word32 pPPropertyCount
pPProperties <- ContT $ bracket (callocBytes @DisplayProperties2KHR ((fromIntegral (pPropertyCount)) * 64)) free
_ <- traverse (\Int
i -> ((() -> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((()
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) IO ())
-> ((()
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayProperties2KHR) IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DisplayProperties2KHR
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR)
forall b. Ptr DisplayProperties2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr DisplayProperties2KHR
pPProperties Ptr DisplayProperties2KHR -> Int -> Ptr DisplayProperties2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
64) :: Ptr DisplayProperties2KHR) (IO (Result, "properties" ::: Vector DisplayProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> ((()
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> (()
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayProperties2KHR)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO (Result, "properties" ::: Vector DisplayProperties2KHR))
-> () -> IO (Result, "properties" ::: Vector DisplayProperties2KHR)
forall a b. (a -> b) -> a -> b
$ ())) [0..(fromIntegral (pPropertyCount)) - 1]
r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR'
physicalDevice'
(pPPropertyCount)
((pPProperties)))
lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
pPropertyCount' <- lift $ peek @Word32 pPPropertyCount
pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DisplayProperties2KHR (((Ptr DisplayProperties2KHR
pPProperties) Ptr DisplayProperties2KHR -> Int -> Ptr DisplayProperties2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
64 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr DisplayProperties2KHR)))
pure $ ((r'), pProperties')
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceDisplayPlaneProperties2KHR
:: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result
getPhysicalDeviceDisplayPlaneProperties2KHR :: forall io
. (MonadIO io)
=>
PhysicalDevice
-> io (Result, ("properties" ::: Vector DisplayPlaneProperties2KHR))
getPhysicalDeviceDisplayPlaneProperties2KHR :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> io (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
getPhysicalDeviceDisplayPlaneProperties2KHR PhysicalDevice
physicalDevice = IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> (ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> io (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceDisplayPlaneProperties2KHRPtr :: FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
vkGetPhysicalDeviceDisplayPlaneProperties2KHRPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
pVkGetPhysicalDeviceDisplayPlaneProperties2KHR (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: PhysicalDevice -> InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO ()
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) IO ()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) IO ())
-> IO ()
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
vkGetPhysicalDeviceDisplayPlaneProperties2KHRPtr FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, 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 vkGetPhysicalDeviceDisplayPlaneProperties2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetPhysicalDeviceDisplayPlaneProperties2KHR' :: Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result
vkGetPhysicalDeviceDisplayPlaneProperties2KHR' = FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
-> Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr DisplayPlaneProperties2KHR
-> IO Result
mkVkGetPhysicalDeviceDisplayPlaneProperties2KHR FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32 -> Ptr DisplayPlaneProperties2KHR -> IO Result)
vkGetPhysicalDeviceDisplayPlaneProperties2KHRPtr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
pPPropertyCount <- ((Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Ptr Word32)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Ptr Word32))
-> ((Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
IO
(Ptr Word32)
forall a b. (a -> b) -> a -> b
$ IO (Ptr Word32)
-> (Ptr Word32 -> IO ())
-> (Ptr Word32
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
free
r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR'
physicalDevice'
(pPPropertyCount)
(nullPtr))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pPropertyCount <- lift $ peek @Word32 pPPropertyCount
pPProperties <- ContT $ bracket (callocBytes @DisplayPlaneProperties2KHR ((fromIntegral (pPropertyCount)) * 32)) free
_ <- traverse (\Int
i -> ((()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) IO ())
-> ((()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ContT
(Result, "properties" ::: Vector DisplayPlaneProperties2KHR) IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DisplayPlaneProperties2KHR
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall b. Ptr DisplayPlaneProperties2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr DisplayPlaneProperties2KHR
pPProperties Ptr DisplayPlaneProperties2KHR
-> Int -> Ptr DisplayPlaneProperties2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
32) :: Ptr DisplayPlaneProperties2KHR) (IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ((()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> (()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR))
-> ()
-> IO (Result, "properties" ::: Vector DisplayPlaneProperties2KHR)
forall a b. (a -> b) -> a -> b
$ ())) [0..(fromIntegral (pPropertyCount)) - 1]
r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR'
physicalDevice'
(pPPropertyCount)
((pPProperties)))
lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
pPropertyCount' <- lift $ peek @Word32 pPPropertyCount
pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DisplayPlaneProperties2KHR (((Ptr DisplayPlaneProperties2KHR
pPProperties) Ptr DisplayPlaneProperties2KHR
-> Int -> Ptr DisplayPlaneProperties2KHR
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
32 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr DisplayPlaneProperties2KHR)))
pure $ ((r'), pProperties')
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDisplayModeProperties2KHR
:: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> Ptr Word32 -> Ptr (SomeStruct DisplayModeProperties2KHR) -> IO Result) -> Ptr PhysicalDevice_T -> DisplayKHR -> Ptr Word32 -> Ptr (SomeStruct DisplayModeProperties2KHR) -> IO Result
getDisplayModeProperties2KHR :: forall a io
. ( Extendss DisplayModeProperties2KHR a
, PokeChain a
, PeekChain a
, MonadIO io )
=>
PhysicalDevice
->
DisplayKHR
-> io (Result, ("properties" ::: Vector (DisplayModeProperties2KHR a)))
getDisplayModeProperties2KHR :: forall (a :: [*]) (io :: * -> *).
(Extendss DisplayModeProperties2KHR a, PokeChain a, PeekChain a,
MonadIO io) =>
PhysicalDevice
-> DisplayKHR
-> io
(Result, "properties" ::: Vector (DisplayModeProperties2KHR a))
getDisplayModeProperties2KHR PhysicalDevice
physicalDevice DisplayKHR
display = IO (Result, Vector (DisplayModeProperties2KHR a))
-> io (Result, Vector (DisplayModeProperties2KHR a))
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Result, Vector (DisplayModeProperties2KHR a))
-> io (Result, Vector (DisplayModeProperties2KHR a)))
-> (ContT
(Result, Vector (DisplayModeProperties2KHR a))
IO
(Result, Vector (DisplayModeProperties2KHR a))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT
(Result, Vector (DisplayModeProperties2KHR a))
IO
(Result, Vector (DisplayModeProperties2KHR a))
-> io (Result, Vector (DisplayModeProperties2KHR a))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result, Vector (DisplayModeProperties2KHR a))
IO
(Result, Vector (DisplayModeProperties2KHR a))
-> IO (Result, Vector (DisplayModeProperties2KHR a))
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result, Vector (DisplayModeProperties2KHR a))
IO
(Result, Vector (DisplayModeProperties2KHR a))
-> io (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT
(Result, Vector (DisplayModeProperties2KHR a))
IO
(Result, Vector (DisplayModeProperties2KHR a))
-> io (Result, Vector (DisplayModeProperties2KHR a))
forall a b. (a -> b) -> a -> b
$ do
let vkGetDisplayModeProperties2KHRPtr :: FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
vkGetDisplayModeProperties2KHRPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
pVkGetDisplayModeProperties2KHR (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: PhysicalDevice -> InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO () -> ContT (Result, Vector (DisplayModeProperties2KHR a)) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, Vector (DisplayModeProperties2KHR a)) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT (Result, Vector (DisplayModeProperties2KHR a)) IO ())
-> IO ()
-> ContT (Result, Vector (DisplayModeProperties2KHR a)) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
vkGetDisplayModeProperties2KHRPtr FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, 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 vkGetDisplayModeProperties2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDisplayModeProperties2KHR' :: Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result
vkGetDisplayModeProperties2KHR' = FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
-> Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result
mkVkGetDisplayModeProperties2KHR FunPtr
(Ptr PhysicalDevice_T
-> DisplayKHR
-> Ptr Word32
-> Ptr (SomeStruct DisplayModeProperties2KHR)
-> IO Result)
vkGetDisplayModeProperties2KHRPtr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
pPPropertyCount <- ((Ptr Word32 -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT
(Result, Vector (DisplayModeProperties2KHR a)) IO (Ptr Word32)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Word32 -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT
(Result, Vector (DisplayModeProperties2KHR a)) IO (Ptr Word32))
-> ((Ptr Word32
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT
(Result, Vector (DisplayModeProperties2KHR a)) IO (Ptr Word32)
forall a b. (a -> b) -> a -> b
$ IO (Ptr Word32)
-> (Ptr Word32 -> IO ())
-> (Ptr Word32
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a))
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
free
r <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR'
physicalDevice'
(display)
(pPPropertyCount)
(forgetExtensions (nullPtr)))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pPropertyCount <- lift $ peek @Word32 pPPropertyCount
pPProperties <- ContT $ bracket (callocBytes @(DisplayModeProperties2KHR _) ((fromIntegral (pPropertyCount)) * 40)) free
_ <- traverse (\Int
i -> ((() -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT (Result, Vector (DisplayModeProperties2KHR a)) IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT (Result, Vector (DisplayModeProperties2KHR a)) IO ())
-> ((() -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ContT (Result, Vector (DisplayModeProperties2KHR a)) IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (DisplayModeProperties2KHR a)
-> IO (Result, Vector (DisplayModeProperties2KHR a))
-> IO (Result, Vector (DisplayModeProperties2KHR a))
forall b. Ptr (DisplayModeProperties2KHR a) -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr (DisplayModeProperties2KHR a)
pPProperties Ptr (DisplayModeProperties2KHR a)
-> Int -> Ptr (DisplayModeProperties2KHR a)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
40) :: Ptr (DisplayModeProperties2KHR _)) (IO (Result, Vector (DisplayModeProperties2KHR a))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> ((() -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> (() -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> IO (Result, Vector (DisplayModeProperties2KHR a))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO (Result, Vector (DisplayModeProperties2KHR a)))
-> () -> IO (Result, Vector (DisplayModeProperties2KHR a))
forall a b. (a -> b) -> a -> b
$ ())) [0..(fromIntegral (pPropertyCount)) - 1]
r' <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR'
physicalDevice'
(display)
(pPPropertyCount)
(forgetExtensions ((pPProperties))))
lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
pPropertyCount' <- lift $ peek @Word32 pPPropertyCount
pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(DisplayModeProperties2KHR _) (((Ptr (DisplayModeProperties2KHR a)
pPProperties) Ptr (DisplayModeProperties2KHR a)
-> Int -> Ptr (DisplayModeProperties2KHR a)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
40 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (DisplayModeProperties2KHR _))))
pure $ ((r'), pProperties')
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetDisplayPlaneCapabilities2KHR
:: FunPtr (Ptr PhysicalDevice_T -> Ptr DisplayPlaneInfo2KHR -> Ptr DisplayPlaneCapabilities2KHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr DisplayPlaneInfo2KHR -> Ptr DisplayPlaneCapabilities2KHR -> IO Result
getDisplayPlaneCapabilities2KHR :: forall io
. (MonadIO io)
=>
PhysicalDevice
->
DisplayPlaneInfo2KHR
-> io (DisplayPlaneCapabilities2KHR)
getDisplayPlaneCapabilities2KHR :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> DisplayPlaneInfo2KHR -> io DisplayPlaneCapabilities2KHR
getDisplayPlaneCapabilities2KHR PhysicalDevice
physicalDevice
DisplayPlaneInfo2KHR
displayPlaneInfo = IO DisplayPlaneCapabilities2KHR -> io DisplayPlaneCapabilities2KHR
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DisplayPlaneCapabilities2KHR
-> io DisplayPlaneCapabilities2KHR)
-> (ContT
DisplayPlaneCapabilities2KHR IO DisplayPlaneCapabilities2KHR
-> IO DisplayPlaneCapabilities2KHR)
-> ContT
DisplayPlaneCapabilities2KHR IO DisplayPlaneCapabilities2KHR
-> io DisplayPlaneCapabilities2KHR
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT DisplayPlaneCapabilities2KHR IO DisplayPlaneCapabilities2KHR
-> IO DisplayPlaneCapabilities2KHR
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT DisplayPlaneCapabilities2KHR IO DisplayPlaneCapabilities2KHR
-> io DisplayPlaneCapabilities2KHR)
-> ContT
DisplayPlaneCapabilities2KHR IO DisplayPlaneCapabilities2KHR
-> io DisplayPlaneCapabilities2KHR
forall a b. (a -> b) -> a -> b
$ do
let vkGetDisplayPlaneCapabilities2KHRPtr :: FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
vkGetDisplayPlaneCapabilities2KHRPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
pVkGetDisplayPlaneCapabilities2KHR (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: PhysicalDevice -> InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO () -> ContT DisplayPlaneCapabilities2KHR IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT DisplayPlaneCapabilities2KHR m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT DisplayPlaneCapabilities2KHR IO ())
-> IO () -> ContT DisplayPlaneCapabilities2KHR IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
vkGetDisplayPlaneCapabilities2KHRPtr FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. (HasCallStack, 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 vkGetDisplayPlaneCapabilities2KHR is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetDisplayPlaneCapabilities2KHR' :: Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result
vkGetDisplayPlaneCapabilities2KHR' = FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
-> Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result
mkVkGetDisplayPlaneCapabilities2KHR FunPtr
(Ptr PhysicalDevice_T
-> Ptr DisplayPlaneInfo2KHR
-> Ptr DisplayPlaneCapabilities2KHR
-> IO Result)
vkGetDisplayPlaneCapabilities2KHRPtr
pDisplayPlaneInfo <- ((Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneCapabilities2KHR)
-> IO DisplayPlaneCapabilities2KHR)
-> ContT DisplayPlaneCapabilities2KHR IO (Ptr DisplayPlaneInfo2KHR)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneCapabilities2KHR)
-> IO DisplayPlaneCapabilities2KHR)
-> ContT
DisplayPlaneCapabilities2KHR IO (Ptr DisplayPlaneInfo2KHR))
-> ((Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneCapabilities2KHR)
-> IO DisplayPlaneCapabilities2KHR)
-> ContT DisplayPlaneCapabilities2KHR IO (Ptr DisplayPlaneInfo2KHR)
forall a b. (a -> b) -> a -> b
$ DisplayPlaneInfo2KHR
-> (Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneCapabilities2KHR)
-> IO DisplayPlaneCapabilities2KHR
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DisplayPlaneInfo2KHR -> (Ptr DisplayPlaneInfo2KHR -> IO b) -> IO b
withCStruct (DisplayPlaneInfo2KHR
displayPlaneInfo)
pPCapabilities <- ContT (withZeroCStruct @DisplayPlaneCapabilities2KHR)
r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilities2KHR" (vkGetDisplayPlaneCapabilities2KHR'
(physicalDeviceHandle (physicalDevice))
pDisplayPlaneInfo
(pPCapabilities))
lift $ when (r < SUCCESS) (throwIO (VulkanException r))
pCapabilities <- lift $ peekCStruct @DisplayPlaneCapabilities2KHR pPCapabilities
pure $ (pCapabilities)
data DisplayProperties2KHR = DisplayProperties2KHR
{
DisplayProperties2KHR -> DisplayPropertiesKHR
displayProperties :: DisplayPropertiesKHR }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DisplayProperties2KHR)
#endif
deriving instance Show DisplayProperties2KHR
instance ToCStruct DisplayProperties2KHR where
withCStruct :: forall b.
DisplayProperties2KHR
-> (Ptr DisplayProperties2KHR -> IO b) -> IO b
withCStruct DisplayProperties2KHR
x Ptr DisplayProperties2KHR -> IO b
f = Int -> (Ptr DisplayProperties2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
64 ((Ptr DisplayProperties2KHR -> IO b) -> IO b)
-> (Ptr DisplayProperties2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DisplayProperties2KHR
p -> Ptr DisplayProperties2KHR -> DisplayProperties2KHR -> IO b -> IO b
forall b.
Ptr DisplayProperties2KHR -> DisplayProperties2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayProperties2KHR
p DisplayProperties2KHR
x (Ptr DisplayProperties2KHR -> IO b
f Ptr DisplayProperties2KHR
p)
pokeCStruct :: forall b.
Ptr DisplayProperties2KHR -> DisplayProperties2KHR -> IO b -> IO b
pokeCStruct Ptr DisplayProperties2KHR
p DisplayProperties2KHR{DisplayPropertiesKHR
displayProperties :: DisplayProperties2KHR -> DisplayPropertiesKHR
displayProperties :: DisplayPropertiesKHR
..} 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 DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR)
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 DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DisplayPropertiesKHR -> DisplayPropertiesKHR -> IO b -> IO b
forall b.
Ptr DisplayPropertiesKHR -> DisplayPropertiesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr DisplayPropertiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPropertiesKHR)) (DisplayPropertiesKHR
displayProperties) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())
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
64
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DisplayProperties2KHR -> IO b -> IO b
pokeZeroCStruct Ptr DisplayProperties2KHR
p 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 DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR)
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 DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DisplayPropertiesKHR -> DisplayPropertiesKHR -> IO b -> IO b
forall b.
Ptr DisplayPropertiesKHR -> DisplayPropertiesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr DisplayPropertiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPropertiesKHR)) (DisplayPropertiesKHR
forall a. Zero a => a
zero) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())
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
instance FromCStruct DisplayProperties2KHR where
peekCStruct :: Ptr DisplayProperties2KHR -> IO DisplayProperties2KHR
peekCStruct Ptr DisplayProperties2KHR
p = do
displayProperties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DisplayPropertiesKHR ((Ptr DisplayProperties2KHR
p Ptr DisplayProperties2KHR -> Int -> Ptr DisplayPropertiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPropertiesKHR))
pure $ DisplayProperties2KHR
displayProperties
instance Zero DisplayProperties2KHR where
zero :: DisplayProperties2KHR
zero = DisplayPropertiesKHR -> DisplayProperties2KHR
DisplayProperties2KHR
DisplayPropertiesKHR
forall a. Zero a => a
zero
data DisplayPlaneProperties2KHR = DisplayPlaneProperties2KHR
{
DisplayPlaneProperties2KHR -> DisplayPlanePropertiesKHR
displayPlaneProperties :: DisplayPlanePropertiesKHR }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DisplayPlaneProperties2KHR)
#endif
deriving instance Show DisplayPlaneProperties2KHR
instance ToCStruct DisplayPlaneProperties2KHR where
withCStruct :: forall b.
DisplayPlaneProperties2KHR
-> (Ptr DisplayPlaneProperties2KHR -> IO b) -> IO b
withCStruct DisplayPlaneProperties2KHR
x Ptr DisplayPlaneProperties2KHR -> IO b
f = Int -> (Ptr DisplayPlaneProperties2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr DisplayPlaneProperties2KHR -> IO b) -> IO b)
-> (Ptr DisplayPlaneProperties2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DisplayPlaneProperties2KHR
p -> Ptr DisplayPlaneProperties2KHR
-> DisplayPlaneProperties2KHR -> IO b -> IO b
forall b.
Ptr DisplayPlaneProperties2KHR
-> DisplayPlaneProperties2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneProperties2KHR
p DisplayPlaneProperties2KHR
x (Ptr DisplayPlaneProperties2KHR -> IO b
f Ptr DisplayPlaneProperties2KHR
p)
pokeCStruct :: forall b.
Ptr DisplayPlaneProperties2KHR
-> DisplayPlaneProperties2KHR -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneProperties2KHR
p DisplayPlaneProperties2KHR{DisplayPlanePropertiesKHR
displayPlaneProperties :: DisplayPlaneProperties2KHR -> DisplayPlanePropertiesKHR
displayPlaneProperties :: DisplayPlanePropertiesKHR
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DisplayPlanePropertiesKHR -> DisplayPlanePropertiesKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR
-> Int -> Ptr DisplayPlanePropertiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPlanePropertiesKHR)) (DisplayPlanePropertiesKHR
displayPlaneProperties)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DisplayPlaneProperties2KHR -> IO b -> IO b
pokeZeroCStruct Ptr DisplayPlaneProperties2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DisplayPlanePropertiesKHR -> DisplayPlanePropertiesKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR
-> Int -> Ptr DisplayPlanePropertiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPlanePropertiesKHR)) (DisplayPlanePropertiesKHR
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DisplayPlaneProperties2KHR where
peekCStruct :: Ptr DisplayPlaneProperties2KHR -> IO DisplayPlaneProperties2KHR
peekCStruct Ptr DisplayPlaneProperties2KHR
p = do
displayPlaneProperties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DisplayPlanePropertiesKHR ((Ptr DisplayPlaneProperties2KHR
p Ptr DisplayPlaneProperties2KHR
-> Int -> Ptr DisplayPlanePropertiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPlanePropertiesKHR))
pure $ DisplayPlaneProperties2KHR
displayPlaneProperties
instance Storable DisplayPlaneProperties2KHR where
sizeOf :: DisplayPlaneProperties2KHR -> Int
sizeOf ~DisplayPlaneProperties2KHR
_ = Int
32
alignment :: DisplayPlaneProperties2KHR -> Int
alignment ~DisplayPlaneProperties2KHR
_ = Int
8
peek :: Ptr DisplayPlaneProperties2KHR -> IO DisplayPlaneProperties2KHR
peek = Ptr DisplayPlaneProperties2KHR -> IO DisplayPlaneProperties2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DisplayPlaneProperties2KHR
-> DisplayPlaneProperties2KHR -> IO ()
poke Ptr DisplayPlaneProperties2KHR
ptr DisplayPlaneProperties2KHR
poked = Ptr DisplayPlaneProperties2KHR
-> DisplayPlaneProperties2KHR -> IO () -> IO ()
forall b.
Ptr DisplayPlaneProperties2KHR
-> DisplayPlaneProperties2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneProperties2KHR
ptr DisplayPlaneProperties2KHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DisplayPlaneProperties2KHR where
zero :: DisplayPlaneProperties2KHR
zero = DisplayPlanePropertiesKHR -> DisplayPlaneProperties2KHR
DisplayPlaneProperties2KHR
DisplayPlanePropertiesKHR
forall a. Zero a => a
zero
data DisplayModeProperties2KHR (es :: [Type]) = DisplayModeProperties2KHR
{
forall (es :: [*]). DisplayModeProperties2KHR es -> Chain es
next :: Chain es
,
forall (es :: [*]).
DisplayModeProperties2KHR es -> DisplayModePropertiesKHR
displayModeProperties :: DisplayModePropertiesKHR
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DisplayModeProperties2KHR (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (DisplayModeProperties2KHR es)
instance Extensible DisplayModeProperties2KHR where
extensibleTypeName :: String
extensibleTypeName = String
"DisplayModeProperties2KHR"
setNext :: forall (ds :: [*]) (es :: [*]).
DisplayModeProperties2KHR ds
-> Chain es -> DisplayModeProperties2KHR es
setNext DisplayModeProperties2KHR{Chain ds
DisplayModePropertiesKHR
next :: forall (es :: [*]). DisplayModeProperties2KHR es -> Chain es
displayModeProperties :: forall (es :: [*]).
DisplayModeProperties2KHR es -> DisplayModePropertiesKHR
next :: Chain ds
displayModeProperties :: DisplayModePropertiesKHR
..} Chain es
next' = DisplayModeProperties2KHR{next :: Chain es
next = Chain es
next', DisplayModePropertiesKHR
displayModeProperties :: DisplayModePropertiesKHR
displayModeProperties :: DisplayModePropertiesKHR
..}
getNext :: forall (es :: [*]). DisplayModeProperties2KHR es -> Chain es
getNext DisplayModeProperties2KHR{Chain es
DisplayModePropertiesKHR
next :: forall (es :: [*]). DisplayModeProperties2KHR es -> Chain es
displayModeProperties :: forall (es :: [*]).
DisplayModeProperties2KHR es -> DisplayModePropertiesKHR
next :: Chain es
displayModeProperties :: DisplayModePropertiesKHR
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends DisplayModeProperties2KHR e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends DisplayModeProperties2KHR e => b) -> Maybe b
extends proxy e
_ Extends DisplayModeProperties2KHR e => b
f
| Just e :~: DisplayModeStereoPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @DisplayModeStereoPropertiesNV = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends DisplayModeProperties2KHR e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss DisplayModeProperties2KHR es
, PokeChain es ) => ToCStruct (DisplayModeProperties2KHR es) where
withCStruct :: forall b.
DisplayModeProperties2KHR es
-> (Ptr (DisplayModeProperties2KHR es) -> IO b) -> IO b
withCStruct DisplayModeProperties2KHR es
x Ptr (DisplayModeProperties2KHR es) -> IO b
f = Int -> (Ptr (DisplayModeProperties2KHR es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr (DisplayModeProperties2KHR es) -> IO b) -> IO b)
-> (Ptr (DisplayModeProperties2KHR es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (DisplayModeProperties2KHR es)
p -> Ptr (DisplayModeProperties2KHR es)
-> DisplayModeProperties2KHR es -> IO b -> IO b
forall b.
Ptr (DisplayModeProperties2KHR es)
-> DisplayModeProperties2KHR es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (DisplayModeProperties2KHR es)
p DisplayModeProperties2KHR es
x (Ptr (DisplayModeProperties2KHR es) -> IO b
f Ptr (DisplayModeProperties2KHR es)
p)
pokeCStruct :: forall b.
Ptr (DisplayModeProperties2KHR es)
-> DisplayModeProperties2KHR es -> IO b -> IO b
pokeCStruct Ptr (DisplayModeProperties2KHR es)
p DisplayModeProperties2KHR{Chain es
DisplayModePropertiesKHR
next :: forall (es :: [*]). DisplayModeProperties2KHR es -> Chain es
displayModeProperties :: forall (es :: [*]).
DisplayModeProperties2KHR es -> DisplayModePropertiesKHR
next :: Chain es
displayModeProperties :: DisplayModePropertiesKHR
..} 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 (DisplayModeProperties2KHR es)
p Ptr (DisplayModeProperties2KHR es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR)
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
forall a. Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
lift $ poke ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR)) (displayModeProperties)
lift $ f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (DisplayModeProperties2KHR es) -> IO b -> IO b
pokeZeroCStruct Ptr (DisplayModeProperties2KHR es)
p 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 (DisplayModeProperties2KHR es)
p Ptr (DisplayModeProperties2KHR es) -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR)
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
lift $ poke ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR)) (zero)
lift $ f
instance ( Extendss DisplayModeProperties2KHR es
, PeekChain es ) => FromCStruct (DisplayModeProperties2KHR es) where
peekCStruct :: Ptr (DisplayModeProperties2KHR es)
-> IO (DisplayModeProperties2KHR es)
peekCStruct Ptr (DisplayModeProperties2KHR es)
p = do
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (DisplayModeProperties2KHR es)
p Ptr (DisplayModeProperties2KHR es) -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
next <- peekChain (castPtr pNext)
displayModeProperties <- peekCStruct @DisplayModePropertiesKHR ((p `plusPtr` 16 :: Ptr DisplayModePropertiesKHR))
pure $ DisplayModeProperties2KHR
next displayModeProperties
instance es ~ '[] => Zero (DisplayModeProperties2KHR es) where
zero :: DisplayModeProperties2KHR es
zero = Chain es
-> DisplayModePropertiesKHR -> DisplayModeProperties2KHR es
forall (es :: [*]).
Chain es
-> DisplayModePropertiesKHR -> DisplayModeProperties2KHR es
DisplayModeProperties2KHR
()
DisplayModePropertiesKHR
forall a. Zero a => a
zero
data DisplayPlaneInfo2KHR = DisplayPlaneInfo2KHR
{
DisplayPlaneInfo2KHR -> DisplayModeKHR
mode :: DisplayModeKHR
,
DisplayPlaneInfo2KHR -> Word32
planeIndex :: Word32
}
deriving (Typeable, DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool
(DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool)
-> (DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool)
-> Eq DisplayPlaneInfo2KHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool
== :: DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool
$c/= :: DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool
/= :: DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DisplayPlaneInfo2KHR)
#endif
deriving instance Show DisplayPlaneInfo2KHR
instance ToCStruct DisplayPlaneInfo2KHR where
withCStruct :: forall b.
DisplayPlaneInfo2KHR -> (Ptr DisplayPlaneInfo2KHR -> IO b) -> IO b
withCStruct DisplayPlaneInfo2KHR
x Ptr DisplayPlaneInfo2KHR -> IO b
f = Int -> (Ptr DisplayPlaneInfo2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr DisplayPlaneInfo2KHR -> IO b) -> IO b)
-> (Ptr DisplayPlaneInfo2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DisplayPlaneInfo2KHR
p -> Ptr DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> IO b -> IO b
forall b.
Ptr DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneInfo2KHR
p DisplayPlaneInfo2KHR
x (Ptr DisplayPlaneInfo2KHR -> IO b
f Ptr DisplayPlaneInfo2KHR
p)
pokeCStruct :: forall b.
Ptr DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneInfo2KHR
p DisplayPlaneInfo2KHR{Word32
DisplayModeKHR
mode :: DisplayPlaneInfo2KHR -> DisplayModeKHR
planeIndex :: DisplayPlaneInfo2KHR -> Word32
mode :: DisplayModeKHR
planeIndex :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DisplayModeKHR -> DisplayModeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr DisplayModeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayModeKHR)) (DisplayModeKHR
mode)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
planeIndex)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DisplayPlaneInfo2KHR -> IO b -> IO b
pokeZeroCStruct Ptr DisplayPlaneInfo2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DisplayModeKHR -> DisplayModeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr DisplayModeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayModeKHR)) (DisplayModeKHR
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> 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 DisplayPlaneInfo2KHR where
peekCStruct :: Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneInfo2KHR
peekCStruct Ptr DisplayPlaneInfo2KHR
p = do
mode <- forall a. Storable a => Ptr a -> IO a
peek @DisplayModeKHR ((Ptr DisplayPlaneInfo2KHR
p Ptr DisplayPlaneInfo2KHR -> Int -> Ptr DisplayModeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayModeKHR))
planeIndex <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
pure $ DisplayPlaneInfo2KHR
mode planeIndex
instance Storable DisplayPlaneInfo2KHR where
sizeOf :: DisplayPlaneInfo2KHR -> Int
sizeOf ~DisplayPlaneInfo2KHR
_ = Int
32
alignment :: DisplayPlaneInfo2KHR -> Int
alignment ~DisplayPlaneInfo2KHR
_ = Int
8
peek :: Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneInfo2KHR
peek = Ptr DisplayPlaneInfo2KHR -> IO DisplayPlaneInfo2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> IO ()
poke Ptr DisplayPlaneInfo2KHR
ptr DisplayPlaneInfo2KHR
poked = Ptr DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> IO () -> IO ()
forall b.
Ptr DisplayPlaneInfo2KHR -> DisplayPlaneInfo2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneInfo2KHR
ptr DisplayPlaneInfo2KHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DisplayPlaneInfo2KHR where
zero :: DisplayPlaneInfo2KHR
zero = DisplayModeKHR -> Word32 -> DisplayPlaneInfo2KHR
DisplayPlaneInfo2KHR
DisplayModeKHR
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data DisplayPlaneCapabilities2KHR = DisplayPlaneCapabilities2KHR
{
DisplayPlaneCapabilities2KHR -> DisplayPlaneCapabilitiesKHR
capabilities :: DisplayPlaneCapabilitiesKHR }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DisplayPlaneCapabilities2KHR)
#endif
deriving instance Show DisplayPlaneCapabilities2KHR
instance ToCStruct DisplayPlaneCapabilities2KHR where
withCStruct :: forall b.
DisplayPlaneCapabilities2KHR
-> (Ptr DisplayPlaneCapabilities2KHR -> IO b) -> IO b
withCStruct DisplayPlaneCapabilities2KHR
x Ptr DisplayPlaneCapabilities2KHR -> IO b
f = Int -> (Ptr DisplayPlaneCapabilities2KHR -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
88 ((Ptr DisplayPlaneCapabilities2KHR -> IO b) -> IO b)
-> (Ptr DisplayPlaneCapabilities2KHR -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DisplayPlaneCapabilities2KHR
p -> Ptr DisplayPlaneCapabilities2KHR
-> DisplayPlaneCapabilities2KHR -> IO b -> IO b
forall b.
Ptr DisplayPlaneCapabilities2KHR
-> DisplayPlaneCapabilities2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneCapabilities2KHR
p DisplayPlaneCapabilities2KHR
x (Ptr DisplayPlaneCapabilities2KHR -> IO b
f Ptr DisplayPlaneCapabilities2KHR
p)
pokeCStruct :: forall b.
Ptr DisplayPlaneCapabilities2KHR
-> DisplayPlaneCapabilities2KHR -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneCapabilities2KHR
p DisplayPlaneCapabilities2KHR{DisplayPlaneCapabilitiesKHR
capabilities :: DisplayPlaneCapabilities2KHR -> DisplayPlaneCapabilitiesKHR
capabilities :: DisplayPlaneCapabilitiesKHR
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DisplayPlaneCapabilitiesKHR
-> DisplayPlaneCapabilitiesKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR
-> Int -> Ptr DisplayPlaneCapabilitiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPlaneCapabilitiesKHR)) (DisplayPlaneCapabilitiesKHR
capabilities)
IO b
f
cStructSize :: Int
cStructSize = Int
88
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DisplayPlaneCapabilities2KHR -> IO b -> IO b
pokeZeroCStruct Ptr DisplayPlaneCapabilities2KHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr DisplayPlaneCapabilitiesKHR
-> DisplayPlaneCapabilitiesKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR
-> Int -> Ptr DisplayPlaneCapabilitiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPlaneCapabilitiesKHR)) (DisplayPlaneCapabilitiesKHR
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct DisplayPlaneCapabilities2KHR where
peekCStruct :: Ptr DisplayPlaneCapabilities2KHR -> IO DisplayPlaneCapabilities2KHR
peekCStruct Ptr DisplayPlaneCapabilities2KHR
p = do
capabilities <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @DisplayPlaneCapabilitiesKHR ((Ptr DisplayPlaneCapabilities2KHR
p Ptr DisplayPlaneCapabilities2KHR
-> Int -> Ptr DisplayPlaneCapabilitiesKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DisplayPlaneCapabilitiesKHR))
pure $ DisplayPlaneCapabilities2KHR
capabilities
instance Storable DisplayPlaneCapabilities2KHR where
sizeOf :: DisplayPlaneCapabilities2KHR -> Int
sizeOf ~DisplayPlaneCapabilities2KHR
_ = Int
88
alignment :: DisplayPlaneCapabilities2KHR -> Int
alignment ~DisplayPlaneCapabilities2KHR
_ = Int
8
peek :: Ptr DisplayPlaneCapabilities2KHR -> IO DisplayPlaneCapabilities2KHR
peek = Ptr DisplayPlaneCapabilities2KHR -> IO DisplayPlaneCapabilities2KHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DisplayPlaneCapabilities2KHR
-> DisplayPlaneCapabilities2KHR -> IO ()
poke Ptr DisplayPlaneCapabilities2KHR
ptr DisplayPlaneCapabilities2KHR
poked = Ptr DisplayPlaneCapabilities2KHR
-> DisplayPlaneCapabilities2KHR -> IO () -> IO ()
forall b.
Ptr DisplayPlaneCapabilities2KHR
-> DisplayPlaneCapabilities2KHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayPlaneCapabilities2KHR
ptr DisplayPlaneCapabilities2KHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DisplayPlaneCapabilities2KHR where
zero :: DisplayPlaneCapabilities2KHR
zero = DisplayPlaneCapabilitiesKHR -> DisplayPlaneCapabilities2KHR
DisplayPlaneCapabilities2KHR
DisplayPlaneCapabilitiesKHR
forall a. Zero a => a
zero
type KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION = 1
pattern KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION :: forall a. Integral a => a
KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION = 1
type KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_display_properties2"
pattern KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_display_properties2"