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

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

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Present
       (VkPresentInfoKHR(..), VkPresentRegionKHR(..),
        VkPresentRegionsKHR(..), VkPresentTimeGOOGLE(..),
        VkPresentTimesInfoGOOGLE(..))
       where
import           Foreign.Storable                         (Storable (..))
import           GHC.Base                                 (Addr#, ByteArray#,
                                                           byteArrayContents#,
                                                           plusAddr#)
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.Enum.Result        (VkResult)
import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import           Graphics.Vulkan.Types.Handles            (VkSemaphore,
                                                           VkSwapchainKHR)
import           Graphics.Vulkan.Types.Struct.Rect        (VkRectLayerKHR)
import           System.IO.Unsafe                         (unsafeDupablePerformIO)

-- | > typedef struct VkPresentInfoKHR {
--   >     VkStructureType sType;
--   >     const void*  pNext;
--   >     uint32_t         waitSemaphoreCount;
--   >     const VkSemaphore* pWaitSemaphores;
--   >     uint32_t                         swapchainCount;
--   >     const VkSwapchainKHR* pSwapchains;
--   >     const uint32_t* pImageIndices;
--   >     VkResult* pResults;
--   > } VkPresentInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentInfoKHR VkPresentInfoKHR registry at www.khronos.org>
data VkPresentInfoKHR = VkPresentInfoKHR# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkPresentInfoKHR where
        type StructFields VkPresentInfoKHR =
             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
               "swapchainCount", "pSwapchains", "pImageIndices", "pResults"]
        type CUnionType VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkPresentInfoKHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "waitSemaphoreCount" VkPresentInfoKHR where
        type FieldType "waitSemaphoreCount" VkPresentInfoKHR = Word32
        type FieldOptional "waitSemaphoreCount" VkPresentInfoKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "waitSemaphoreCount" VkPresentInfoKHR =
             (16)
{-# LINE 156 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "waitSemaphoreCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "waitSemaphoreCount" VkPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 171 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "waitSemaphoreCount" VkPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 181 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pWaitSemaphores" VkPresentInfoKHR where
        type FieldType "pWaitSemaphores" VkPresentInfoKHR = Ptr VkSemaphore
        type FieldOptional "pWaitSemaphores" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pWaitSemaphores" VkPresentInfoKHR =
             (24)
{-# LINE 188 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pWaitSemaphores" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pWaitSemaphores" VkPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 203 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pWaitSemaphores" VkPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 213 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "swapchainCount" VkPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 235 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "swapchainCount" VkPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 245 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pSwapchains" VkPresentInfoKHR where
        type FieldType "pSwapchains" VkPresentInfoKHR = Ptr VkSwapchainKHR
        type FieldOptional "pSwapchains" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pSwapchains" VkPresentInfoKHR =
             (40)
{-# LINE 252 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pSwapchains" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pSwapchains" VkPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 266 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pSwapchains" VkPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 276 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pImageIndices" VkPresentInfoKHR where
        type FieldType "pImageIndices" VkPresentInfoKHR = Ptr Word32
        type FieldOptional "pImageIndices" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pImageIndices" VkPresentInfoKHR =
             (48)
{-# LINE 283 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pImageIndices" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pImageIndices" VkPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 297 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pImageIndices" VkPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 307 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-} HasField "pResults" VkPresentInfoKHR
         where
        type FieldType "pResults" VkPresentInfoKHR = Ptr VkResult
        type FieldOptional "pResults" VkPresentInfoKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pResults" VkPresentInfoKHR =
             (56)
{-# LINE 314 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pResults" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset = (56)
{-# LINE 321 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pResults" VkPresentInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (56))
{-# LINE 328 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (56)
{-# LINE 332 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pResults" VkPresentInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (56)
{-# LINE 338 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance Show VkPresentInfoKHR where
        showsPrec d x
          = showString "VkPresentInfoKHR {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "waitSemaphoreCount = " .
                            showsPrec d (getField @"waitSemaphoreCount" x) .
                              showString ", " .
                                showString "pWaitSemaphores = " .
                                  showsPrec d (getField @"pWaitSemaphores" x) .
                                    showString ", " .
                                      showString "swapchainCount = " .
                                        showsPrec d (getField @"swapchainCount" x) .
                                          showString ", " .
                                            showString "pSwapchains = " .
                                              showsPrec d (getField @"pSwapchains" x) .
                                                showString ", " .
                                                  showString "pImageIndices = " .
                                                    showsPrec d (getField @"pImageIndices" x) .
                                                      showString ", " .
                                                        showString "pResults = " .
                                                          showsPrec d (getField @"pResults" x) .
                                                            showChar '}'

-- | > typedef struct VkPresentRegionKHR {
--   >     uint32_t         rectangleCount;
--   >     const VkRectLayerKHR*   pRectangles;
--   > } VkPresentRegionKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentRegionKHR VkPresentRegionKHR registry at www.khronos.org>
data VkPresentRegionKHR = VkPresentRegionKHR# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkPresentRegionKHR where
        type StructFields VkPresentRegionKHR =
             '["rectangleCount", "pRectangles"] -- ' closing tick for hsc2hs
        type CUnionType VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkPresentRegionKHR = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "rectangleCount" VkPresentRegionKHR where
        type FieldType "rectangleCount" VkPresentRegionKHR = Word32
        type FieldOptional "rectangleCount" VkPresentRegionKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "rectangleCount" VkPresentRegionKHR =
             (0)
{-# LINE 426 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "rectangleCount" VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "rectangleCount" VkPresentRegionKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 441 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "rectangleCount" VkPresentRegionKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 451 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pRectangles" VkPresentRegionKHR where
        type FieldType "pRectangles" VkPresentRegionKHR =
             Ptr VkRectLayerKHR
        type FieldOptional "pRectangles" VkPresentRegionKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pRectangles" VkPresentRegionKHR =
             (8)
{-# LINE 459 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pRectangles" VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "pRectangles" VkPresentRegionKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 473 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pRectangles" VkPresentRegionKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 483 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance Show VkPresentRegionKHR where
        showsPrec d x
          = showString "VkPresentRegionKHR {" .
              showString "rectangleCount = " .
                showsPrec d (getField @"rectangleCount" x) .
                  showString ", " .
                    showString "pRectangles = " .
                      showsPrec d (getField @"pRectangles" x) . showChar '}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkPresentRegionsKHR where
        type StructFields VkPresentRegionsKHR =
             '["sType", "pNext", "swapchainCount", "pRegions"] -- ' closing tick for hsc2hs
        type CUnionType VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkPresentRegionsKHR = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "swapchainCount" VkPresentRegionsKHR where
        type FieldType "swapchainCount" VkPresentRegionsKHR = Word32
        type FieldOptional "swapchainCount" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "swapchainCount" VkPresentRegionsKHR =
             (16)
{-# LINE 616 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "swapchainCount" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "swapchainCount" VkPresentRegionsKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 631 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "swapchainCount" VkPresentRegionsKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 641 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pRegions" VkPresentRegionsKHR where
        type FieldType "pRegions" VkPresentRegionsKHR =
             Ptr VkPresentRegionKHR
        type FieldOptional "pRegions" VkPresentRegionsKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pRegions" VkPresentRegionsKHR =
             (24)
{-# LINE 649 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pRegions" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "pRegions" VkPresentRegionsKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 663 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pRegions" VkPresentRegionsKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 673 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

-- | > typedef struct VkPresentTimeGOOGLE {
--   >     uint32_t                         presentID;
--   >     uint64_t                         desiredPresentTime;
--   > } VkPresentTimeGOOGLE;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentTimeGOOGLE VkPresentTimeGOOGLE registry at www.khronos.org>
data VkPresentTimeGOOGLE = VkPresentTimeGOOGLE# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkPresentTimeGOOGLE where
        type StructFields VkPresentTimeGOOGLE =
             '["presentID", "desiredPresentTime"] -- ' closing tick for hsc2hs
        type CUnionType VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
        type StructExtends VkPresentTimeGOOGLE = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "presentID" VkPresentTimeGOOGLE where
        type FieldType "presentID" VkPresentTimeGOOGLE = Word32
        type FieldOptional "presentID" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
        type FieldOffset "presentID" VkPresentTimeGOOGLE =
             (0)
{-# LINE 748 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "presentID" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "presentID" VkPresentTimeGOOGLE where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 762 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "presentID" VkPresentTimeGOOGLE where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 772 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "desiredPresentTime" VkPresentTimeGOOGLE where
        type FieldType "desiredPresentTime" VkPresentTimeGOOGLE = Word64
        type FieldOptional "desiredPresentTime" VkPresentTimeGOOGLE =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "desiredPresentTime" VkPresentTimeGOOGLE =
             (8)
{-# LINE 780 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "desiredPresentTime" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "desiredPresentTime" VkPresentTimeGOOGLE where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 795 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "desiredPresentTime" VkPresentTimeGOOGLE where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 805 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance Show VkPresentTimeGOOGLE where
        showsPrec d x
          = showString "VkPresentTimeGOOGLE {" .
              showString "presentID = " .
                showsPrec d (getField @"presentID" x) .
                  showString ", " .
                    showString "desiredPresentTime = " .
                      showsPrec d (getField @"desiredPresentTime" x) . showChar '}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkPresentTimesInfoGOOGLE where
        type StructFields VkPresentTimesInfoGOOGLE =
             '["sType", "pNext", "swapchainCount", "pTimes"] -- ' closing tick for hsc2hs
        type CUnionType VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
        type StructExtends VkPresentTimesInfoGOOGLE = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "swapchainCount" VkPresentTimesInfoGOOGLE where
        type FieldType "swapchainCount" VkPresentTimesInfoGOOGLE = Word32
        type FieldOptional "swapchainCount" VkPresentTimesInfoGOOGLE =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "swapchainCount" VkPresentTimesInfoGOOGLE =
             (16)
{-# LINE 941 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "swapchainCount" VkPresentTimesInfoGOOGLE =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "swapchainCount" VkPresentTimesInfoGOOGLE where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 957 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "swapchainCount" VkPresentTimesInfoGOOGLE where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 967 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pTimes" VkPresentTimesInfoGOOGLE where
        type FieldType "pTimes" VkPresentTimesInfoGOOGLE =
             Ptr VkPresentTimeGOOGLE
        type FieldOptional "pTimes" VkPresentTimesInfoGOOGLE = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pTimes" VkPresentTimesInfoGOOGLE =
             (24)
{-# LINE 975 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
        type FieldIsArray "pTimes" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "pTimes" VkPresentTimesInfoGOOGLE where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 990 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pTimes" VkPresentTimesInfoGOOGLE where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 1000 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}

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