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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Import
       (VkImportFenceFdInfoKHR, VkImportMemoryFdInfoKHR,
        VkImportMemoryHostPointerInfoEXT, VkImportSemaphoreFdInfoKHR)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
                                                       VkExternalMemoryHandleTypeFlagBits,
                                                       VkExternalSemaphoreHandleTypeFlagBits)
import Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
import Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
import Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
import Graphics.Vulkan.Types.Handles                  (VkFence, VkSemaphore)
import Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)

-- | > typedef struct VkImportFenceFdInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                            pNext;
--   >     VkFence              fence;
--   >     VkFenceImportFlags  flags;
--   >     VkExternalFenceHandleTypeFlagBits   handleType;
--   >     int                                    fd;
--   > } VkImportFenceFdInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportFenceFdInfoKHR VkImportFenceFdInfoKHR registry at www.khronos.org>
type VkImportFenceFdInfoKHR = VkStruct VkImportFenceFdInfoKHR' -- ' closing tick for hsc2hs

data VkImportFenceFdInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImportFenceFdInfoKHR where
    type StructRep VkImportFenceFdInfoKHR =
         'StructMeta "VkImportFenceFdInfoKHR" VkImportFenceFdInfoKHR -- ' closing tick for hsc2hs
           (40)
{-# LINE 41 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           8
{-# LINE 42 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "fence" VkFence 'False
                                                (16)
{-# LINE 54 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkFenceImportFlags 'True
                                                          (24)
{-# LINE 59 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "handleType" VkExternalFenceHandleTypeFlagBits 'False
                (28)
{-# LINE 64 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "fd" CInt 'False
                                          (32)
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/Import.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 VkImportMemoryFdInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkExternalMemoryHandleTypeFlagBits handleType;
--   >     int                              fd;
--   > } VkImportMemoryFdInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryFdInfoKHR VkImportMemoryFdInfoKHR registry at www.khronos.org>
type VkImportMemoryFdInfoKHR = VkStruct VkImportMemoryFdInfoKHR' -- ' closing tick for hsc2hs

data VkImportMemoryFdInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImportMemoryFdInfoKHR where
    type StructRep VkImportMemoryFdInfoKHR =
         'StructMeta "VkImportMemoryFdInfoKHR" VkImportMemoryFdInfoKHR -- ' closing tick for hsc2hs
           (24)
{-# LINE 92 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           8
{-# LINE 93 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 95 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 100 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "handleType" VkExternalMemoryHandleTypeFlagBits 'True
                (16)
{-# LINE 105 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "fd" CInt 'False
                                          (20)
{-# LINE 110 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkImportMemoryHostPointerInfoEXT {
--   >     VkStructureType sType;
--   >     const void* pNext;
--   >     VkExternalMemoryHandleTypeFlagBits handleType;
--   >     void* pHostPointer;
--   > } VkImportMemoryHostPointerInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryHostPointerInfoEXT VkImportMemoryHostPointerInfoEXT registry at www.khronos.org>
type VkImportMemoryHostPointerInfoEXT =
     VkStruct VkImportMemoryHostPointerInfoEXT' -- ' closing tick for hsc2hs

data VkImportMemoryHostPointerInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImportMemoryHostPointerInfoEXT where
    type StructRep VkImportMemoryHostPointerInfoEXT =
         'StructMeta "VkImportMemoryHostPointerInfoEXT" -- ' closing tick for hsc2hs
           VkImportMemoryHostPointerInfoEXT
           (32)
{-# LINE 135 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           8
{-# LINE 136 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 138 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "handleType" VkExternalMemoryHandleTypeFlagBits 'False
                (16)
{-# LINE 148 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pHostPointer" (Ptr Void) 'False
                                                          (24)
{-# LINE 153 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkImportSemaphoreFdInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkSemaphore    semaphore;
--   >     VkSemaphoreImportFlags flags;
--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
--   >     int                              fd;
--   > } VkImportSemaphoreFdInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportSemaphoreFdInfoKHR VkImportSemaphoreFdInfoKHR registry at www.khronos.org>
type VkImportSemaphoreFdInfoKHR =
     VkStruct VkImportSemaphoreFdInfoKHR' -- ' closing tick for hsc2hs

data VkImportSemaphoreFdInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkImportSemaphoreFdInfoKHR where
    type StructRep VkImportSemaphoreFdInfoKHR =
         'StructMeta "VkImportSemaphoreFdInfoKHR" VkImportSemaphoreFdInfoKHR -- ' closing tick for hsc2hs
           (40)
{-# LINE 179 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           8
{-# LINE 180 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 182 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 187 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "semaphore" VkSemaphore 'False
                                                        (16)
{-# LINE 192 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkSemaphoreImportFlags 'True
                                                              (24)
{-# LINE 197 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "handleType" VkExternalSemaphoreHandleTypeFlagBits -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (28)
{-# LINE 203 "src-gen/Graphics/Vulkan/Types/Struct/Import.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "fd" CInt 'False
                                          (32)
{-# LINE 208 "src-gen/Graphics/Vulkan/Types/Struct/Import.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