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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Present
       (VkPresentInfoKHR, VkPresentRegionKHR, VkPresentRegionsKHR,
        VkPresentTimeGOOGLE, VkPresentTimesInfoGOOGLE)
       where
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)

-- | > 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.2-extensions/html/vkspec.html#VkPresentInfoKHR VkPresentInfoKHR registry at www.khronos.org>
type VkPresentInfoKHR = VkStruct VkPresentInfoKHR' -- ' closing tick for hsc2hs

data VkPresentInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPresentInfoKHR where
    type StructRep VkPresentInfoKHR =
         'StructMeta "VkPresentInfoKHR" VkPresentInfoKHR  -- ' closing tick for hsc2hs
                                                         (64)
{-# LINE 39 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           8
{-# LINE 40 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 47 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "waitSemaphoreCount" Word32 'True 
                                                           (16)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pWaitSemaphores" (Ptr VkSemaphore) 'False 
                                                                    (24)
{-# LINE 57 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "swapchainCount" Word32 'False 
                                                        (32)
{-# LINE 62 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSwapchains" (Ptr VkSwapchainKHR) 'False 
                                                                   (40)
{-# LINE 67 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pImageIndices" (Ptr Word32) 'False 
                                                             (48)
{-# LINE 72 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pResults" (Ptr VkResult) 'True 
                                                         (56)
{-# LINE 77 "src-gen/Graphics/Vulkan/Types/Struct/Present.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

-- | > typedef struct VkPresentRegionKHR {
--   >     uint32_t         rectangleCount;
--   >     const VkRectLayerKHR*   pRectangles;
--   > } VkPresentRegionKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPresentRegionKHR VkPresentRegionKHR registry at www.khronos.org>
type VkPresentRegionKHR = VkStruct VkPresentRegionKHR' -- ' closing tick for hsc2hs

data VkPresentRegionKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPresentRegionKHR where
    type StructRep VkPresentRegionKHR =
         'StructMeta "VkPresentRegionKHR" VkPresentRegionKHR  -- ' closing tick for hsc2hs
                                                             (16)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           8
{-# LINE 99 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           '[('FieldMeta "rectangleCount" Word32 'True  -- ' closing tick for hsc2hs
                                                       (0)
{-# LINE 101 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pRectangles" (Ptr VkRectLayerKHR) 'True 
                                                                  (8)
{-# LINE 106 "src-gen/Graphics/Vulkan/Types/Struct/Present.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

-- | > typedef struct VkPresentRegionsKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t                         swapchainCount;
--   >     const VkPresentRegionKHR*   pRegions;
--   > } VkPresentRegionsKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPresentRegionsKHR VkPresentRegionsKHR registry at www.khronos.org>
type VkPresentRegionsKHR = VkStruct VkPresentRegionsKHR' -- ' closing tick for hsc2hs

data VkPresentRegionsKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPresentRegionsKHR where
    type StructRep VkPresentRegionsKHR =
         'StructMeta "VkPresentRegionsKHR" VkPresentRegionsKHR  -- ' closing tick for hsc2hs
                                                               (32)
{-# LINE 129 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           8
{-# LINE 130 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 132 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 137 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "swapchainCount" Word32 'False 
                                                        (16)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pRegions" (Ptr VkPresentRegionKHR) 'True 
                                                                   (24)
{-# LINE 147 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkPresentInfoKHR] -- ' closing tick for hsc2hs

-- | > typedef struct VkPresentTimeGOOGLE {
--   >     uint32_t                         presentID;
--   >     uint64_t                         desiredPresentTime;
--   > } VkPresentTimeGOOGLE;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPresentTimeGOOGLE VkPresentTimeGOOGLE registry at www.khronos.org>
type VkPresentTimeGOOGLE = VkStruct VkPresentTimeGOOGLE' -- ' closing tick for hsc2hs

data VkPresentTimeGOOGLE' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPresentTimeGOOGLE where
    type StructRep VkPresentTimeGOOGLE =
         'StructMeta "VkPresentTimeGOOGLE" VkPresentTimeGOOGLE  -- ' closing tick for hsc2hs
                                                               (16)
{-# LINE 168 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           8
{-# LINE 169 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           '[('FieldMeta "presentID" Word32 'False  -- ' closing tick for hsc2hs
                                                   (0)
{-# LINE 171 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "desiredPresentTime" Word64 'False 
                                                            (8)
{-# LINE 176 "src-gen/Graphics/Vulkan/Types/Struct/Present.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

-- | > typedef struct VkPresentTimesInfoGOOGLE {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t                         swapchainCount;
--   >     const VkPresentTimeGOOGLE*   pTimes;
--   > } VkPresentTimesInfoGOOGLE;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPresentTimesInfoGOOGLE VkPresentTimesInfoGOOGLE registry at www.khronos.org>
type VkPresentTimesInfoGOOGLE = VkStruct VkPresentTimesInfoGOOGLE' -- ' closing tick for hsc2hs

data VkPresentTimesInfoGOOGLE' -- ' closing tick for hsc2hs

instance VulkanMarshal VkPresentTimesInfoGOOGLE where
    type StructRep VkPresentTimesInfoGOOGLE =
         'StructMeta "VkPresentTimesInfoGOOGLE" VkPresentTimesInfoGOOGLE -- ' closing tick for hsc2hs
           (32)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           8
{-# LINE 200 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 202 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 207 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "swapchainCount" Word32 'False 
                                                        (16)
{-# LINE 212 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pTimes" (Ptr VkPresentTimeGOOGLE) 'True 
                                                                  (24)
{-# LINE 217 "src-gen/Graphics/Vulkan/Types/Struct/Present.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkPresentInfoKHR] -- ' closing tick for hsc2hs