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

{-# LINE 2 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Display
       (VkDisplayEventInfoEXT(..), VkDisplayModeCreateInfoKHR(..),
        VkDisplayModeParametersKHR(..), VkDisplayModeProperties2KHR(..),
        VkDisplayModePropertiesKHR(..), VkDisplayPlaneCapabilities2KHR(..),
        VkDisplayPlaneCapabilitiesKHR(..), VkDisplayPlaneInfo2KHR(..),
        VkDisplayPlaneProperties2KHR(..), VkDisplayPlanePropertiesKHR(..),
        VkDisplayPowerInfoEXT(..), VkDisplayPresentInfoKHR(..),
        VkDisplayProperties2KHR(..), VkDisplayPropertiesKHR(..),
        VkDisplaySurfaceCreateInfoKHR(..))
       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.BaseTypes          (VkBool32)
import           Graphics.Vulkan.Types.Bitmasks           (VkDisplayModeCreateFlagsKHR,
                                                           VkDisplaySurfaceCreateFlagsKHR)
import           Graphics.Vulkan.Types.Enum.Display       (VkDisplayEventTypeEXT,
                                                           VkDisplayPlaneAlphaFlagBitsKHR,
                                                           VkDisplayPlaneAlphaFlagsKHR,
                                                           VkDisplayPowerStateEXT)
import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import           Graphics.Vulkan.Types.Enum.Surface       (VkSurfaceTransformFlagBitsKHR,
                                                           VkSurfaceTransformFlagsKHR)
import           Graphics.Vulkan.Types.Handles            (VkDisplayKHR,
                                                           VkDisplayModeKHR)
import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset2D)
import           Graphics.Vulkan.Types.Struct.Present     (VkPresentInfoKHR)
import           Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
import           System.IO.Unsafe                         (unsafeDupablePerformIO)

-- | > typedef struct VkDisplayEventInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDisplayEventTypeEXT            displayEvent;
--   > } VkDisplayEventInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayEventInfoEXT VkDisplayEventInfoEXT registry at www.khronos.org>
data VkDisplayEventInfoEXT = VkDisplayEventInfoEXT# Addr#
                                                    ByteArray#

instance Eq VkDisplayEventInfoEXT where
        (VkDisplayEventInfoEXT# a _) == x@(VkDisplayEventInfoEXT# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayEventInfoEXT where
        (VkDisplayEventInfoEXT# a _) `compare`
          x@(VkDisplayEventInfoEXT# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayEventInfoEXT where
        sizeOf ~_ = (24)
{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayEventInfoEXT where
        unsafeAddr (VkDisplayEventInfoEXT# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayEventInfoEXT# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayEventInfoEXT# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayEventInfoEXT where
        type StructFields VkDisplayEventInfoEXT =
             '["sType", "pNext", "displayEvent"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplayEventInfoEXT = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 112 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayEventInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 119 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 123 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayEventInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 129 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayEventInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 154 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayEventInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 160 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayEvent" VkDisplayEventInfoEXT where
        type FieldType "displayEvent" VkDisplayEventInfoEXT =
             VkDisplayEventTypeEXT
        type FieldOptional "displayEvent" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayEvent" VkDisplayEventInfoEXT =
             (16)
{-# LINE 168 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayEvent" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 176 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayEvent" VkDisplayEventInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 183 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 187 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayEvent" VkDisplayEventInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 193 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayEventInfoEXT where
        showsPrec d x
          = showString "VkDisplayEventInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "displayEvent = " .
                            showsPrec d (getField @"displayEvent" x) . showChar '}'

-- | > typedef struct VkDisplayModeCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDisplayModeCreateFlagsKHR      flags;
--   >     VkDisplayModeParametersKHR       parameters;
--   > } VkDisplayModeCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeCreateInfoKHR VkDisplayModeCreateInfoKHR registry at www.khronos.org>
data VkDisplayModeCreateInfoKHR = VkDisplayModeCreateInfoKHR# Addr#
                                                              ByteArray#

instance Eq VkDisplayModeCreateInfoKHR where
        (VkDisplayModeCreateInfoKHR# a _) ==
          x@(VkDisplayModeCreateInfoKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayModeCreateInfoKHR where
        (VkDisplayModeCreateInfoKHR# a _) `compare`
          x@(VkDisplayModeCreateInfoKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayModeCreateInfoKHR where
        sizeOf ~_ = (32)
{-# LINE 232 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 235 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayModeCreateInfoKHR where
        unsafeAddr (VkDisplayModeCreateInfoKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayModeCreateInfoKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayModeCreateInfoKHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayModeCreateInfoKHR where
        type StructFields VkDisplayModeCreateInfoKHR =
             '["sType", "pNext", "flags", "parameters"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplayModeCreateInfoKHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 279 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayModeCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 286 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 290 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayModeCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 296 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 311 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayModeCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 318 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 322 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayModeCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 328 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "flags" VkDisplayModeCreateInfoKHR where
        type FieldType "flags" VkDisplayModeCreateInfoKHR =
             VkDisplayModeCreateFlagsKHR
        type FieldOptional "flags" VkDisplayModeCreateInfoKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "flags" VkDisplayModeCreateInfoKHR =
             (16)
{-# LINE 336 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "flags" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 344 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkDisplayModeCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 351 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 355 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkDisplayModeCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 361 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "parameters" VkDisplayModeCreateInfoKHR where
        type FieldType "parameters" VkDisplayModeCreateInfoKHR =
             VkDisplayModeParametersKHR
        type FieldOptional "parameters" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "parameters" VkDisplayModeCreateInfoKHR =
             (20)
{-# LINE 369 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "parameters" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (20)
{-# LINE 377 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "parameters" VkDisplayModeCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (20))
{-# LINE 384 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (20)
{-# LINE 388 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "parameters" VkDisplayModeCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (20)
{-# LINE 394 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayModeCreateInfoKHR where
        showsPrec d x
          = showString "VkDisplayModeCreateInfoKHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "flags = " .
                            showsPrec d (getField @"flags" x) .
                              showString ", " .
                                showString "parameters = " .
                                  showsPrec d (getField @"parameters" x) . showChar '}'

-- | > typedef struct VkDisplayModeParametersKHR {
--   >     VkExtent2D                       visibleRegion;
--   >     uint32_t                         refreshRate;
--   > } VkDisplayModeParametersKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeParametersKHR VkDisplayModeParametersKHR registry at www.khronos.org>
data VkDisplayModeParametersKHR = VkDisplayModeParametersKHR# Addr#
                                                              ByteArray#

instance Eq VkDisplayModeParametersKHR where
        (VkDisplayModeParametersKHR# a _) ==
          x@(VkDisplayModeParametersKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayModeParametersKHR where
        (VkDisplayModeParametersKHR# a _) `compare`
          x@(VkDisplayModeParametersKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayModeParametersKHR where
        sizeOf ~_ = (12)
{-# LINE 434 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (4)
{-# LINE 437 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayModeParametersKHR where
        unsafeAddr (VkDisplayModeParametersKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayModeParametersKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayModeParametersKHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayModeParametersKHR where
        type StructFields VkDisplayModeParametersKHR =
             '["visibleRegion", "refreshRate"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplayModeParametersKHR = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "visibleRegion" VkDisplayModeParametersKHR where
        type FieldType "visibleRegion" VkDisplayModeParametersKHR =
             VkExtent2D
        type FieldOptional "visibleRegion" VkDisplayModeParametersKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "visibleRegion" VkDisplayModeParametersKHR =
             (0)
{-# LINE 475 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "visibleRegion" VkDisplayModeParametersKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 484 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "visibleRegion" VkDisplayModeParametersKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 491 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 495 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "visibleRegion" VkDisplayModeParametersKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 501 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "refreshRate" VkDisplayModeParametersKHR where
        type FieldType "refreshRate" VkDisplayModeParametersKHR = Word32
        type FieldOptional "refreshRate" VkDisplayModeParametersKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "refreshRate" VkDisplayModeParametersKHR =
             (8)
{-# LINE 509 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "refreshRate" VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 517 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "refreshRate" VkDisplayModeParametersKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 524 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 528 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "refreshRate" VkDisplayModeParametersKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 534 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayModeParametersKHR where
        showsPrec d x
          = showString "VkDisplayModeParametersKHR {" .
              showString "visibleRegion = " .
                showsPrec d (getField @"visibleRegion" x) .
                  showString ", " .
                    showString "refreshRate = " .
                      showsPrec d (getField @"refreshRate" x) . showChar '}'

-- | > typedef struct VkDisplayModeProperties2KHR {
--   >     VkStructureType sType;
--   >     void* pNext;
--   >     VkDisplayModePropertiesKHR displayModeProperties;
--   > } VkDisplayModeProperties2KHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeProperties2KHR VkDisplayModeProperties2KHR registry at www.khronos.org>
data VkDisplayModeProperties2KHR = VkDisplayModeProperties2KHR# Addr#
                                                                ByteArray#

instance Eq VkDisplayModeProperties2KHR where
        (VkDisplayModeProperties2KHR# a _) ==
          x@(VkDisplayModeProperties2KHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayModeProperties2KHR where
        (VkDisplayModeProperties2KHR# a _) `compare`
          x@(VkDisplayModeProperties2KHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayModeProperties2KHR where
        sizeOf ~_ = (40)
{-# LINE 569 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 572 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayModeProperties2KHR where
        unsafeAddr (VkDisplayModeProperties2KHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayModeProperties2KHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayModeProperties2KHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayModeProperties2KHR where
        type StructFields VkDisplayModeProperties2KHR =
             '["sType", "pNext", "displayModeProperties"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayModeProperties2KHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayModeProperties2KHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayModeProperties2KHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 617 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayModeProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 624 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 628 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayModeProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 634 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 649 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayModeProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 656 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 660 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayModeProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 666 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayModeProperties" VkDisplayModeProperties2KHR where
        type FieldType "displayModeProperties" VkDisplayModeProperties2KHR
             = VkDisplayModePropertiesKHR
        type FieldOptional "displayModeProperties"
               VkDisplayModeProperties2KHR
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayModeProperties"
               VkDisplayModeProperties2KHR
             =
             (16)
{-# LINE 678 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayModeProperties"
               VkDisplayModeProperties2KHR
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 688 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayModeProperties" VkDisplayModeProperties2KHR
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 696 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 700 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayModeProperties" VkDisplayModeProperties2KHR
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 707 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayModeProperties2KHR where
        showsPrec d x
          = showString "VkDisplayModeProperties2KHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "displayModeProperties = " .
                            showsPrec d (getField @"displayModeProperties" x) . showChar '}'

-- | > typedef struct VkDisplayModePropertiesKHR {
--   >     VkDisplayModeKHR                 displayMode;
--   >     VkDisplayModeParametersKHR       parameters;
--   > } VkDisplayModePropertiesKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModePropertiesKHR VkDisplayModePropertiesKHR registry at www.khronos.org>
data VkDisplayModePropertiesKHR = VkDisplayModePropertiesKHR# Addr#
                                                              ByteArray#

instance Eq VkDisplayModePropertiesKHR where
        (VkDisplayModePropertiesKHR# a _) ==
          x@(VkDisplayModePropertiesKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayModePropertiesKHR where
        (VkDisplayModePropertiesKHR# a _) `compare`
          x@(VkDisplayModePropertiesKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayModePropertiesKHR where
        sizeOf ~_ = (24)
{-# LINE 744 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 747 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayModePropertiesKHR where
        unsafeAddr (VkDisplayModePropertiesKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayModePropertiesKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayModePropertiesKHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayModePropertiesKHR where
        type StructFields VkDisplayModePropertiesKHR =
             '["displayMode", "parameters"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayModePropertiesKHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayModePropertiesKHR = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "displayMode" VkDisplayModePropertiesKHR where
        type FieldType "displayMode" VkDisplayModePropertiesKHR =
             VkDisplayModeKHR
        type FieldOptional "displayMode" VkDisplayModePropertiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "displayMode" VkDisplayModePropertiesKHR =
             (0)
{-# LINE 785 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayMode" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 793 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayMode" VkDisplayModePropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 800 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 804 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayMode" VkDisplayModePropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 810 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "parameters" VkDisplayModePropertiesKHR where
        type FieldType "parameters" VkDisplayModePropertiesKHR =
             VkDisplayModeParametersKHR
        type FieldOptional "parameters" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "parameters" VkDisplayModePropertiesKHR =
             (8)
{-# LINE 818 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "parameters" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 826 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "parameters" VkDisplayModePropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 833 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 837 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "parameters" VkDisplayModePropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 843 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayModePropertiesKHR where
        showsPrec d x
          = showString "VkDisplayModePropertiesKHR {" .
              showString "displayMode = " .
                showsPrec d (getField @"displayMode" x) .
                  showString ", " .
                    showString "parameters = " .
                      showsPrec d (getField @"parameters" x) . showChar '}'

-- | > typedef struct VkDisplayPlaneCapabilities2KHR {
--   >     VkStructureType sType;
--   >     void* pNext;
--   >     VkDisplayPlaneCapabilitiesKHR capabilities;
--   > } VkDisplayPlaneCapabilities2KHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneCapabilities2KHR VkDisplayPlaneCapabilities2KHR registry at www.khronos.org>
data VkDisplayPlaneCapabilities2KHR = VkDisplayPlaneCapabilities2KHR# Addr#
                                                                      ByteArray#

instance Eq VkDisplayPlaneCapabilities2KHR where
        (VkDisplayPlaneCapabilities2KHR# a _) ==
          x@(VkDisplayPlaneCapabilities2KHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPlaneCapabilities2KHR where
        (VkDisplayPlaneCapabilities2KHR# a _) `compare`
          x@(VkDisplayPlaneCapabilities2KHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPlaneCapabilities2KHR where
        sizeOf ~_ = (88)
{-# LINE 878 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 882 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPlaneCapabilities2KHR where
        unsafeAddr (VkDisplayPlaneCapabilities2KHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPlaneCapabilities2KHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPlaneCapabilities2KHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPlaneCapabilities2KHR where
        type StructFields VkDisplayPlaneCapabilities2KHR =
             '["sType", "pNext", "capabilities"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayPlaneCapabilities2KHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPlaneCapabilities2KHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPlaneCapabilities2KHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 927 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayPlaneCapabilities2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 934 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 938 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayPlaneCapabilities2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 944 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 959 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayPlaneCapabilities2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 966 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 970 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayPlaneCapabilities2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 976 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "capabilities" VkDisplayPlaneCapabilities2KHR where
        type FieldType "capabilities" VkDisplayPlaneCapabilities2KHR =
             VkDisplayPlaneCapabilitiesKHR
        type FieldOptional "capabilities" VkDisplayPlaneCapabilities2KHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "capabilities" VkDisplayPlaneCapabilities2KHR =
             (16)
{-# LINE 985 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "capabilities" VkDisplayPlaneCapabilities2KHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 994 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "capabilities" VkDisplayPlaneCapabilities2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 1001 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 1005 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "capabilities" VkDisplayPlaneCapabilities2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 1011 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPlaneCapabilities2KHR where
        showsPrec d x
          = showString "VkDisplayPlaneCapabilities2KHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "capabilities = " .
                            showsPrec d (getField @"capabilities" x) . showChar '}'

-- | > typedef struct VkDisplayPlaneCapabilitiesKHR {
--   >     VkDisplayPlaneAlphaFlagsKHR      supportedAlpha;
--   >     VkOffset2D                       minSrcPosition;
--   >     VkOffset2D                       maxSrcPosition;
--   >     VkExtent2D                       minSrcExtent;
--   >     VkExtent2D                       maxSrcExtent;
--   >     VkOffset2D                       minDstPosition;
--   >     VkOffset2D                       maxDstPosition;
--   >     VkExtent2D                       minDstExtent;
--   >     VkExtent2D                       maxDstExtent;
--   > } VkDisplayPlaneCapabilitiesKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneCapabilitiesKHR VkDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
data VkDisplayPlaneCapabilitiesKHR = VkDisplayPlaneCapabilitiesKHR# Addr#
                                                                    ByteArray#

instance Eq VkDisplayPlaneCapabilitiesKHR where
        (VkDisplayPlaneCapabilitiesKHR# a _) ==
          x@(VkDisplayPlaneCapabilitiesKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPlaneCapabilitiesKHR where
        (VkDisplayPlaneCapabilitiesKHR# a _) `compare`
          x@(VkDisplayPlaneCapabilitiesKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPlaneCapabilitiesKHR where
        sizeOf ~_ = (68)
{-# LINE 1055 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (4)
{-# LINE 1059 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPlaneCapabilitiesKHR where
        unsafeAddr (VkDisplayPlaneCapabilitiesKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPlaneCapabilitiesKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPlaneCapabilitiesKHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPlaneCapabilitiesKHR where
        type StructFields VkDisplayPlaneCapabilitiesKHR =
             '["supportedAlpha", "minSrcPosition", "maxSrcPosition", -- ' closing tick for hsc2hs
               "minSrcExtent", "maxSrcExtent", "minDstPosition", "maxDstPosition",
               "minDstExtent", "maxDstExtent"]
        type CUnionType VkDisplayPlaneCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPlaneCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPlaneCapabilitiesKHR = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
             VkDisplayPlaneAlphaFlagsKHR
        type FieldOptional "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
             (0)
{-# LINE 1099 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 1108 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 1115 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 1119 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 1125 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             VkOffset2D
        type FieldOptional "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             (4)
{-# LINE 1134 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (4)
{-# LINE 1143 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (4))
{-# LINE 1150 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (4)
{-# LINE 1154 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (4)
{-# LINE 1160 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             VkOffset2D
        type FieldOptional "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             (12)
{-# LINE 1169 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (12)
{-# LINE 1178 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (12))
{-# LINE 1185 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (12)
{-# LINE 1189 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (12)
{-# LINE 1195 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             VkExtent2D
        type FieldOptional "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             (20)
{-# LINE 1204 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (20)
{-# LINE 1213 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (20))
{-# LINE 1220 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (20)
{-# LINE 1224 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (20)
{-# LINE 1230 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             VkExtent2D
        type FieldOptional "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             (28)
{-# LINE 1239 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (28)
{-# LINE 1248 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (28))
{-# LINE 1255 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (28)
{-# LINE 1259 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (28)
{-# LINE 1265 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
             VkOffset2D
        type FieldOptional "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
             (36)
{-# LINE 1274 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (36)
{-# LINE 1283 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (36))
{-# LINE 1290 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (36)
{-# LINE 1294 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (36)
{-# LINE 1300 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
             VkOffset2D
        type FieldOptional "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
             (44)
{-# LINE 1309 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (44)
{-# LINE 1318 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (44))
{-# LINE 1325 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (44)
{-# LINE 1329 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (44)
{-# LINE 1335 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
             VkExtent2D
        type FieldOptional "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
             (52)
{-# LINE 1344 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (52)
{-# LINE 1353 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (52))
{-# LINE 1360 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (52)
{-# LINE 1364 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (52)
{-# LINE 1370 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
        type FieldType "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
             VkExtent2D
        type FieldOptional "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
             (60)
{-# LINE 1379 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (60)
{-# LINE 1388 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (60))
{-# LINE 1395 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (60)
{-# LINE 1399 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (60)
{-# LINE 1405 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPlaneCapabilitiesKHR where
        showsPrec d x
          = showString "VkDisplayPlaneCapabilitiesKHR {" .
              showString "supportedAlpha = " .
                showsPrec d (getField @"supportedAlpha" x) .
                  showString ", " .
                    showString "minSrcPosition = " .
                      showsPrec d (getField @"minSrcPosition" x) .
                        showString ", " .
                          showString "maxSrcPosition = " .
                            showsPrec d (getField @"maxSrcPosition" x) .
                              showString ", " .
                                showString "minSrcExtent = " .
                                  showsPrec d (getField @"minSrcExtent" x) .
                                    showString ", " .
                                      showString "maxSrcExtent = " .
                                        showsPrec d (getField @"maxSrcExtent" x) .
                                          showString ", " .
                                            showString "minDstPosition = " .
                                              showsPrec d (getField @"minDstPosition" x) .
                                                showString ", " .
                                                  showString "maxDstPosition = " .
                                                    showsPrec d (getField @"maxDstPosition" x) .
                                                      showString ", " .
                                                        showString "minDstExtent = " .
                                                          showsPrec d (getField @"minDstExtent" x) .
                                                            showString ", " .
                                                              showString "maxDstExtent = " .
                                                                showsPrec d
                                                                  (getField @"maxDstExtent" x)
                                                                  . showChar '}'

-- | > typedef struct VkDisplayPlaneInfo2KHR {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     VkDisplayModeKHR mode;
--   >     uint32_t planeIndex;
--   > } VkDisplayPlaneInfo2KHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneInfo2KHR VkDisplayPlaneInfo2KHR registry at www.khronos.org>
data VkDisplayPlaneInfo2KHR = VkDisplayPlaneInfo2KHR# Addr#
                                                      ByteArray#

instance Eq VkDisplayPlaneInfo2KHR where
        (VkDisplayPlaneInfo2KHR# a _) == x@(VkDisplayPlaneInfo2KHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPlaneInfo2KHR where
        (VkDisplayPlaneInfo2KHR# a _) `compare`
          x@(VkDisplayPlaneInfo2KHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPlaneInfo2KHR where
        sizeOf ~_ = (32)
{-# LINE 1463 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 1466 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPlaneInfo2KHR where
        unsafeAddr (VkDisplayPlaneInfo2KHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPlaneInfo2KHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPlaneInfo2KHR# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPlaneInfo2KHR where
        type StructFields VkDisplayPlaneInfo2KHR =
             '["sType", "pNext", "mode", "planeIndex"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayPlaneInfo2KHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPlaneInfo2KHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPlaneInfo2KHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 1507 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayPlaneInfo2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 1514 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 1518 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayPlaneInfo2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 1524 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 1538 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayPlaneInfo2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 1545 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 1549 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayPlaneInfo2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 1555 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-} HasField "mode" VkDisplayPlaneInfo2KHR
         where
        type FieldType "mode" VkDisplayPlaneInfo2KHR = VkDisplayModeKHR
        type FieldOptional "mode" VkDisplayPlaneInfo2KHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "mode" VkDisplayPlaneInfo2KHR =
             (16)
{-# LINE 1562 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "mode" VkDisplayPlaneInfo2KHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (16)
{-# LINE 1569 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "mode" VkDisplayPlaneInfo2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 1576 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 1580 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "mode" VkDisplayPlaneInfo2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 1586 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "planeIndex" VkDisplayPlaneInfo2KHR where
        type FieldType "planeIndex" VkDisplayPlaneInfo2KHR = Word32
        type FieldOptional "planeIndex" VkDisplayPlaneInfo2KHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "planeIndex" VkDisplayPlaneInfo2KHR =
             (24)
{-# LINE 1593 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "planeIndex" VkDisplayPlaneInfo2KHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 1601 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "planeIndex" VkDisplayPlaneInfo2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 1608 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 1612 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "planeIndex" VkDisplayPlaneInfo2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 1618 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPlaneInfo2KHR where
        showsPrec d x
          = showString "VkDisplayPlaneInfo2KHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "mode = " .
                            showsPrec d (getField @"mode" x) .
                              showString ", " .
                                showString "planeIndex = " .
                                  showsPrec d (getField @"planeIndex" x) . showChar '}'

-- | > typedef struct VkDisplayPlaneProperties2KHR {
--   >     VkStructureType sType;
--   >     void* pNext;
--   >     VkDisplayPlanePropertiesKHR displayPlaneProperties;
--   > } VkDisplayPlaneProperties2KHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneProperties2KHR VkDisplayPlaneProperties2KHR registry at www.khronos.org>
data VkDisplayPlaneProperties2KHR = VkDisplayPlaneProperties2KHR# Addr#
                                                                  ByteArray#

instance Eq VkDisplayPlaneProperties2KHR where
        (VkDisplayPlaneProperties2KHR# a _) ==
          x@(VkDisplayPlaneProperties2KHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPlaneProperties2KHR where
        (VkDisplayPlaneProperties2KHR# a _) `compare`
          x@(VkDisplayPlaneProperties2KHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPlaneProperties2KHR where
        sizeOf ~_ = (32)
{-# LINE 1659 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 1663 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPlaneProperties2KHR where
        unsafeAddr (VkDisplayPlaneProperties2KHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPlaneProperties2KHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPlaneProperties2KHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPlaneProperties2KHR where
        type StructFields VkDisplayPlaneProperties2KHR =
             '["sType", "pNext", "displayPlaneProperties"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayPlaneProperties2KHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPlaneProperties2KHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPlaneProperties2KHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 1708 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayPlaneProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 1715 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 1719 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayPlaneProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 1725 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 1740 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayPlaneProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 1747 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 1751 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayPlaneProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 1757 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayPlaneProperties" VkDisplayPlaneProperties2KHR
         where
        type FieldType "displayPlaneProperties"
               VkDisplayPlaneProperties2KHR
             = VkDisplayPlanePropertiesKHR
        type FieldOptional "displayPlaneProperties"
               VkDisplayPlaneProperties2KHR
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayPlaneProperties"
               VkDisplayPlaneProperties2KHR
             =
             (16)
{-# LINE 1771 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayPlaneProperties"
               VkDisplayPlaneProperties2KHR
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 1781 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayPlaneProperties" VkDisplayPlaneProperties2KHR
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 1789 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 1793 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayPlaneProperties" VkDisplayPlaneProperties2KHR
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 1800 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPlaneProperties2KHR where
        showsPrec d x
          = showString "VkDisplayPlaneProperties2KHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "displayPlaneProperties = " .
                            showsPrec d (getField @"displayPlaneProperties" x) . showChar '}'

-- | > typedef struct VkDisplayPlanePropertiesKHR {
--   >     VkDisplayKHR                     currentDisplay;
--   >     uint32_t                         currentStackIndex;
--   > } VkDisplayPlanePropertiesKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlanePropertiesKHR VkDisplayPlanePropertiesKHR registry at www.khronos.org>
data VkDisplayPlanePropertiesKHR = VkDisplayPlanePropertiesKHR# Addr#
                                                                ByteArray#

instance Eq VkDisplayPlanePropertiesKHR where
        (VkDisplayPlanePropertiesKHR# a _) ==
          x@(VkDisplayPlanePropertiesKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPlanePropertiesKHR where
        (VkDisplayPlanePropertiesKHR# a _) `compare`
          x@(VkDisplayPlanePropertiesKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPlanePropertiesKHR where
        sizeOf ~_ = (16)
{-# LINE 1837 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 1840 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPlanePropertiesKHR where
        unsafeAddr (VkDisplayPlanePropertiesKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPlanePropertiesKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPlanePropertiesKHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPlanePropertiesKHR where
        type StructFields VkDisplayPlanePropertiesKHR =
             '["currentDisplay", "currentStackIndex"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayPlanePropertiesKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPlanePropertiesKHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPlanePropertiesKHR = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "currentDisplay" VkDisplayPlanePropertiesKHR where
        type FieldType "currentDisplay" VkDisplayPlanePropertiesKHR =
             VkDisplayKHR
        type FieldOptional "currentDisplay" VkDisplayPlanePropertiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "currentDisplay" VkDisplayPlanePropertiesKHR =
             (0)
{-# LINE 1878 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "currentDisplay" VkDisplayPlanePropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 1887 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "currentDisplay" VkDisplayPlanePropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 1894 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 1898 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "currentDisplay" VkDisplayPlanePropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 1904 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "currentStackIndex" VkDisplayPlanePropertiesKHR where
        type FieldType "currentStackIndex" VkDisplayPlanePropertiesKHR =
             Word32
        type FieldOptional "currentStackIndex" VkDisplayPlanePropertiesKHR
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "currentStackIndex" VkDisplayPlanePropertiesKHR =
             (8)
{-# LINE 1913 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "currentStackIndex" VkDisplayPlanePropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 1922 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "currentStackIndex" VkDisplayPlanePropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 1929 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 1933 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "currentStackIndex" VkDisplayPlanePropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 1939 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPlanePropertiesKHR where
        showsPrec d x
          = showString "VkDisplayPlanePropertiesKHR {" .
              showString "currentDisplay = " .
                showsPrec d (getField @"currentDisplay" x) .
                  showString ", " .
                    showString "currentStackIndex = " .
                      showsPrec d (getField @"currentStackIndex" x) . showChar '}'

-- | > typedef struct VkDisplayPowerInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDisplayPowerStateEXT           powerState;
--   > } VkDisplayPowerInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPowerInfoEXT VkDisplayPowerInfoEXT registry at www.khronos.org>
data VkDisplayPowerInfoEXT = VkDisplayPowerInfoEXT# Addr#
                                                    ByteArray#

instance Eq VkDisplayPowerInfoEXT where
        (VkDisplayPowerInfoEXT# a _) == x@(VkDisplayPowerInfoEXT# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPowerInfoEXT where
        (VkDisplayPowerInfoEXT# a _) `compare`
          x@(VkDisplayPowerInfoEXT# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPowerInfoEXT where
        sizeOf ~_ = (24)
{-# LINE 1973 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 1976 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPowerInfoEXT where
        unsafeAddr (VkDisplayPowerInfoEXT# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPowerInfoEXT# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPowerInfoEXT# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPowerInfoEXT where
        type StructFields VkDisplayPowerInfoEXT =
             '["sType", "pNext", "powerState"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPowerInfoEXT = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 2017 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayPowerInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 2024 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 2028 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayPowerInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 2034 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 2048 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayPowerInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 2055 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 2059 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayPowerInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 2065 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "powerState" VkDisplayPowerInfoEXT where
        type FieldType "powerState" VkDisplayPowerInfoEXT =
             VkDisplayPowerStateEXT
        type FieldOptional "powerState" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "powerState" VkDisplayPowerInfoEXT =
             (16)
{-# LINE 2073 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "powerState" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 2081 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "powerState" VkDisplayPowerInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 2088 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 2092 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "powerState" VkDisplayPowerInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 2098 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPowerInfoEXT where
        showsPrec d x
          = showString "VkDisplayPowerInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "powerState = " .
                            showsPrec d (getField @"powerState" x) . showChar '}'

-- | > typedef struct VkDisplayPresentInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkRect2D                         srcRect;
--   >     VkRect2D                         dstRect;
--   >     VkBool32                         persistent;
--   > } VkDisplayPresentInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPresentInfoKHR VkDisplayPresentInfoKHR registry at www.khronos.org>
data VkDisplayPresentInfoKHR = VkDisplayPresentInfoKHR# Addr#
                                                        ByteArray#

instance Eq VkDisplayPresentInfoKHR where
        (VkDisplayPresentInfoKHR# a _) == x@(VkDisplayPresentInfoKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPresentInfoKHR where
        (VkDisplayPresentInfoKHR# a _) `compare`
          x@(VkDisplayPresentInfoKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPresentInfoKHR where
        sizeOf ~_ = (56)
{-# LINE 2137 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 2140 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPresentInfoKHR where
        unsafeAddr (VkDisplayPresentInfoKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPresentInfoKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPresentInfoKHR# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPresentInfoKHR where
        type StructFields VkDisplayPresentInfoKHR =
             '["sType", "pNext", "srcRect", "dstRect", "persistent"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPresentInfoKHR = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 2181 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 2188 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 2192 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 2198 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 2212 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 2219 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 2223 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 2229 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "srcRect" VkDisplayPresentInfoKHR where
        type FieldType "srcRect" VkDisplayPresentInfoKHR = VkRect2D
        type FieldOptional "srcRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcRect" VkDisplayPresentInfoKHR =
             (16)
{-# LINE 2236 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "srcRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 2244 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "srcRect" VkDisplayPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 2251 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 2255 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcRect" VkDisplayPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 2261 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dstRect" VkDisplayPresentInfoKHR where
        type FieldType "dstRect" VkDisplayPresentInfoKHR = VkRect2D
        type FieldOptional "dstRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstRect" VkDisplayPresentInfoKHR =
             (32)
{-# LINE 2268 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "dstRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 2276 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dstRect" VkDisplayPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 2283 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 2287 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstRect" VkDisplayPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 2293 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "persistent" VkDisplayPresentInfoKHR where
        type FieldType "persistent" VkDisplayPresentInfoKHR = VkBool32
        type FieldOptional "persistent" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "persistent" VkDisplayPresentInfoKHR =
             (48)
{-# LINE 2300 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "persistent" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (48)
{-# LINE 2308 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "persistent" VkDisplayPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 2315 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (48)
{-# LINE 2319 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "persistent" VkDisplayPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 2325 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPresentInfoKHR where
        showsPrec d x
          = showString "VkDisplayPresentInfoKHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "srcRect = " .
                            showsPrec d (getField @"srcRect" x) .
                              showString ", " .
                                showString "dstRect = " .
                                  showsPrec d (getField @"dstRect" x) .
                                    showString ", " .
                                      showString "persistent = " .
                                        showsPrec d (getField @"persistent" x) . showChar '}'

-- | > typedef struct VkDisplayProperties2KHR {
--   >     VkStructureType sType;
--   >     void* pNext;
--   >     VkDisplayPropertiesKHR displayProperties;
--   > } VkDisplayProperties2KHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayProperties2KHR VkDisplayProperties2KHR registry at www.khronos.org>
data VkDisplayProperties2KHR = VkDisplayProperties2KHR# Addr#
                                                        ByteArray#

instance Eq VkDisplayProperties2KHR where
        (VkDisplayProperties2KHR# a _) == x@(VkDisplayProperties2KHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayProperties2KHR where
        (VkDisplayProperties2KHR# a _) `compare`
          x@(VkDisplayProperties2KHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayProperties2KHR where
        sizeOf ~_ = (64)
{-# LINE 2368 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 2371 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayProperties2KHR where
        unsafeAddr (VkDisplayProperties2KHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayProperties2KHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayProperties2KHR# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayProperties2KHR where
        type StructFields VkDisplayProperties2KHR =
             '["sType", "pNext", "displayProperties"] -- ' closing tick for hsc2hs
        type CUnionType VkDisplayProperties2KHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayProperties2KHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayProperties2KHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 2412 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplayProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 2419 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 2423 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplayProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 2429 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 2443 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplayProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 2450 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 2454 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplayProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 2460 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayProperties" VkDisplayProperties2KHR where
        type FieldType "displayProperties" VkDisplayProperties2KHR =
             VkDisplayPropertiesKHR
        type FieldOptional "displayProperties" VkDisplayProperties2KHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "displayProperties" VkDisplayProperties2KHR =
             (16)
{-# LINE 2469 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayProperties" VkDisplayProperties2KHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 2478 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayProperties" VkDisplayProperties2KHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 2485 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 2489 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayProperties" VkDisplayProperties2KHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 2495 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayProperties2KHR where
        showsPrec d x
          = showString "VkDisplayProperties2KHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "displayProperties = " .
                            showsPrec d (getField @"displayProperties" x) . showChar '}'

-- | > typedef struct VkDisplayPropertiesKHR {
--   >     VkDisplayKHR                     display;
--   >     const char*                      displayName;
--   >     VkExtent2D                       physicalDimensions;
--   >     VkExtent2D                       physicalResolution;
--   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
--   >     VkBool32                         planeReorderPossible;
--   >     VkBool32                         persistentContent;
--   > } VkDisplayPropertiesKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPropertiesKHR VkDisplayPropertiesKHR registry at www.khronos.org>
data VkDisplayPropertiesKHR = VkDisplayPropertiesKHR# Addr#
                                                      ByteArray#

instance Eq VkDisplayPropertiesKHR where
        (VkDisplayPropertiesKHR# a _) == x@(VkDisplayPropertiesKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplayPropertiesKHR where
        (VkDisplayPropertiesKHR# a _) `compare`
          x@(VkDisplayPropertiesKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplayPropertiesKHR where
        sizeOf ~_ = (48)
{-# LINE 2536 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 2539 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplayPropertiesKHR where
        unsafeAddr (VkDisplayPropertiesKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplayPropertiesKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplayPropertiesKHR# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplayPropertiesKHR where
        type StructFields VkDisplayPropertiesKHR =
             '["display", "displayName", "physicalDimensions", -- ' closing tick for hsc2hs
               "physicalResolution", "supportedTransforms",
               "planeReorderPossible", "persistentContent"]
        type CUnionType VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplayPropertiesKHR = 'True -- ' closing tick for hsc2hs
        type StructExtends VkDisplayPropertiesKHR = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "display" VkDisplayPropertiesKHR where
        type FieldType "display" VkDisplayPropertiesKHR = VkDisplayKHR
        type FieldOptional "display" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "display" VkDisplayPropertiesKHR =
             (0)
{-# LINE 2575 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "display" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 2582 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "display" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 2589 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 2593 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "display" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 2599 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayName" VkDisplayPropertiesKHR where
        type FieldType "displayName" VkDisplayPropertiesKHR = CString
        type FieldOptional "displayName" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "displayName" VkDisplayPropertiesKHR =
             (8)
{-# LINE 2606 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayName" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 2614 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayName" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 2621 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 2625 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayName" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 2631 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "physicalDimensions" VkDisplayPropertiesKHR where
        type FieldType "physicalDimensions" VkDisplayPropertiesKHR =
             VkExtent2D
        type FieldOptional "physicalDimensions" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "physicalDimensions" VkDisplayPropertiesKHR =
             (16)
{-# LINE 2640 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "physicalDimensions" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 2649 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "physicalDimensions" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 2656 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 2660 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "physicalDimensions" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 2666 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "physicalResolution" VkDisplayPropertiesKHR where
        type FieldType "physicalResolution" VkDisplayPropertiesKHR =
             VkExtent2D
        type FieldOptional "physicalResolution" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "physicalResolution" VkDisplayPropertiesKHR =
             (24)
{-# LINE 2675 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "physicalResolution" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 2684 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "physicalResolution" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 2691 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 2695 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "physicalResolution" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 2701 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "supportedTransforms" VkDisplayPropertiesKHR where
        type FieldType "supportedTransforms" VkDisplayPropertiesKHR =
             VkSurfaceTransformFlagsKHR
        type FieldOptional "supportedTransforms" VkDisplayPropertiesKHR =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "supportedTransforms" VkDisplayPropertiesKHR =
             (32)
{-# LINE 2710 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "supportedTransforms" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 2719 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "supportedTransforms" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 2726 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 2730 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "supportedTransforms" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 2736 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "planeReorderPossible" VkDisplayPropertiesKHR where
        type FieldType "planeReorderPossible" VkDisplayPropertiesKHR =
             VkBool32
        type FieldOptional "planeReorderPossible" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "planeReorderPossible" VkDisplayPropertiesKHR =
             (36)
{-# LINE 2745 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "planeReorderPossible" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (36)
{-# LINE 2754 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "planeReorderPossible" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (36))
{-# LINE 2761 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (36)
{-# LINE 2765 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "planeReorderPossible" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (36)
{-# LINE 2771 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "persistentContent" VkDisplayPropertiesKHR where
        type FieldType "persistentContent" VkDisplayPropertiesKHR =
             VkBool32
        type FieldOptional "persistentContent" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "persistentContent" VkDisplayPropertiesKHR =
             (40)
{-# LINE 2780 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "persistentContent" VkDisplayPropertiesKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (40)
{-# LINE 2789 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "persistentContent" VkDisplayPropertiesKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 2796 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (40)
{-# LINE 2800 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "persistentContent" VkDisplayPropertiesKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 2806 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplayPropertiesKHR where
        showsPrec d x
          = showString "VkDisplayPropertiesKHR {" .
              showString "display = " .
                showsPrec d (getField @"display" x) .
                  showString ", " .
                    showString "displayName = " .
                      showsPrec d (getField @"displayName" x) .
                        showString ", " .
                          showString "physicalDimensions = " .
                            showsPrec d (getField @"physicalDimensions" x) .
                              showString ", " .
                                showString "physicalResolution = " .
                                  showsPrec d (getField @"physicalResolution" x) .
                                    showString ", " .
                                      showString "supportedTransforms = " .
                                        showsPrec d (getField @"supportedTransforms" x) .
                                          showString ", " .
                                            showString "planeReorderPossible = " .
                                              showsPrec d (getField @"planeReorderPossible" x) .
                                                showString ", " .
                                                  showString "persistentContent = " .
                                                    showsPrec d (getField @"persistentContent" x) .
                                                      showChar '}'

-- | > typedef struct VkDisplaySurfaceCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDisplaySurfaceCreateFlagsKHR   flags;
--   >     VkDisplayModeKHR                 displayMode;
--   >     uint32_t                         planeIndex;
--   >     uint32_t                         planeStackIndex;
--   >     VkSurfaceTransformFlagBitsKHR    transform;
--   >     float                            globalAlpha;
--   >     VkDisplayPlaneAlphaFlagBitsKHR   alphaMode;
--   >     VkExtent2D                       imageExtent;
--   > } VkDisplaySurfaceCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplaySurfaceCreateInfoKHR VkDisplaySurfaceCreateInfoKHR registry at www.khronos.org>
data VkDisplaySurfaceCreateInfoKHR = VkDisplaySurfaceCreateInfoKHR# Addr#
                                                                    ByteArray#

instance Eq VkDisplaySurfaceCreateInfoKHR where
        (VkDisplaySurfaceCreateInfoKHR# a _) ==
          x@(VkDisplaySurfaceCreateInfoKHR# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDisplaySurfaceCreateInfoKHR where
        (VkDisplaySurfaceCreateInfoKHR# a _) `compare`
          x@(VkDisplaySurfaceCreateInfoKHR# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDisplaySurfaceCreateInfoKHR where
        sizeOf ~_ = (64)
{-# LINE 2864 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 2868 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDisplaySurfaceCreateInfoKHR where
        unsafeAddr (VkDisplaySurfaceCreateInfoKHR# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDisplaySurfaceCreateInfoKHR# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDisplaySurfaceCreateInfoKHR#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDisplaySurfaceCreateInfoKHR where
        type StructFields VkDisplaySurfaceCreateInfoKHR =
             '["sType", "pNext", "flags", "displayMode", "planeIndex", -- ' closing tick for hsc2hs
               "planeStackIndex", "transform", "globalAlpha", "alphaMode",
               "imageExtent"]
        type CUnionType VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDisplaySurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 2915 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 2922 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 2926 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 2932 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 2947 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 2954 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 2958 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 2964 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "flags" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "flags" VkDisplaySurfaceCreateInfoKHR =
             VkDisplaySurfaceCreateFlagsKHR
        type FieldOptional "flags" VkDisplaySurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "flags" VkDisplaySurfaceCreateInfoKHR =
             (16)
{-# LINE 2972 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "flags" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 2980 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 2987 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 2991 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 2997 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "displayMode" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "displayMode" VkDisplaySurfaceCreateInfoKHR =
             VkDisplayModeKHR
        type FieldOptional "displayMode" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "displayMode" VkDisplaySurfaceCreateInfoKHR =
             (24)
{-# LINE 3006 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "displayMode" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 3015 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "displayMode" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 3022 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 3026 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "displayMode" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 3032 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "planeIndex" VkDisplaySurfaceCreateInfoKHR = Word32
        type FieldOptional "planeIndex" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "planeIndex" VkDisplaySurfaceCreateInfoKHR =
             (32)
{-# LINE 3040 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "planeIndex" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 3049 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 3056 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 3060 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 3066 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
             Word32
        type FieldOptional "planeStackIndex" VkDisplaySurfaceCreateInfoKHR
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
             (36)
{-# LINE 3075 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (36)
{-# LINE 3084 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (36))
{-# LINE 3091 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (36)
{-# LINE 3095 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (36)
{-# LINE 3101 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "transform" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "transform" VkDisplaySurfaceCreateInfoKHR =
             VkSurfaceTransformFlagBitsKHR
        type FieldOptional "transform" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "transform" VkDisplaySurfaceCreateInfoKHR =
             (40)
{-# LINE 3110 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "transform" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (40)
{-# LINE 3119 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "transform" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 3126 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (40)
{-# LINE 3130 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "transform" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 3136 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
             Float
{-# LINE 3141 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldOptional "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
             (44)
{-# LINE 3145 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (44)
{-# LINE 3154 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (44))
{-# LINE 3161 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (44)
{-# LINE 3165 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (44)
{-# LINE 3171 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "alphaMode" VkDisplaySurfaceCreateInfoKHR =
             VkDisplayPlaneAlphaFlagBitsKHR
        type FieldOptional "alphaMode" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "alphaMode" VkDisplaySurfaceCreateInfoKHR =
             (48)
{-# LINE 3180 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "alphaMode" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (48)
{-# LINE 3189 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 3196 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (48)
{-# LINE 3200 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 3206 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
        type FieldType "imageExtent" VkDisplaySurfaceCreateInfoKHR =
             VkExtent2D
        type FieldOptional "imageExtent" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "imageExtent" VkDisplaySurfaceCreateInfoKHR =
             (52)
{-# LINE 3215 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}
        type FieldIsArray "imageExtent" VkDisplaySurfaceCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (52)
{-# LINE 3224 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (52))
{-# LINE 3231 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (52)
{-# LINE 3235 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (52)
{-# LINE 3241 "src-gen/Graphics/Vulkan/Types/Struct/Display.hsc" #-}

instance Show VkDisplaySurfaceCreateInfoKHR where
        showsPrec d x
          = showString "VkDisplaySurfaceCreateInfoKHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "flags = " .
                            showsPrec d (getField @"flags" x) .
                              showString ", " .
                                showString "displayMode = " .
                                  showsPrec d (getField @"displayMode" x) .
                                    showString ", " .
                                      showString "planeIndex = " .
                                        showsPrec d (getField @"planeIndex" x) .
                                          showString ", " .
                                            showString "planeStackIndex = " .
                                              showsPrec d (getField @"planeStackIndex" x) .
                                                showString ", " .
                                                  showString "transform = " .
                                                    showsPrec d (getField @"transform" x) .
                                                      showString ", " .
                                                        showString "globalAlpha = " .
                                                          showsPrec d (getField @"globalAlpha" x) .
                                                            showString ", " .
                                                              showString "alphaMode = " .
                                                                showsPrec d
                                                                  (getField @"alphaMode" x)
                                                                  .
                                                                  showString ", " .
                                                                    showString "imageExtent = " .
                                                                      showsPrec d
                                                                        (getField @"imageExtent" x)
                                                                        . showChar '}'