{-# language CPP #-}
module Vulkan.Extensions.VK_AMD_display_native_hdr ( setLocalDimmingAMD
, DisplayNativeHdrSurfaceCapabilitiesAMD(..)
, SwapchainDisplayNativeHdrCreateInfoAMD(..)
, AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION
, pattern AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION
, AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME
, pattern AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME
, SwapchainKHR(..)
, ColorSpaceKHR(..)
) where
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import GHC.IO (throwIO)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
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.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.FundamentalTypes (Bool32(..))
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Device(Device))
import Vulkan.Dynamic (DeviceCmds(pVkSetLocalDimmingAMD))
import Vulkan.Core10.Handles (Device_T)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Extensions.Handles (SwapchainKHR)
import Vulkan.Extensions.Handles (SwapchainKHR(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD))
import Vulkan.Extensions.VK_KHR_surface (ColorSpaceKHR(..))
import Vulkan.Extensions.Handles (SwapchainKHR(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkSetLocalDimmingAMD
:: FunPtr (Ptr Device_T -> SwapchainKHR -> Bool32 -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Bool32 -> IO ()
setLocalDimmingAMD :: forall io
. (MonadIO io)
=>
Device
->
SwapchainKHR
->
("localDimmingEnable" ::: Bool)
-> io ()
setLocalDimmingAMD :: Device -> SwapchainKHR -> ("localDimmingEnable" ::: Bool) -> io ()
setLocalDimmingAMD Device
device SwapchainKHR
swapChain "localDimmingEnable" ::: Bool
localDimmingEnable = 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 vkSetLocalDimmingAMDPtr :: FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
vkSetLocalDimmingAMDPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
pVkSetLocalDimmingAMD (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
("localDimmingEnable" ::: Bool) -> IO () -> IO ()
forall (f :: * -> *).
Applicative f =>
("localDimmingEnable" ::: Bool) -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
vkSetLocalDimmingAMDPtr FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
-> FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
-> "localDimmingEnable" ::: Bool
forall a. Eq a => a -> a -> "localDimmingEnable" ::: Bool
/= FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> 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 vkSetLocalDimmingAMD is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkSetLocalDimmingAMD' :: Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ()
vkSetLocalDimmingAMD' = FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
-> Ptr Device_T
-> SwapchainKHR
-> ("localDimmingEnable" ::: Bool32)
-> IO ()
mkVkSetLocalDimmingAMD FunPtr
(Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
vkSetLocalDimmingAMDPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkSetLocalDimmingAMD" (Ptr Device_T
-> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ()
vkSetLocalDimmingAMD' (Device -> Ptr Device_T
deviceHandle (Device
device)) (SwapchainKHR
swapChain) (("localDimmingEnable" ::: Bool) -> "localDimmingEnable" ::: Bool32
boolToBool32 ("localDimmingEnable" ::: Bool
localDimmingEnable)))
() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ()
data DisplayNativeHdrSurfaceCapabilitiesAMD = DisplayNativeHdrSurfaceCapabilitiesAMD
{
DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
localDimmingSupport :: Bool }
deriving (Typeable, DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
(DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool)
-> (DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool)
-> Eq DisplayNativeHdrSurfaceCapabilitiesAMD
forall a.
(a -> a -> "localDimmingEnable" ::: Bool)
-> (a -> a -> "localDimmingEnable" ::: Bool) -> Eq a
/= :: DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
$c/= :: DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
== :: DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
$c== :: DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DisplayNativeHdrSurfaceCapabilitiesAMD)
#endif
deriving instance Show DisplayNativeHdrSurfaceCapabilitiesAMD
instance ToCStruct DisplayNativeHdrSurfaceCapabilitiesAMD where
withCStruct :: DisplayNativeHdrSurfaceCapabilitiesAMD
-> (Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b) -> IO b
withCStruct DisplayNativeHdrSurfaceCapabilitiesAMD
x Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b
f = Int -> (Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b) -> IO b)
-> (Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p -> Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p DisplayNativeHdrSurfaceCapabilitiesAMD
x (Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b
f Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p)
pokeCStruct :: Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b -> IO b
pokeCStruct Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p DisplayNativeHdrSurfaceCapabilitiesAMD{"localDimmingEnable" ::: Bool
localDimmingSupport :: "localDimmingEnable" ::: Bool
$sel:localDimmingSupport:DisplayNativeHdrSurfaceCapabilitiesAMD :: DisplayNativeHdrSurfaceCapabilitiesAMD
-> "localDimmingEnable" ::: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("localDimmingEnable" ::: Bool32)
-> ("localDimmingEnable" ::: Bool32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> Int -> Ptr ("localDimmingEnable" ::: Bool32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (("localDimmingEnable" ::: Bool) -> "localDimmingEnable" ::: Bool32
boolToBool32 ("localDimmingEnable" ::: Bool
localDimmingSupport))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> IO b -> IO b
pokeZeroCStruct Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("localDimmingEnable" ::: Bool32)
-> ("localDimmingEnable" ::: Bool32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> Int -> Ptr ("localDimmingEnable" ::: Bool32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (("localDimmingEnable" ::: Bool) -> "localDimmingEnable" ::: Bool32
boolToBool32 ("localDimmingEnable" ::: Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct DisplayNativeHdrSurfaceCapabilitiesAMD where
peekCStruct :: Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> IO DisplayNativeHdrSurfaceCapabilitiesAMD
peekCStruct Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p = do
"localDimmingEnable" ::: Bool32
localDimmingSupport <- Ptr ("localDimmingEnable" ::: Bool32)
-> IO ("localDimmingEnable" ::: Bool32)
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
p Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> Int -> Ptr ("localDimmingEnable" ::: Bool32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
DisplayNativeHdrSurfaceCapabilitiesAMD
-> IO DisplayNativeHdrSurfaceCapabilitiesAMD
forall (f :: * -> *) a. Applicative f => a -> f a
pure (DisplayNativeHdrSurfaceCapabilitiesAMD
-> IO DisplayNativeHdrSurfaceCapabilitiesAMD)
-> DisplayNativeHdrSurfaceCapabilitiesAMD
-> IO DisplayNativeHdrSurfaceCapabilitiesAMD
forall a b. (a -> b) -> a -> b
$ ("localDimmingEnable" ::: Bool)
-> DisplayNativeHdrSurfaceCapabilitiesAMD
DisplayNativeHdrSurfaceCapabilitiesAMD
(("localDimmingEnable" ::: Bool32) -> "localDimmingEnable" ::: Bool
bool32ToBool "localDimmingEnable" ::: Bool32
localDimmingSupport)
instance Storable DisplayNativeHdrSurfaceCapabilitiesAMD where
sizeOf :: DisplayNativeHdrSurfaceCapabilitiesAMD -> Int
sizeOf ~DisplayNativeHdrSurfaceCapabilitiesAMD
_ = Int
24
alignment :: DisplayNativeHdrSurfaceCapabilitiesAMD -> Int
alignment ~DisplayNativeHdrSurfaceCapabilitiesAMD
_ = Int
8
peek :: Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> IO DisplayNativeHdrSurfaceCapabilitiesAMD
peek = Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> IO DisplayNativeHdrSurfaceCapabilitiesAMD
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD -> IO ()
poke Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
ptr DisplayNativeHdrSurfaceCapabilitiesAMD
poked = Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
-> DisplayNativeHdrSurfaceCapabilitiesAMD -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DisplayNativeHdrSurfaceCapabilitiesAMD
ptr DisplayNativeHdrSurfaceCapabilitiesAMD
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero DisplayNativeHdrSurfaceCapabilitiesAMD where
zero :: DisplayNativeHdrSurfaceCapabilitiesAMD
zero = ("localDimmingEnable" ::: Bool)
-> DisplayNativeHdrSurfaceCapabilitiesAMD
DisplayNativeHdrSurfaceCapabilitiesAMD
"localDimmingEnable" ::: Bool
forall a. Zero a => a
zero
data SwapchainDisplayNativeHdrCreateInfoAMD = SwapchainDisplayNativeHdrCreateInfoAMD
{
SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
localDimmingEnable :: Bool }
deriving (Typeable, SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
(SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool)
-> (SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool)
-> Eq SwapchainDisplayNativeHdrCreateInfoAMD
forall a.
(a -> a -> "localDimmingEnable" ::: Bool)
-> (a -> a -> "localDimmingEnable" ::: Bool) -> Eq a
/= :: SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
$c/= :: SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
== :: SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
$c== :: SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SwapchainDisplayNativeHdrCreateInfoAMD)
#endif
deriving instance Show SwapchainDisplayNativeHdrCreateInfoAMD
instance ToCStruct SwapchainDisplayNativeHdrCreateInfoAMD where
withCStruct :: SwapchainDisplayNativeHdrCreateInfoAMD
-> (Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b) -> IO b
withCStruct SwapchainDisplayNativeHdrCreateInfoAMD
x Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b
f = Int -> (Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b) -> IO b)
-> (Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p -> Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p SwapchainDisplayNativeHdrCreateInfoAMD
x (Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b
f Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p)
pokeCStruct :: Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD -> IO b -> IO b
pokeCStruct Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p SwapchainDisplayNativeHdrCreateInfoAMD{"localDimmingEnable" ::: Bool
localDimmingEnable :: "localDimmingEnable" ::: Bool
$sel:localDimmingEnable:SwapchainDisplayNativeHdrCreateInfoAMD :: SwapchainDisplayNativeHdrCreateInfoAMD
-> "localDimmingEnable" ::: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("localDimmingEnable" ::: Bool32)
-> ("localDimmingEnable" ::: Bool32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> Int -> Ptr ("localDimmingEnable" ::: Bool32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (("localDimmingEnable" ::: Bool) -> "localDimmingEnable" ::: Bool32
boolToBool32 ("localDimmingEnable" ::: Bool
localDimmingEnable))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> IO b -> IO b
pokeZeroCStruct Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("localDimmingEnable" ::: Bool32)
-> ("localDimmingEnable" ::: Bool32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> Int -> Ptr ("localDimmingEnable" ::: Bool32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (("localDimmingEnable" ::: Bool) -> "localDimmingEnable" ::: Bool32
boolToBool32 ("localDimmingEnable" ::: Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct SwapchainDisplayNativeHdrCreateInfoAMD where
peekCStruct :: Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> IO SwapchainDisplayNativeHdrCreateInfoAMD
peekCStruct Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p = do
"localDimmingEnable" ::: Bool32
localDimmingEnable <- Ptr ("localDimmingEnable" ::: Bool32)
-> IO ("localDimmingEnable" ::: Bool32)
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr SwapchainDisplayNativeHdrCreateInfoAMD
p Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> Int -> Ptr ("localDimmingEnable" ::: Bool32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
SwapchainDisplayNativeHdrCreateInfoAMD
-> IO SwapchainDisplayNativeHdrCreateInfoAMD
forall (f :: * -> *) a. Applicative f => a -> f a
pure (SwapchainDisplayNativeHdrCreateInfoAMD
-> IO SwapchainDisplayNativeHdrCreateInfoAMD)
-> SwapchainDisplayNativeHdrCreateInfoAMD
-> IO SwapchainDisplayNativeHdrCreateInfoAMD
forall a b. (a -> b) -> a -> b
$ ("localDimmingEnable" ::: Bool)
-> SwapchainDisplayNativeHdrCreateInfoAMD
SwapchainDisplayNativeHdrCreateInfoAMD
(("localDimmingEnable" ::: Bool32) -> "localDimmingEnable" ::: Bool
bool32ToBool "localDimmingEnable" ::: Bool32
localDimmingEnable)
instance Storable SwapchainDisplayNativeHdrCreateInfoAMD where
sizeOf :: SwapchainDisplayNativeHdrCreateInfoAMD -> Int
sizeOf ~SwapchainDisplayNativeHdrCreateInfoAMD
_ = Int
24
alignment :: SwapchainDisplayNativeHdrCreateInfoAMD -> Int
alignment ~SwapchainDisplayNativeHdrCreateInfoAMD
_ = Int
8
peek :: Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> IO SwapchainDisplayNativeHdrCreateInfoAMD
peek = Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> IO SwapchainDisplayNativeHdrCreateInfoAMD
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD -> IO ()
poke Ptr SwapchainDisplayNativeHdrCreateInfoAMD
ptr SwapchainDisplayNativeHdrCreateInfoAMD
poked = Ptr SwapchainDisplayNativeHdrCreateInfoAMD
-> SwapchainDisplayNativeHdrCreateInfoAMD -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SwapchainDisplayNativeHdrCreateInfoAMD
ptr SwapchainDisplayNativeHdrCreateInfoAMD
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero SwapchainDisplayNativeHdrCreateInfoAMD where
zero :: SwapchainDisplayNativeHdrCreateInfoAMD
zero = ("localDimmingEnable" ::: Bool)
-> SwapchainDisplayNativeHdrCreateInfoAMD
SwapchainDisplayNativeHdrCreateInfoAMD
"localDimmingEnable" ::: Bool
forall a. Zero a => a
zero
type AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION = 1
pattern AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION :: forall a . Integral a => a
pattern $bAMD_DISPLAY_NATIVE_HDR_SPEC_VERSION :: a
$mAMD_DISPLAY_NATIVE_HDR_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION = 1
type AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME = "VK_AMD_display_native_hdr"
pattern AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bAMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: a
$mAMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME = "VK_AMD_display_native_hdr"