{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.HdrMetadataEXT
       (VkHdrMetadataEXT(..)) where
import           Foreign.Storable                         (Storable (..))
import           GHC.Base                                 (Addr#, ByteArray#,
                                                           byteArrayContents#,
                                                           plusAddr#)
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import           Graphics.Vulkan.Types.Struct.XYColorEXT  (VkXYColorEXT)
import           System.IO.Unsafe                         (unsafeDupablePerformIO)

-- | > typedef struct VkHdrMetadataEXT {
--   >     VkStructureType sType;
--   >     const void*    pNext;
--   >     VkXYColorEXT   displayPrimaryRed;
--   >     VkXYColorEXT   displayPrimaryGreen;
--   >     VkXYColorEXT   displayPrimaryBlue;
--   >     VkXYColorEXT   whitePoint;
--   >     float          maxLuminance;
--   >     float          minLuminance;
--   >     float          maxContentLightLevel;
--   >     float          maxFrameAverageLightLevel;
--   > } VkHdrMetadataEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkHdrMetadataEXT VkHdrMetadataEXT registry at www.khronos.org>
data VkHdrMetadataEXT = VkHdrMetadataEXT# Addr# ByteArray#

instance Eq VkHdrMetadataEXT where
        (VkHdrMetadataEXT# Addr#
a ByteArray#
_) == :: VkHdrMetadataEXT -> VkHdrMetadataEXT -> Bool
== x :: VkHdrMetadataEXT
x@(VkHdrMetadataEXT# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkHdrMetadataEXT -> Int
forall a. Storable a => a -> Int
sizeOf VkHdrMetadataEXT
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkHdrMetadataEXT where
        (VkHdrMetadataEXT# Addr#
a ByteArray#
_) compare :: VkHdrMetadataEXT -> VkHdrMetadataEXT -> Ordering
`compare` x :: VkHdrMetadataEXT
x@(VkHdrMetadataEXT# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkHdrMetadataEXT -> Int
forall a. Storable a => a -> Int
sizeOf VkHdrMetadataEXT
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkHdrMetadataEXT where
        sizeOf :: VkHdrMetadataEXT -> Int
sizeOf ~VkHdrMetadataEXT
_ = (Int
64)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkHdrMetadataEXT -> Int
alignment ~VkHdrMetadataEXT
_ = Int
8
{-# LINE 55 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkHdrMetadataEXT -> IO VkHdrMetadataEXT
peek = Ptr VkHdrMetadataEXT -> IO VkHdrMetadataEXT
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkHdrMetadataEXT -> VkHdrMetadataEXT -> IO ()
poke = Ptr VkHdrMetadataEXT -> VkHdrMetadataEXT -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkHdrMetadataEXT where
        unsafeAddr :: VkHdrMetadataEXT -> Addr#
unsafeAddr (VkHdrMetadataEXT# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkHdrMetadataEXT -> ByteArray#
unsafeByteArray (VkHdrMetadataEXT# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkHdrMetadataEXT
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkHdrMetadataEXT
VkHdrMetadataEXT# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off) ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkHdrMetadataEXT where
        type StructFields VkHdrMetadataEXT =
             '["sType", "pNext", "displayPrimaryRed", "displayPrimaryGreen", -- ' closing tick for hsc2hs
               "displayPrimaryBlue", "whitePoint", "maxLuminance", "minLuminance",
               "maxContentLightLevel", "maxFrameAverageLightLevel"]
        type CUnionType VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkHdrMetadataEXT = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "sType" VkHdrMetadataEXT
         where
        type FieldType "sType" VkHdrMetadataEXT = VkStructureType
        type FieldOptional "sType" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkHdrMetadataEXT =
             (0)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "sType" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "sType" VkHdrMetadataEXT
         where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "sType" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
0))
{-# LINE 105 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT -> IO (FieldType "sType" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
0)
{-# LINE 109 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "sType" VkHdrMetadataEXT
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT -> FieldType "sType" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
0)
{-# LINE 115 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-} HasField "pNext" VkHdrMetadataEXT
         where
        type FieldType "pNext" VkHdrMetadataEXT = Ptr Void
        type FieldOptional "pNext" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkHdrMetadataEXT =
             (8)
{-# LINE 122 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "pNext" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
8)
{-# LINE 129 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "pNext" VkHdrMetadataEXT
         where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "pNext" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
8))
{-# LINE 136 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT -> IO (FieldType "pNext" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
8)
{-# LINE 140 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "pNext" VkHdrMetadataEXT
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT -> FieldType "pNext" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
8)
{-# LINE 146 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayPrimaryRed" VkHdrMetadataEXT where
        type FieldType "displayPrimaryRed" VkHdrMetadataEXT = VkXYColorEXT
        type FieldOptional "displayPrimaryRed" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayPrimaryRed" VkHdrMetadataEXT =
             (16)
{-# LINE 153 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "displayPrimaryRed" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 161 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayPrimaryRed" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "displayPrimaryRed" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO VkXYColorEXT -> VkXYColorEXT
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
16))
{-# LINE 168 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "displayPrimaryRed" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
16)
{-# LINE 172 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayPrimaryRed" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "displayPrimaryRed" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> VkXYColorEXT -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
16)
{-# LINE 178 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayPrimaryGreen" VkHdrMetadataEXT where
        type FieldType "displayPrimaryGreen" VkHdrMetadataEXT =
             VkXYColorEXT
        type FieldOptional "displayPrimaryGreen" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayPrimaryGreen" VkHdrMetadataEXT =
             (24)
{-# LINE 186 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "displayPrimaryGreen" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
24)
{-# LINE 194 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayPrimaryGreen" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT
-> FieldType "displayPrimaryGreen" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO VkXYColorEXT -> VkXYColorEXT
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
24))
{-# LINE 201 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "displayPrimaryGreen" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
24)
{-# LINE 205 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayPrimaryGreen" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "displayPrimaryGreen" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> VkXYColorEXT -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
24)
{-# LINE 211 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayPrimaryBlue" VkHdrMetadataEXT where
        type FieldType "displayPrimaryBlue" VkHdrMetadataEXT = VkXYColorEXT
        type FieldOptional "displayPrimaryBlue" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayPrimaryBlue" VkHdrMetadataEXT =
             (32)
{-# LINE 218 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "displayPrimaryBlue" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
32)
{-# LINE 226 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayPrimaryBlue" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "displayPrimaryBlue" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO VkXYColorEXT -> VkXYColorEXT
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
32))
{-# LINE 233 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "displayPrimaryBlue" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
32)
{-# LINE 237 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayPrimaryBlue" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "displayPrimaryBlue" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> VkXYColorEXT -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
32)
{-# LINE 243 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-} HasField "whitePoint" VkHdrMetadataEXT
         where
        type FieldType "whitePoint" VkHdrMetadataEXT = VkXYColorEXT
        type FieldOptional "whitePoint" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "whitePoint" VkHdrMetadataEXT =
             (40)
{-# LINE 250 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "whitePoint" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
40)
{-# LINE 257 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "whitePoint" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "whitePoint" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO VkXYColorEXT -> VkXYColorEXT
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
40))
{-# LINE 264 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "whitePoint" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO VkXYColorEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
40)
{-# LINE 268 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "whitePoint" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "whitePoint" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> VkXYColorEXT -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
40)
{-# LINE 274 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxLuminance" VkHdrMetadataEXT where
        type FieldType "maxLuminance" VkHdrMetadataEXT =
             Float
{-# LINE 279 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldOptional "maxLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "maxLuminance" VkHdrMetadataEXT =
             (48)
{-# LINE 282 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "maxLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
48)
{-# LINE 289 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxLuminance" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "maxLuminance" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO Float -> Float
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
48))
{-# LINE 296 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "maxLuminance" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
48)
{-# LINE 300 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxLuminance" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "maxLuminance" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> Float -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
48)
{-# LINE 306 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "minLuminance" VkHdrMetadataEXT where
        type FieldType "minLuminance" VkHdrMetadataEXT =
             Float
{-# LINE 311 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldOptional "minLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "minLuminance" VkHdrMetadataEXT =
             (52)
{-# LINE 314 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "minLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
52)
{-# LINE 321 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "minLuminance" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT -> FieldType "minLuminance" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO Float -> Float
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
52))
{-# LINE 328 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "minLuminance" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
52)
{-# LINE 332 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "minLuminance" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "minLuminance" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> Float -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
52)
{-# LINE 338 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxContentLightLevel" VkHdrMetadataEXT where
        type FieldType "maxContentLightLevel" VkHdrMetadataEXT =
             Float
{-# LINE 343 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldOptional "maxContentLightLevel" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "maxContentLightLevel" VkHdrMetadataEXT =
             (56)
{-# LINE 346 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "maxContentLightLevel" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
56)
{-# LINE 354 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxContentLightLevel" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT
-> FieldType "maxContentLightLevel" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO Float -> Float
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
56))
{-# LINE 361 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "maxContentLightLevel" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
56)
{-# LINE 365 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxContentLightLevel" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "maxContentLightLevel" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> Float -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
56)
{-# LINE 371 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
        type FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT =
             Float
{-# LINE 376 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldOptional "maxFrameAverageLightLevel" VkHdrMetadataEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxFrameAverageLightLevel" VkHdrMetadataEXT =
             (60)
{-# LINE 380 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}
        type FieldIsArray "maxFrameAverageLightLevel" VkHdrMetadataEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
60)
{-# LINE 389 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
        {-# NOINLINE getField #-}
        getField :: VkHdrMetadataEXT
-> FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT
getField VkHdrMetadataEXT
x
          = IO Float -> Float
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkHdrMetadataEXT -> Ptr VkHdrMetadataEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkHdrMetadataEXT
x) (Int
60))
{-# LINE 396 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkHdrMetadataEXT
-> IO (FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT)
readField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> IO Float
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkHdrMetadataEXT
p (Int
60)
{-# LINE 400 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
        {-# INLINE writeField #-}
        writeField :: Ptr VkHdrMetadataEXT
-> FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT -> IO ()
writeField Ptr VkHdrMetadataEXT
p
          = Ptr VkHdrMetadataEXT -> Int -> Float -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkHdrMetadataEXT
p (Int
60)
{-# LINE 406 "src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc" #-}

instance Show VkHdrMetadataEXT where
        showsPrec :: Int -> VkHdrMetadataEXT -> ShowS
showsPrec Int
d VkHdrMetadataEXT
x
          = String -> ShowS
showString String
"VkHdrMetadataEXT {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "sType" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "pNext" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"displayPrimaryRed = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkXYColorEXT -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "displayPrimaryRed" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"displayPrimaryRed" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"displayPrimaryGreen = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkXYColorEXT -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT
-> FieldType "displayPrimaryGreen" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"displayPrimaryGreen" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"displayPrimaryBlue = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkXYColorEXT -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "displayPrimaryBlue" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"displayPrimaryBlue" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                            String -> ShowS
showString String
"whitePoint = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkXYColorEXT -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "whitePoint" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"whitePoint" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                  String -> ShowS
showString String
"maxLuminance = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> Float -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "maxLuminance" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"maxLuminance" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                      String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                        String -> ShowS
showString String
"minLuminance = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                          Int -> Float -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkHdrMetadataEXT -> FieldType "minLuminance" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"minLuminance" VkHdrMetadataEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                            String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                              String -> ShowS
showString String
"maxContentLightLevel = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                Int -> Float -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                  (VkHdrMetadataEXT
-> FieldType "maxContentLightLevel" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"maxContentLightLevel"
                                                                     VkHdrMetadataEXT
x)
                                                                  ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                    String -> ShowS
showString
                                                                      String
"maxFrameAverageLightLevel = "
                                                                      ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                      Int -> Float -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                        (VkHdrMetadataEXT
-> FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField
                                                                           @"maxFrameAverageLightLevel"
                                                                           VkHdrMetadataEXT
x)
                                                                        ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'