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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.SwapchainC
       (VkSwapchainCounterCreateInfoEXT, VkSwapchainCreateInfoKHR) where
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)

-- | > 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>
type VkSwapchainCounterCreateInfoEXT =
     VkStruct VkSwapchainCounterCreateInfoEXT' -- ' closing tick for hsc2hs

data VkSwapchainCounterCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSwapchainCounterCreateInfoEXT where
    type StructRep VkSwapchainCounterCreateInfoEXT =
         'StructMeta "VkSwapchainCounterCreateInfoEXT" -- ' closing tick for hsc2hs
           VkSwapchainCounterCreateInfoEXT
           (24)
{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
           8
{-# LINE 45 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 47 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "surfaceCounters" VkSurfaceCounterFlagsEXT 'True
                (16)
{-# LINE 57 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkSwapchainCreateInfoKHR] -- ' closing tick for hsc2hs

-- | > 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>
type VkSwapchainCreateInfoKHR = VkStruct VkSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs

data VkSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkSwapchainCreateInfoKHR where
    type StructRep VkSwapchainCreateInfoKHR =
         'StructMeta "VkSwapchainCreateInfoKHR" VkSwapchainCreateInfoKHR -- ' closing tick for hsc2hs
           (104)
{-# LINE 94 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
           8
{-# LINE 95 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 97 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 102 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkSwapchainCreateFlagsKHR 'True
                                                                 (16)
{-# LINE 107 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "surface" VkSurfaceKHR 'False
                                                       (24)
{-# LINE 112 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "minImageCount" Word32 'False
                                                       (32)
{-# LINE 117 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageFormat" VkFormat 'False
                                                       (36)
{-# LINE 122 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageColorSpace" VkColorSpaceKHR 'False
                                                                  (40)
{-# LINE 127 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageExtent" VkExtent2D 'False
                                                         (44)
{-# LINE 132 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageArrayLayers" Word32 'False
                                                          (52)
{-# LINE 137 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageUsage" VkImageUsageFlags 'False
                                                               (56)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageSharingMode" VkSharingMode 'False
                                                                 (60)
{-# LINE 147 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueFamilyIndexCount" Word32 'True
                                                              (64)
{-# LINE 152 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pQueueFamilyIndices" (Ptr Word32) 'False
                                                                   (72)
{-# LINE 157 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "preTransform" VkSurfaceTransformFlagBitsKHR 'False
                (80)
{-# LINE 162 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "compositeAlpha" VkCompositeAlphaFlagBitsKHR 'False
                (84)
{-# LINE 167 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "presentMode" VkPresentModeKHR 'False
                                                               (88)
{-# LINE 172 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "clipped" VkBool32 'False
                                                   (92)
{-# LINE 177 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "oldSwapchain" VkSwapchainKHR 'True
                                                             (96)
{-# LINE 182 "src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs