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

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

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.SwapchainC
       (VkSwapchainCounterCreateInfoEXT(..), VkSwapchainCreateInfoKHR(..))
       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.Enum.Color                   (VkColorSpaceKHR)
import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR  (VkCompositeAlphaFlagBitsKHR)
import           Graphics.Vulkan.Types.Enum.Format                  (VkFormat)
import           Graphics.Vulkan.Types.Enum.Image                   (VkImageUsageFlags)
import           Graphics.Vulkan.Types.Enum.PresentModeKHR          (VkPresentModeKHR)
import           Graphics.Vulkan.Types.Enum.SharingMode             (VkSharingMode)
import           Graphics.Vulkan.Types.Enum.StructureType           (VkStructureType)
import           Graphics.Vulkan.Types.Enum.Surface                 (VkSurfaceCounterFlagsEXT,
                                                                     VkSurfaceTransformFlagBitsKHR)
import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR (VkSwapchainCreateFlagsKHR)
import           Graphics.Vulkan.Types.Handles                      (VkSurfaceKHR,
                                                                     VkSwapchainKHR)
import           Graphics.Vulkan.Types.Struct.Extent                (VkExtent2D)
import           System.IO.Unsafe                                   (unsafeDupablePerformIO)

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "surfaceCounters" VkSwapchainCounterCreateInfoEXT where
        type FieldType "surfaceCounters" VkSwapchainCounterCreateInfoEXT =
             VkSurfaceCounterFlagsEXT
        type FieldOptional "surfaceCounters"
               VkSwapchainCounterCreateInfoEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "surfaceCounters" VkSwapchainCounterCreateInfoEXT
             =
             (16)
{-# LINE 171 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "surfaceCounters" VkSwapchainCounterCreateInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "surfaceCounters" VkSwapchainCounterCreateInfoEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 188 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "surfaceCounters" VkSwapchainCounterCreateInfoEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

-- | > typedef struct VkSwapchainCreateInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkSwapchainCreateFlagsKHR        flags;
--   >     VkSurfaceKHR                     surface;
--   >     uint32_t                         minImageCount;
--   >     VkFormat                         imageFormat;
--   >     VkColorSpaceKHR                  imageColorSpace;
--   >     VkExtent2D                       imageExtent;
--   >     uint32_t                         imageArrayLayers;
--   >     VkImageUsageFlags                imageUsage;
--   >     VkSharingMode                    imageSharingMode;
--   >     uint32_t         queueFamilyIndexCount;
--   >     const uint32_t*                  pQueueFamilyIndices;
--   >     VkSurfaceTransformFlagBitsKHR    preTransform;
--   >     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
--   >     VkPresentModeKHR                 presentMode;
--   >     VkBool32                         clipped;
--   >     VkSwapchainKHR   oldSwapchain;
--   > } VkSwapchainCreateInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSwapchainCreateInfoKHR VkSwapchainCreateInfoKHR registry at www.khronos.org>
data VkSwapchainCreateInfoKHR = VkSwapchainCreateInfoKHR# Addr#
                                                          ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkSwapchainCreateInfoKHR where
        sizeOf ~_ = (104)
{-# LINE 251 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkSwapchainCreateInfoKHR where
        type StructFields VkSwapchainCreateInfoKHR =
             '["sType", "pNext", "flags", "surface", "minImageCount", -- ' closing tick for hsc2hs
               "imageFormat", "imageColorSpace", "imageExtent",
               "imageArrayLayers", "imageUsage", "imageSharingMode",
               "queueFamilyIndexCount", "pQueueFamilyIndices", "preTransform",
               "compositeAlpha", "presentMode", "clipped", "oldSwapchain"]
        type CUnionType VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type StructExtends VkSwapchainCreateInfoKHR = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "surface" VkSwapchainCreateInfoKHR where
        type FieldType "surface" VkSwapchainCreateInfoKHR = VkSurfaceKHR
        type FieldOptional "surface" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "surface" VkSwapchainCreateInfoKHR =
             (24)
{-# LINE 387 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "surface" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "surface" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 402 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "surface" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 412 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "minImageCount" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 435 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "minImageCount" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 445 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageFormat" VkSwapchainCreateInfoKHR where
        type FieldType "imageFormat" VkSwapchainCreateInfoKHR = VkFormat
        type FieldOptional "imageFormat" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageFormat" VkSwapchainCreateInfoKHR =
             (36)
{-# LINE 452 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "imageFormat" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "imageFormat" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (36))
{-# LINE 467 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "imageFormat" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (36)
{-# LINE 477 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageColorSpace" VkSwapchainCreateInfoKHR where
        type FieldType "imageColorSpace" VkSwapchainCreateInfoKHR =
             VkColorSpaceKHR
        type FieldOptional "imageColorSpace" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "imageColorSpace" VkSwapchainCreateInfoKHR =
             (40)
{-# LINE 486 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "imageColorSpace" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "imageColorSpace" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 502 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "imageColorSpace" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 512 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "imageExtent" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (44))
{-# LINE 534 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "imageExtent" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (44)
{-# LINE 544 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageArrayLayers" VkSwapchainCreateInfoKHR where
        type FieldType "imageArrayLayers" VkSwapchainCreateInfoKHR = Word32
        type FieldOptional "imageArrayLayers" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "imageArrayLayers" VkSwapchainCreateInfoKHR =
             (52)
{-# LINE 552 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "imageArrayLayers" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "imageArrayLayers" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (52))
{-# LINE 568 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "imageArrayLayers" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (52)
{-# LINE 578 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageUsage" VkSwapchainCreateInfoKHR where
        type FieldType "imageUsage" VkSwapchainCreateInfoKHR =
             VkImageUsageFlags
        type FieldOptional "imageUsage" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageUsage" VkSwapchainCreateInfoKHR =
             (56)
{-# LINE 586 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "imageUsage" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "imageUsage" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (56))
{-# LINE 601 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "imageUsage" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (56)
{-# LINE 611 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageSharingMode" VkSwapchainCreateInfoKHR where
        type FieldType "imageSharingMode" VkSwapchainCreateInfoKHR =
             VkSharingMode
        type FieldOptional "imageSharingMode" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "imageSharingMode" VkSwapchainCreateInfoKHR =
             (60)
{-# LINE 620 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "imageSharingMode" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "imageSharingMode" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (60))
{-# LINE 636 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "imageSharingMode" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (60)
{-# LINE 646 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR where
        type FieldType "queueFamilyIndexCount" VkSwapchainCreateInfoKHR =
             Word32
        type FieldOptional "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "queueFamilyIndexCount" VkSwapchainCreateInfoKHR =
             (64)
{-# LINE 655 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (64)
{-# LINE 664 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (64))
{-# LINE 671 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (64)
{-# LINE 675 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (64)
{-# LINE 682 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
        type FieldType "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
             Ptr Word32
        type FieldOptional "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
             (72)
{-# LINE 691 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (72)
{-# LINE 700 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (72))
{-# LINE 707 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (72)
{-# LINE 711 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (72)
{-# LINE 717 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "preTransform" VkSwapchainCreateInfoKHR where
        type FieldType "preTransform" VkSwapchainCreateInfoKHR =
             VkSurfaceTransformFlagBitsKHR
        type FieldOptional "preTransform" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "preTransform" VkSwapchainCreateInfoKHR =
             (80)
{-# LINE 725 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "preTransform" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (80)
{-# LINE 733 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "preTransform" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (80))
{-# LINE 740 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (80)
{-# LINE 744 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "preTransform" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (80)
{-# LINE 750 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "compositeAlpha" VkSwapchainCreateInfoKHR where
        type FieldType "compositeAlpha" VkSwapchainCreateInfoKHR =
             VkCompositeAlphaFlagBitsKHR
        type FieldOptional "compositeAlpha" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "compositeAlpha" VkSwapchainCreateInfoKHR =
             (84)
{-# LINE 759 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "compositeAlpha" VkSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (84)
{-# LINE 768 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "compositeAlpha" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (84))
{-# LINE 775 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (84)
{-# LINE 779 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "compositeAlpha" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (84)
{-# LINE 785 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "presentMode" VkSwapchainCreateInfoKHR where
        type FieldType "presentMode" VkSwapchainCreateInfoKHR =
             VkPresentModeKHR
        type FieldOptional "presentMode" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "presentMode" VkSwapchainCreateInfoKHR =
             (88)
{-# LINE 793 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "presentMode" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (88)
{-# LINE 801 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "presentMode" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (88))
{-# LINE 808 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (88)
{-# LINE 812 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "presentMode" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (88)
{-# LINE 818 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "clipped" VkSwapchainCreateInfoKHR where
        type FieldType "clipped" VkSwapchainCreateInfoKHR = VkBool32
        type FieldOptional "clipped" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
        type FieldOffset "clipped" VkSwapchainCreateInfoKHR =
             (92)
{-# LINE 825 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "clipped" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (92)
{-# LINE 833 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "clipped" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (92))
{-# LINE 840 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (92)
{-# LINE 844 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "clipped" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (92)
{-# LINE 850 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "oldSwapchain" VkSwapchainCreateInfoKHR where
        type FieldType "oldSwapchain" VkSwapchainCreateInfoKHR =
             VkSwapchainKHR
        type FieldOptional "oldSwapchain" VkSwapchainCreateInfoKHR = 'True -- ' closing tick for hsc2hs
        type FieldOffset "oldSwapchain" VkSwapchainCreateInfoKHR =
             (96)
{-# LINE 858 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
        type FieldIsArray "oldSwapchain" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (96)
{-# LINE 866 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "oldSwapchain" VkSwapchainCreateInfoKHR where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (96))
{-# LINE 873 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (96)
{-# LINE 877 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "oldSwapchain" VkSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (96)
{-# LINE 883 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}

instance Show VkSwapchainCreateInfoKHR where
        showsPrec d x
          = showString "VkSwapchainCreateInfoKHR {" .
              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 "surface = " .
                                  showsPrec d (getField @"surface" x) .
                                    showString ", " .
                                      showString "minImageCount = " .
                                        showsPrec d (getField @"minImageCount" x) .
                                          showString ", " .
                                            showString "imageFormat = " .
                                              showsPrec d (getField @"imageFormat" x) .
                                                showString ", " .
                                                  showString "imageColorSpace = " .
                                                    showsPrec d (getField @"imageColorSpace" x) .
                                                      showString ", " .
                                                        showString "imageExtent = " .
                                                          showsPrec d (getField @"imageExtent" x) .
                                                            showString ", " .
                                                              showString "imageArrayLayers = " .
                                                                showsPrec d
                                                                  (getField @"imageArrayLayers" x)
                                                                  .
                                                                  showString ", " .
                                                                    showString "imageUsage = " .
                                                                      showsPrec d
                                                                        (getField @"imageUsage" x)
                                                                        .
                                                                        showString ", " .
                                                                          showString
                                                                            "imageSharingMode = "
                                                                            .
                                                                            showsPrec d
                                                                              (getField
                                                                                 @"imageSharingMode"
                                                                                 x)
                                                                              .
                                                                              showString ", " .
                                                                                showString
                                                                                  "queueFamilyIndexCount = "
                                                                                  .
                                                                                  showsPrec d
                                                                                    (getField
                                                                                       @"queueFamilyIndexCount"
                                                                                       x)
                                                                                    .
                                                                                    showString ", "
                                                                                      .
                                                                                      showString
                                                                                        "pQueueFamilyIndices = "
                                                                                        .
                                                                                        showsPrec d
                                                                                          (getField
                                                                                             @"pQueueFamilyIndices"
                                                                                             x)
                                                                                          .
                                                                                          showString
                                                                                            ", "
                                                                                            .
                                                                                            showString
                                                                                              "preTransform = "
                                                                                              .
                                                                                              showsPrec
                                                                                                d
                                                                                                (getField
                                                                                                   @"preTransform"
                                                                                                   x)
                                                                                                .
                                                                                                showString
                                                                                                  ", "
                                                                                                  .
                                                                                                  showString
                                                                                                    "compositeAlpha = "
                                                                                                    .
                                                                                                    showsPrec
                                                                                                      d
                                                                                                      (getField
                                                                                                         @"compositeAlpha"
                                                                                                         x)
                                                                                                      .
                                                                                                      showString
                                                                                                        ", "
                                                                                                        .
                                                                                                        showString
                                                                                                          "presentMode = "
                                                                                                          .
                                                                                                          showsPrec
                                                                                                            d
                                                                                                            (getField
                                                                                                               @"presentMode"
                                                                                                               x)
                                                                                                            .
                                                                                                            showString
                                                                                                              ", "
                                                                                                              .
                                                                                                              showString
                                                                                                                "clipped = "
                                                                                                                .
                                                                                                                showsPrec
                                                                                                                  d
                                                                                                                  (getField
                                                                                                                     @"clipped"
                                                                                                                     x)
                                                                                                                  .
                                                                                                                  showString
                                                                                                                    ", "
                                                                                                                    .
                                                                                                                    showString
                                                                                                                      "oldSwapchain = "
                                                                                                                      .
                                                                                                                      showsPrec
                                                                                                                        d
                                                                                                                        (getField
                                                                                                                           @"oldSwapchain"
                                                                                                                           x)
                                                                                                                        .
                                                                                                                        showChar
                                                                                                                          '}'