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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.External
       (VkExternalBufferProperties(..), VkExternalBufferPropertiesKHR,
        VkExternalFenceProperties(..), VkExternalFencePropertiesKHR,
        VkExternalImageFormatProperties(..),
        VkExternalImageFormatPropertiesKHR,
        VkExternalImageFormatPropertiesNV(..),
        VkExternalMemoryBufferCreateInfo(..),
        VkExternalMemoryBufferCreateInfoKHR,
        VkExternalMemoryImageCreateInfo(..),
        VkExternalMemoryImageCreateInfoKHR,
        VkExternalMemoryImageCreateInfoNV(..),
        VkExternalMemoryProperties(..), VkExternalMemoryPropertiesKHR,
        VkExternalSemaphoreProperties(..),
        VkExternalSemaphorePropertiesKHR)
       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.External      (VkExternalFenceFeatureFlags,
                                                           VkExternalFenceHandleTypeFlags,
                                                           VkExternalMemoryFeatureFlags,
                                                           VkExternalMemoryFeatureFlagsNV,
                                                           VkExternalMemoryHandleTypeFlags,
                                                           VkExternalMemoryHandleTypeFlagsNV,
                                                           VkExternalSemaphoreFeatureFlags,
                                                           VkExternalSemaphoreHandleTypeFlags)
import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import           Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
import           Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo, VkImageFormatProperties,
                                                           VkImageFormatProperties2)
import           System.IO.Unsafe                         (unsafeDupablePerformIO)

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

instance Eq VkExternalBufferProperties where
        (VkExternalBufferProperties# Addr#
a ByteArray#
_) == :: VkExternalBufferProperties -> VkExternalBufferProperties -> Bool
==
          x :: VkExternalBufferProperties
x@(VkExternalBufferProperties# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalBufferProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalBufferProperties
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalBufferProperties where
        (VkExternalBufferProperties# Addr#
a ByteArray#
_) compare :: VkExternalBufferProperties
-> VkExternalBufferProperties -> Ordering
`compare`
          x :: VkExternalBufferProperties
x@(VkExternalBufferProperties# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalBufferProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalBufferProperties
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalBufferProperties where
        sizeOf :: VkExternalBufferProperties -> Int
sizeOf ~VkExternalBufferProperties
_ = (Int
32)
{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalBufferProperties -> Int
alignment ~VkExternalBufferProperties
_ = Int
8
{-# LINE 73 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalBufferProperties -> IO VkExternalBufferProperties
peek = Ptr VkExternalBufferProperties -> IO VkExternalBufferProperties
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalBufferProperties
-> VkExternalBufferProperties -> IO ()
poke = Ptr VkExternalBufferProperties
-> VkExternalBufferProperties -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalBufferProperties where
        unsafeAddr :: VkExternalBufferProperties -> Addr#
unsafeAddr (VkExternalBufferProperties# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalBufferProperties -> ByteArray#
unsafeByteArray (VkExternalBufferProperties# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalBufferProperties
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalBufferProperties
VkExternalBufferProperties#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalBufferProperties where
        type StructFields VkExternalBufferProperties =
             '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
        type CUnionType VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalBufferProperties = 'True -- ' closing tick for hsc2hs
        type StructExtends VkExternalBufferProperties = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 117 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalBufferProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalBufferProperties
-> FieldType "sType" VkExternalBufferProperties
getField VkExternalBufferProperties
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalBufferProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalBufferProperties -> Ptr VkExternalBufferProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalBufferProperties
x) (Int
0))
{-# LINE 124 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalBufferProperties
-> IO (FieldType "sType" VkExternalBufferProperties)
readField Ptr VkExternalBufferProperties
p
          = Ptr VkExternalBufferProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalBufferProperties
p (Int
0)
{-# LINE 128 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalBufferProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalBufferProperties
-> FieldType "sType" VkExternalBufferProperties -> IO ()
writeField Ptr VkExternalBufferProperties
p
          = Ptr VkExternalBufferProperties -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalBufferProperties
p (Int
0)
{-# LINE 134 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 149 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalBufferProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalBufferProperties
-> FieldType "pNext" VkExternalBufferProperties
getField VkExternalBufferProperties
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalBufferProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalBufferProperties -> Ptr VkExternalBufferProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalBufferProperties
x) (Int
8))
{-# LINE 156 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalBufferProperties
-> IO (FieldType "pNext" VkExternalBufferProperties)
readField Ptr VkExternalBufferProperties
p
          = Ptr VkExternalBufferProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalBufferProperties
p (Int
8)
{-# LINE 160 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalBufferProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalBufferProperties
-> FieldType "pNext" VkExternalBufferProperties -> IO ()
writeField Ptr VkExternalBufferProperties
p
          = Ptr VkExternalBufferProperties -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalBufferProperties
p (Int
8)
{-# LINE 166 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "externalMemoryProperties" VkExternalBufferProperties
         where
        type FieldType "externalMemoryProperties"
               VkExternalBufferProperties
             = VkExternalMemoryProperties
        type FieldOptional "externalMemoryProperties"
               VkExternalBufferProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "externalMemoryProperties"
               VkExternalBufferProperties
             =
             (16)
{-# LINE 180 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "externalMemoryProperties"
               VkExternalBufferProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 190 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "externalMemoryProperties" VkExternalBufferProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalBufferProperties
-> FieldType "externalMemoryProperties" VkExternalBufferProperties
getField VkExternalBufferProperties
x
          = IO VkExternalMemoryProperties -> VkExternalMemoryProperties
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalBufferProperties
-> Int -> IO VkExternalMemoryProperties
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalBufferProperties -> Ptr VkExternalBufferProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalBufferProperties
x) (Int
16))
{-# LINE 198 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalBufferProperties
-> IO
     (FieldType "externalMemoryProperties" VkExternalBufferProperties)
readField Ptr VkExternalBufferProperties
p
          = Ptr VkExternalBufferProperties
-> Int -> IO VkExternalMemoryProperties
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalBufferProperties
p (Int
16)
{-# LINE 202 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "externalMemoryProperties" VkExternalBufferProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalBufferProperties
-> FieldType "externalMemoryProperties" VkExternalBufferProperties
-> IO ()
writeField Ptr VkExternalBufferProperties
p
          = Ptr VkExternalBufferProperties
-> Int -> VkExternalMemoryProperties -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalBufferProperties
p (Int
16)
{-# LINE 209 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalBufferProperties where
        showsPrec :: Int -> VkExternalBufferProperties -> ShowS
showsPrec Int
d VkExternalBufferProperties
x
          = String -> ShowS
showString String
"VkExternalBufferProperties {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalBufferProperties
-> FieldType "sType" VkExternalBufferProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalBufferProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalBufferProperties
-> FieldType "pNext" VkExternalBufferProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalBufferProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"externalMemoryProperties = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryProperties -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalBufferProperties
-> FieldType "externalMemoryProperties" VkExternalBufferProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"externalMemoryProperties" VkExternalBufferProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalBufferProperties`
type VkExternalBufferPropertiesKHR = VkExternalBufferProperties

-- | > typedef struct VkExternalFenceProperties {
--   >     VkStructureType sType;
--   >     void*                            pNext;
--   >     VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
--   >     VkExternalFenceHandleTypeFlags compatibleHandleTypes;
--   >     VkExternalFenceFeatureFlags externalFenceFeatures;
--   > } VkExternalFenceProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalFenceProperties VkExternalFenceProperties registry at www.khronos.org>
data VkExternalFenceProperties = VkExternalFenceProperties# Addr#
                                                            ByteArray#

instance Eq VkExternalFenceProperties where
        (VkExternalFenceProperties# Addr#
a ByteArray#
_) == :: VkExternalFenceProperties -> VkExternalFenceProperties -> Bool
==
          x :: VkExternalFenceProperties
x@(VkExternalFenceProperties# Addr#
b ByteArray#
_) = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalFenceProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalFenceProperties
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalFenceProperties where
        (VkExternalFenceProperties# Addr#
a ByteArray#
_) compare :: VkExternalFenceProperties -> VkExternalFenceProperties -> Ordering
`compare`
          x :: VkExternalFenceProperties
x@(VkExternalFenceProperties# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalFenceProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalFenceProperties
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalFenceProperties where
        sizeOf :: VkExternalFenceProperties -> Int
sizeOf ~VkExternalFenceProperties
_ = (Int
32)
{-# LINE 251 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalFenceProperties -> Int
alignment ~VkExternalFenceProperties
_ = Int
8
{-# LINE 254 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalFenceProperties -> IO VkExternalFenceProperties
peek = Ptr VkExternalFenceProperties -> IO VkExternalFenceProperties
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalFenceProperties -> VkExternalFenceProperties -> IO ()
poke = Ptr VkExternalFenceProperties -> VkExternalFenceProperties -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalFenceProperties where
        unsafeAddr :: VkExternalFenceProperties -> Addr#
unsafeAddr (VkExternalFenceProperties# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalFenceProperties -> ByteArray#
unsafeByteArray (VkExternalFenceProperties# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalFenceProperties
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalFenceProperties
VkExternalFenceProperties# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalFenceProperties where
        type StructFields VkExternalFenceProperties =
             '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
               "compatibleHandleTypes", "externalFenceFeatures"]
        type CUnionType VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalFenceProperties = 'True -- ' closing tick for hsc2hs
        type StructExtends VkExternalFenceProperties = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 298 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalFenceProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalFenceProperties
-> FieldType "sType" VkExternalFenceProperties
getField VkExternalFenceProperties
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalFenceProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalFenceProperties -> Ptr VkExternalFenceProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalFenceProperties
x) (Int
0))
{-# LINE 305 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalFenceProperties
-> IO (FieldType "sType" VkExternalFenceProperties)
readField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalFenceProperties
p (Int
0)
{-# LINE 309 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalFenceProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalFenceProperties
-> FieldType "sType" VkExternalFenceProperties -> IO ()
writeField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalFenceProperties
p (Int
0)
{-# LINE 315 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 330 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalFenceProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalFenceProperties
-> FieldType "pNext" VkExternalFenceProperties
getField VkExternalFenceProperties
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalFenceProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalFenceProperties -> Ptr VkExternalFenceProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalFenceProperties
x) (Int
8))
{-# LINE 337 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalFenceProperties
-> IO (FieldType "pNext" VkExternalFenceProperties)
readField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalFenceProperties
p (Int
8)
{-# LINE 341 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalFenceProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalFenceProperties
-> FieldType "pNext" VkExternalFenceProperties -> IO ()
writeField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalFenceProperties
p (Int
8)
{-# LINE 347 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "exportFromImportedHandleTypes" VkExternalFenceProperties
         where
        type FieldType "exportFromImportedHandleTypes"
               VkExternalFenceProperties
             = VkExternalFenceHandleTypeFlags
        type FieldOptional "exportFromImportedHandleTypes"
               VkExternalFenceProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "exportFromImportedHandleTypes"
               VkExternalFenceProperties
             =
             (16)
{-# LINE 361 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "exportFromImportedHandleTypes"
               VkExternalFenceProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 371 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "exportFromImportedHandleTypes"
           VkExternalFenceProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalFenceProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalFenceProperties
getField VkExternalFenceProperties
x
          = IO VkExternalFenceHandleTypeFlags -> VkExternalFenceHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalFenceProperties
-> Int -> IO VkExternalFenceHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalFenceProperties -> Ptr VkExternalFenceProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalFenceProperties
x) (Int
16))
{-# LINE 380 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalFenceProperties
-> IO
     (FieldType
        "exportFromImportedHandleTypes" VkExternalFenceProperties)
readField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties
-> Int -> IO VkExternalFenceHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalFenceProperties
p (Int
16)
{-# LINE 384 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "exportFromImportedHandleTypes"
           VkExternalFenceProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalFenceProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalFenceProperties
-> IO ()
writeField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties
-> Int -> VkExternalFenceHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalFenceProperties
p (Int
16)
{-# LINE 392 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "compatibleHandleTypes" VkExternalFenceProperties where
        type FieldType "compatibleHandleTypes" VkExternalFenceProperties =
             VkExternalFenceHandleTypeFlags
        type FieldOptional "compatibleHandleTypes"
               VkExternalFenceProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "compatibleHandleTypes" VkExternalFenceProperties
             =
             (20)
{-# LINE 403 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "compatibleHandleTypes" VkExternalFenceProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
20)
{-# LINE 412 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "compatibleHandleTypes" VkExternalFenceProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalFenceProperties
-> FieldType "compatibleHandleTypes" VkExternalFenceProperties
getField VkExternalFenceProperties
x
          = IO VkExternalFenceHandleTypeFlags -> VkExternalFenceHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalFenceProperties
-> Int -> IO VkExternalFenceHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalFenceProperties -> Ptr VkExternalFenceProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalFenceProperties
x) (Int
20))
{-# LINE 420 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalFenceProperties
-> IO (FieldType "compatibleHandleTypes" VkExternalFenceProperties)
readField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties
-> Int -> IO VkExternalFenceHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalFenceProperties
p (Int
20)
{-# LINE 424 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "compatibleHandleTypes" VkExternalFenceProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalFenceProperties
-> FieldType "compatibleHandleTypes" VkExternalFenceProperties
-> IO ()
writeField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties
-> Int -> VkExternalFenceHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalFenceProperties
p (Int
20)
{-# LINE 431 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "externalFenceFeatures" VkExternalFenceProperties where
        type FieldType "externalFenceFeatures" VkExternalFenceProperties =
             VkExternalFenceFeatureFlags
        type FieldOptional "externalFenceFeatures"
               VkExternalFenceProperties
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "externalFenceFeatures" VkExternalFenceProperties
             =
             (24)
{-# LINE 442 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "externalFenceFeatures" VkExternalFenceProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
24)
{-# LINE 451 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "externalFenceFeatures" VkExternalFenceProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalFenceProperties
-> FieldType "externalFenceFeatures" VkExternalFenceProperties
getField VkExternalFenceProperties
x
          = IO VkExternalFenceFeatureFlags -> VkExternalFenceFeatureFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalFenceProperties
-> Int -> IO VkExternalFenceFeatureFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalFenceProperties -> Ptr VkExternalFenceProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalFenceProperties
x) (Int
24))
{-# LINE 459 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalFenceProperties
-> IO (FieldType "externalFenceFeatures" VkExternalFenceProperties)
readField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties
-> Int -> IO VkExternalFenceFeatureFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalFenceProperties
p (Int
24)
{-# LINE 463 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "externalFenceFeatures" VkExternalFenceProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalFenceProperties
-> FieldType "externalFenceFeatures" VkExternalFenceProperties
-> IO ()
writeField Ptr VkExternalFenceProperties
p
          = Ptr VkExternalFenceProperties
-> Int -> VkExternalFenceFeatureFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalFenceProperties
p (Int
24)
{-# LINE 470 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalFenceProperties where
        showsPrec :: Int -> VkExternalFenceProperties -> ShowS
showsPrec Int
d VkExternalFenceProperties
x
          = String -> ShowS
showString String
"VkExternalFenceProperties {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalFenceProperties
-> FieldType "sType" VkExternalFenceProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalFenceProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalFenceProperties
-> FieldType "pNext" VkExternalFenceProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalFenceProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"exportFromImportedHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalFenceHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalFenceProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalFenceProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"exportFromImportedHandleTypes" VkExternalFenceProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"compatibleHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkExternalFenceHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalFenceProperties
-> FieldType "compatibleHandleTypes" VkExternalFenceProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"compatibleHandleTypes" VkExternalFenceProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"externalFenceFeatures = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkExternalFenceFeatureFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalFenceProperties
-> FieldType "externalFenceFeatures" VkExternalFenceProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"externalFenceFeatures" VkExternalFenceProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalFenceProperties`
type VkExternalFencePropertiesKHR = VkExternalFenceProperties

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

instance Eq VkExternalImageFormatProperties where
        (VkExternalImageFormatProperties# Addr#
a ByteArray#
_) == :: VkExternalImageFormatProperties
-> VkExternalImageFormatProperties -> Bool
==
          x :: VkExternalImageFormatProperties
x@(VkExternalImageFormatProperties# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalImageFormatProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalImageFormatProperties
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalImageFormatProperties where
        (VkExternalImageFormatProperties# Addr#
a ByteArray#
_) compare :: VkExternalImageFormatProperties
-> VkExternalImageFormatProperties -> Ordering
`compare`
          x :: VkExternalImageFormatProperties
x@(VkExternalImageFormatProperties# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalImageFormatProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalImageFormatProperties
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalImageFormatProperties where
        sizeOf :: VkExternalImageFormatProperties -> Int
sizeOf ~VkExternalImageFormatProperties
_ = (Int
32)
{-# LINE 518 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalImageFormatProperties -> Int
alignment ~VkExternalImageFormatProperties
_
          = Int
8
{-# LINE 522 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalImageFormatProperties
-> IO VkExternalImageFormatProperties
peek = Ptr VkExternalImageFormatProperties
-> IO VkExternalImageFormatProperties
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalImageFormatProperties
-> VkExternalImageFormatProperties -> IO ()
poke = Ptr VkExternalImageFormatProperties
-> VkExternalImageFormatProperties -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalImageFormatProperties where
        unsafeAddr :: VkExternalImageFormatProperties -> Addr#
unsafeAddr (VkExternalImageFormatProperties# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalImageFormatProperties -> ByteArray#
unsafeByteArray (VkExternalImageFormatProperties# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalImageFormatProperties
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalImageFormatProperties
VkExternalImageFormatProperties#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalImageFormatProperties where
        type StructFields VkExternalImageFormatProperties =
             '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
        type CUnionType VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalImageFormatProperties = 'True -- ' closing tick for hsc2hs
        type StructExtends VkExternalImageFormatProperties =
             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 568 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalImageFormatProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatProperties
-> FieldType "sType" VkExternalImageFormatProperties
getField VkExternalImageFormatProperties
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatProperties
-> Ptr VkExternalImageFormatProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatProperties
x) (Int
0))
{-# LINE 575 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatProperties
-> IO (FieldType "sType" VkExternalImageFormatProperties)
readField Ptr VkExternalImageFormatProperties
p
          = Ptr VkExternalImageFormatProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatProperties
p (Int
0)
{-# LINE 579 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalImageFormatProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatProperties
-> FieldType "sType" VkExternalImageFormatProperties -> IO ()
writeField Ptr VkExternalImageFormatProperties
p
          = Ptr VkExternalImageFormatProperties
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatProperties
p (Int
0)
{-# LINE 585 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 600 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalImageFormatProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatProperties
-> FieldType "pNext" VkExternalImageFormatProperties
getField VkExternalImageFormatProperties
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatProperties
-> Ptr VkExternalImageFormatProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatProperties
x) (Int
8))
{-# LINE 607 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatProperties
-> IO (FieldType "pNext" VkExternalImageFormatProperties)
readField Ptr VkExternalImageFormatProperties
p
          = Ptr VkExternalImageFormatProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatProperties
p (Int
8)
{-# LINE 611 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalImageFormatProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatProperties
-> FieldType "pNext" VkExternalImageFormatProperties -> IO ()
writeField Ptr VkExternalImageFormatProperties
p
          = Ptr VkExternalImageFormatProperties -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatProperties
p (Int
8)
{-# LINE 617 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "externalMemoryProperties" VkExternalImageFormatProperties
         where
        type FieldType "externalMemoryProperties"
               VkExternalImageFormatProperties
             = VkExternalMemoryProperties
        type FieldOptional "externalMemoryProperties"
               VkExternalImageFormatProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "externalMemoryProperties"
               VkExternalImageFormatProperties
             =
             (16)
{-# LINE 631 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "externalMemoryProperties"
               VkExternalImageFormatProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 641 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "externalMemoryProperties"
           VkExternalImageFormatProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatProperties
-> FieldType
     "externalMemoryProperties" VkExternalImageFormatProperties
getField VkExternalImageFormatProperties
x
          = IO VkExternalMemoryProperties -> VkExternalMemoryProperties
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatProperties
-> Int -> IO VkExternalMemoryProperties
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatProperties
-> Ptr VkExternalImageFormatProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatProperties
x) (Int
16))
{-# LINE 650 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatProperties
-> IO
     (FieldType
        "externalMemoryProperties" VkExternalImageFormatProperties)
readField Ptr VkExternalImageFormatProperties
p
          = Ptr VkExternalImageFormatProperties
-> Int -> IO VkExternalMemoryProperties
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatProperties
p (Int
16)
{-# LINE 654 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "externalMemoryProperties"
           VkExternalImageFormatProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatProperties
-> FieldType
     "externalMemoryProperties" VkExternalImageFormatProperties
-> IO ()
writeField Ptr VkExternalImageFormatProperties
p
          = Ptr VkExternalImageFormatProperties
-> Int -> VkExternalMemoryProperties -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatProperties
p (Int
16)
{-# LINE 662 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalImageFormatProperties where
        showsPrec :: Int -> VkExternalImageFormatProperties -> ShowS
showsPrec Int
d VkExternalImageFormatProperties
x
          = String -> ShowS
showString String
"VkExternalImageFormatProperties {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatProperties
-> FieldType "sType" VkExternalImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalImageFormatProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatProperties
-> FieldType "pNext" VkExternalImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalImageFormatProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"externalMemoryProperties = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryProperties -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatProperties
-> FieldType
     "externalMemoryProperties" VkExternalImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"externalMemoryProperties" VkExternalImageFormatProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalImageFormatProperties`
type VkExternalImageFormatPropertiesKHR =
     VkExternalImageFormatProperties

-- | > typedef struct VkExternalImageFormatPropertiesNV {
--   >     VkImageFormatProperties          imageFormatProperties;
--   >     VkExternalMemoryFeatureFlagsNV   externalMemoryFeatures;
--   >     VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
--   >     VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
--   > } VkExternalImageFormatPropertiesNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalImageFormatPropertiesNV VkExternalImageFormatPropertiesNV registry at www.khronos.org>
data VkExternalImageFormatPropertiesNV = VkExternalImageFormatPropertiesNV# Addr#
                                                                            ByteArray#

instance Eq VkExternalImageFormatPropertiesNV where
        (VkExternalImageFormatPropertiesNV# Addr#
a ByteArray#
_) == :: VkExternalImageFormatPropertiesNV
-> VkExternalImageFormatPropertiesNV -> Bool
==
          x :: VkExternalImageFormatPropertiesNV
x@(VkExternalImageFormatPropertiesNV# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalImageFormatPropertiesNV -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalImageFormatPropertiesNV
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalImageFormatPropertiesNV where
        (VkExternalImageFormatPropertiesNV# Addr#
a ByteArray#
_) compare :: VkExternalImageFormatPropertiesNV
-> VkExternalImageFormatPropertiesNV -> Ordering
`compare`
          x :: VkExternalImageFormatPropertiesNV
x@(VkExternalImageFormatPropertiesNV# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalImageFormatPropertiesNV -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalImageFormatPropertiesNV
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalImageFormatPropertiesNV where
        sizeOf :: VkExternalImageFormatPropertiesNV -> Int
sizeOf ~VkExternalImageFormatPropertiesNV
_ = (Int
48)
{-# LINE 706 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalImageFormatPropertiesNV -> Int
alignment ~VkExternalImageFormatPropertiesNV
_
          = Int
8
{-# LINE 710 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalImageFormatPropertiesNV
-> IO VkExternalImageFormatPropertiesNV
peek = Ptr VkExternalImageFormatPropertiesNV
-> IO VkExternalImageFormatPropertiesNV
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalImageFormatPropertiesNV
-> VkExternalImageFormatPropertiesNV -> IO ()
poke = Ptr VkExternalImageFormatPropertiesNV
-> VkExternalImageFormatPropertiesNV -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalImageFormatPropertiesNV where
        unsafeAddr :: VkExternalImageFormatPropertiesNV -> Addr#
unsafeAddr (VkExternalImageFormatPropertiesNV# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalImageFormatPropertiesNV -> ByteArray#
unsafeByteArray (VkExternalImageFormatPropertiesNV# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalImageFormatPropertiesNV
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalImageFormatPropertiesNV
VkExternalImageFormatPropertiesNV#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalImageFormatPropertiesNV where
        type StructFields VkExternalImageFormatPropertiesNV =
             '["imageFormatProperties", "externalMemoryFeatures", -- ' closing tick for hsc2hs
               "exportFromImportedHandleTypes", "compatibleHandleTypes"]
        type CUnionType VkExternalImageFormatPropertiesNV = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalImageFormatPropertiesNV = 'True -- ' closing tick for hsc2hs
        type StructExtends VkExternalImageFormatPropertiesNV = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "imageFormatProperties" VkExternalImageFormatPropertiesNV
         where
        type FieldType "imageFormatProperties"
               VkExternalImageFormatPropertiesNV
             = VkImageFormatProperties
        type FieldOptional "imageFormatProperties"
               VkExternalImageFormatPropertiesNV
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageFormatProperties"
               VkExternalImageFormatPropertiesNV
             =
             (0)
{-# LINE 754 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "imageFormatProperties"
               VkExternalImageFormatPropertiesNV
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 764 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "imageFormatProperties"
           VkExternalImageFormatPropertiesNV
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatPropertiesNV
-> FieldType
     "imageFormatProperties" VkExternalImageFormatPropertiesNV
getField VkExternalImageFormatPropertiesNV
x
          = IO VkImageFormatProperties -> VkImageFormatProperties
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkImageFormatProperties
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatPropertiesNV
-> Ptr VkExternalImageFormatPropertiesNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatPropertiesNV
x) (Int
0))
{-# LINE 773 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatPropertiesNV
-> IO
     (FieldType
        "imageFormatProperties" VkExternalImageFormatPropertiesNV)
readField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkImageFormatProperties
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
0)
{-# LINE 777 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "imageFormatProperties"
           VkExternalImageFormatPropertiesNV
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatPropertiesNV
-> FieldType
     "imageFormatProperties" VkExternalImageFormatPropertiesNV
-> IO ()
writeField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> VkImageFormatProperties -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
0)
{-# LINE 785 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "externalMemoryFeatures" VkExternalImageFormatPropertiesNV
         where
        type FieldType "externalMemoryFeatures"
               VkExternalImageFormatPropertiesNV
             = VkExternalMemoryFeatureFlagsNV
        type FieldOptional "externalMemoryFeatures"
               VkExternalImageFormatPropertiesNV
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "externalMemoryFeatures"
               VkExternalImageFormatPropertiesNV
             =
             (32)
{-# LINE 799 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "externalMemoryFeatures"
               VkExternalImageFormatPropertiesNV
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
32)
{-# LINE 809 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "externalMemoryFeatures"
           VkExternalImageFormatPropertiesNV
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatPropertiesNV
-> FieldType
     "externalMemoryFeatures" VkExternalImageFormatPropertiesNV
getField VkExternalImageFormatPropertiesNV
x
          = IO VkExternalMemoryFeatureFlagsNV -> VkExternalMemoryFeatureFlagsNV
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkExternalMemoryFeatureFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatPropertiesNV
-> Ptr VkExternalImageFormatPropertiesNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatPropertiesNV
x) (Int
32))
{-# LINE 818 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatPropertiesNV
-> IO
     (FieldType
        "externalMemoryFeatures" VkExternalImageFormatPropertiesNV)
readField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkExternalMemoryFeatureFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
32)
{-# LINE 822 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "externalMemoryFeatures"
           VkExternalImageFormatPropertiesNV
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatPropertiesNV
-> FieldType
     "externalMemoryFeatures" VkExternalImageFormatPropertiesNV
-> IO ()
writeField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> VkExternalMemoryFeatureFlagsNV -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
32)
{-# LINE 830 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "exportFromImportedHandleTypes"
           VkExternalImageFormatPropertiesNV
         where
        type FieldType "exportFromImportedHandleTypes"
               VkExternalImageFormatPropertiesNV
             = VkExternalMemoryHandleTypeFlagsNV
        type FieldOptional "exportFromImportedHandleTypes"
               VkExternalImageFormatPropertiesNV
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "exportFromImportedHandleTypes"
               VkExternalImageFormatPropertiesNV
             =
             (36)
{-# LINE 845 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "exportFromImportedHandleTypes"
               VkExternalImageFormatPropertiesNV
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
36)
{-# LINE 855 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "exportFromImportedHandleTypes"
           VkExternalImageFormatPropertiesNV
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatPropertiesNV
-> FieldType
     "exportFromImportedHandleTypes" VkExternalImageFormatPropertiesNV
getField VkExternalImageFormatPropertiesNV
x
          = IO VkExternalMemoryHandleTypeFlagsNV
-> VkExternalMemoryHandleTypeFlagsNV
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkExternalMemoryHandleTypeFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatPropertiesNV
-> Ptr VkExternalImageFormatPropertiesNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatPropertiesNV
x) (Int
36))
{-# LINE 864 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatPropertiesNV
-> IO
     (FieldType
        "exportFromImportedHandleTypes" VkExternalImageFormatPropertiesNV)
readField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkExternalMemoryHandleTypeFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
36)
{-# LINE 868 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "exportFromImportedHandleTypes"
           VkExternalImageFormatPropertiesNV
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatPropertiesNV
-> FieldType
     "exportFromImportedHandleTypes" VkExternalImageFormatPropertiesNV
-> IO ()
writeField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> VkExternalMemoryHandleTypeFlagsNV -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
36)
{-# LINE 876 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "compatibleHandleTypes" VkExternalImageFormatPropertiesNV
         where
        type FieldType "compatibleHandleTypes"
               VkExternalImageFormatPropertiesNV
             = VkExternalMemoryHandleTypeFlagsNV
        type FieldOptional "compatibleHandleTypes"
               VkExternalImageFormatPropertiesNV
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "compatibleHandleTypes"
               VkExternalImageFormatPropertiesNV
             =
             (40)
{-# LINE 890 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "compatibleHandleTypes"
               VkExternalImageFormatPropertiesNV
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
40)
{-# LINE 900 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "compatibleHandleTypes"
           VkExternalImageFormatPropertiesNV
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalImageFormatPropertiesNV
-> FieldType
     "compatibleHandleTypes" VkExternalImageFormatPropertiesNV
getField VkExternalImageFormatPropertiesNV
x
          = IO VkExternalMemoryHandleTypeFlagsNV
-> VkExternalMemoryHandleTypeFlagsNV
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkExternalMemoryHandleTypeFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalImageFormatPropertiesNV
-> Ptr VkExternalImageFormatPropertiesNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalImageFormatPropertiesNV
x) (Int
40))
{-# LINE 909 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalImageFormatPropertiesNV
-> IO
     (FieldType
        "compatibleHandleTypes" VkExternalImageFormatPropertiesNV)
readField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> IO VkExternalMemoryHandleTypeFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
40)
{-# LINE 913 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "compatibleHandleTypes"
           VkExternalImageFormatPropertiesNV
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalImageFormatPropertiesNV
-> FieldType
     "compatibleHandleTypes" VkExternalImageFormatPropertiesNV
-> IO ()
writeField Ptr VkExternalImageFormatPropertiesNV
p
          = Ptr VkExternalImageFormatPropertiesNV
-> Int -> VkExternalMemoryHandleTypeFlagsNV -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalImageFormatPropertiesNV
p (Int
40)
{-# LINE 921 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalImageFormatPropertiesNV where
        showsPrec :: Int -> VkExternalImageFormatPropertiesNV -> ShowS
showsPrec Int
d VkExternalImageFormatPropertiesNV
x
          = String -> ShowS
showString String
"VkExternalImageFormatPropertiesNV {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"imageFormatProperties = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageFormatProperties -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatPropertiesNV
-> FieldType
     "imageFormatProperties" VkExternalImageFormatPropertiesNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"imageFormatProperties" VkExternalImageFormatPropertiesNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"externalMemoryFeatures = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> VkExternalMemoryFeatureFlagsNV -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatPropertiesNV
-> FieldType
     "externalMemoryFeatures" VkExternalImageFormatPropertiesNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"externalMemoryFeatures" VkExternalImageFormatPropertiesNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"exportFromImportedHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryHandleTypeFlagsNV -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatPropertiesNV
-> FieldType
     "exportFromImportedHandleTypes" VkExternalImageFormatPropertiesNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"exportFromImportedHandleTypes" VkExternalImageFormatPropertiesNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"compatibleHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkExternalMemoryHandleTypeFlagsNV -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalImageFormatPropertiesNV
-> FieldType
     "compatibleHandleTypes" VkExternalImageFormatPropertiesNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"compatibleHandleTypes" VkExternalImageFormatPropertiesNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

instance Eq VkExternalMemoryBufferCreateInfo where
        (VkExternalMemoryBufferCreateInfo# Addr#
a ByteArray#
_) == :: VkExternalMemoryBufferCreateInfo
-> VkExternalMemoryBufferCreateInfo -> Bool
==
          x :: VkExternalMemoryBufferCreateInfo
x@(VkExternalMemoryBufferCreateInfo# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryBufferCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryBufferCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalMemoryBufferCreateInfo where
        (VkExternalMemoryBufferCreateInfo# Addr#
a ByteArray#
_) compare :: VkExternalMemoryBufferCreateInfo
-> VkExternalMemoryBufferCreateInfo -> Ordering
`compare`
          x :: VkExternalMemoryBufferCreateInfo
x@(VkExternalMemoryBufferCreateInfo# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryBufferCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryBufferCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalMemoryBufferCreateInfo where
        sizeOf :: VkExternalMemoryBufferCreateInfo -> Int
sizeOf ~VkExternalMemoryBufferCreateInfo
_ = (Int
24)
{-# LINE 963 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalMemoryBufferCreateInfo -> Int
alignment ~VkExternalMemoryBufferCreateInfo
_
          = Int
8
{-# LINE 967 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalMemoryBufferCreateInfo
-> IO VkExternalMemoryBufferCreateInfo
peek = Ptr VkExternalMemoryBufferCreateInfo
-> IO VkExternalMemoryBufferCreateInfo
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalMemoryBufferCreateInfo
-> VkExternalMemoryBufferCreateInfo -> IO ()
poke = Ptr VkExternalMemoryBufferCreateInfo
-> VkExternalMemoryBufferCreateInfo -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalMemoryBufferCreateInfo where
        unsafeAddr :: VkExternalMemoryBufferCreateInfo -> Addr#
unsafeAddr (VkExternalMemoryBufferCreateInfo# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalMemoryBufferCreateInfo -> ByteArray#
unsafeByteArray (VkExternalMemoryBufferCreateInfo# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalMemoryBufferCreateInfo
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalMemoryBufferCreateInfo
VkExternalMemoryBufferCreateInfo#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalMemoryBufferCreateInfo where
        type StructFields VkExternalMemoryBufferCreateInfo =
             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
        type CUnionType VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkExternalMemoryBufferCreateInfo =
             '[VkBufferCreateInfo] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 1014 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalMemoryBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryBufferCreateInfo
-> FieldType "sType" VkExternalMemoryBufferCreateInfo
getField VkExternalMemoryBufferCreateInfo
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryBufferCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryBufferCreateInfo
-> Ptr VkExternalMemoryBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryBufferCreateInfo
x) (Int
0))
{-# LINE 1021 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryBufferCreateInfo
-> IO (FieldType "sType" VkExternalMemoryBufferCreateInfo)
readField Ptr VkExternalMemoryBufferCreateInfo
p
          = Ptr VkExternalMemoryBufferCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryBufferCreateInfo
p (Int
0)
{-# LINE 1025 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalMemoryBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryBufferCreateInfo
-> FieldType "sType" VkExternalMemoryBufferCreateInfo -> IO ()
writeField Ptr VkExternalMemoryBufferCreateInfo
p
          = Ptr VkExternalMemoryBufferCreateInfo
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryBufferCreateInfo
p (Int
0)
{-# LINE 1031 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 1047 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalMemoryBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryBufferCreateInfo
-> FieldType "pNext" VkExternalMemoryBufferCreateInfo
getField VkExternalMemoryBufferCreateInfo
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryBufferCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryBufferCreateInfo
-> Ptr VkExternalMemoryBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryBufferCreateInfo
x) (Int
8))
{-# LINE 1054 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryBufferCreateInfo
-> IO (FieldType "pNext" VkExternalMemoryBufferCreateInfo)
readField Ptr VkExternalMemoryBufferCreateInfo
p
          = Ptr VkExternalMemoryBufferCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryBufferCreateInfo
p (Int
8)
{-# LINE 1058 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalMemoryBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryBufferCreateInfo
-> FieldType "pNext" VkExternalMemoryBufferCreateInfo -> IO ()
writeField Ptr VkExternalMemoryBufferCreateInfo
p
          = Ptr VkExternalMemoryBufferCreateInfo -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryBufferCreateInfo
p (Int
8)
{-# LINE 1064 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "handleTypes" VkExternalMemoryBufferCreateInfo where
        type FieldType "handleTypes" VkExternalMemoryBufferCreateInfo =
             VkExternalMemoryHandleTypeFlags
        type FieldOptional "handleTypes" VkExternalMemoryBufferCreateInfo =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "handleTypes" VkExternalMemoryBufferCreateInfo =
             (16)
{-# LINE 1073 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "handleTypes" VkExternalMemoryBufferCreateInfo =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 1082 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "handleTypes" VkExternalMemoryBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryBufferCreateInfo
-> FieldType "handleTypes" VkExternalMemoryBufferCreateInfo
getField VkExternalMemoryBufferCreateInfo
x
          = IO VkExternalMemoryHandleTypeFlags
-> VkExternalMemoryHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryBufferCreateInfo
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryBufferCreateInfo
-> Ptr VkExternalMemoryBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryBufferCreateInfo
x) (Int
16))
{-# LINE 1089 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryBufferCreateInfo
-> IO (FieldType "handleTypes" VkExternalMemoryBufferCreateInfo)
readField Ptr VkExternalMemoryBufferCreateInfo
p
          = Ptr VkExternalMemoryBufferCreateInfo
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryBufferCreateInfo
p (Int
16)
{-# LINE 1093 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "handleTypes" VkExternalMemoryBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryBufferCreateInfo
-> FieldType "handleTypes" VkExternalMemoryBufferCreateInfo
-> IO ()
writeField Ptr VkExternalMemoryBufferCreateInfo
p
          = Ptr VkExternalMemoryBufferCreateInfo
-> Int -> VkExternalMemoryHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryBufferCreateInfo
p (Int
16)
{-# LINE 1099 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalMemoryBufferCreateInfo where
        showsPrec :: Int -> VkExternalMemoryBufferCreateInfo -> ShowS
showsPrec Int
d VkExternalMemoryBufferCreateInfo
x
          = String -> ShowS
showString String
"VkExternalMemoryBufferCreateInfo {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryBufferCreateInfo
-> FieldType "sType" VkExternalMemoryBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalMemoryBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryBufferCreateInfo
-> FieldType "pNext" VkExternalMemoryBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalMemoryBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"handleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryBufferCreateInfo
-> FieldType "handleTypes" VkExternalMemoryBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"handleTypes" VkExternalMemoryBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalMemoryBufferCreateInfo`
type VkExternalMemoryBufferCreateInfoKHR =
     VkExternalMemoryBufferCreateInfo

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

instance Eq VkExternalMemoryImageCreateInfo where
        (VkExternalMemoryImageCreateInfo# Addr#
a ByteArray#
_) == :: VkExternalMemoryImageCreateInfo
-> VkExternalMemoryImageCreateInfo -> Bool
==
          x :: VkExternalMemoryImageCreateInfo
x@(VkExternalMemoryImageCreateInfo# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryImageCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryImageCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalMemoryImageCreateInfo where
        (VkExternalMemoryImageCreateInfo# Addr#
a ByteArray#
_) compare :: VkExternalMemoryImageCreateInfo
-> VkExternalMemoryImageCreateInfo -> Ordering
`compare`
          x :: VkExternalMemoryImageCreateInfo
x@(VkExternalMemoryImageCreateInfo# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryImageCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryImageCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalMemoryImageCreateInfo where
        sizeOf :: VkExternalMemoryImageCreateInfo -> Int
sizeOf ~VkExternalMemoryImageCreateInfo
_ = (Int
24)
{-# LINE 1141 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalMemoryImageCreateInfo -> Int
alignment ~VkExternalMemoryImageCreateInfo
_
          = Int
8
{-# LINE 1145 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalMemoryImageCreateInfo
-> IO VkExternalMemoryImageCreateInfo
peek = Ptr VkExternalMemoryImageCreateInfo
-> IO VkExternalMemoryImageCreateInfo
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalMemoryImageCreateInfo
-> VkExternalMemoryImageCreateInfo -> IO ()
poke = Ptr VkExternalMemoryImageCreateInfo
-> VkExternalMemoryImageCreateInfo -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalMemoryImageCreateInfo where
        unsafeAddr :: VkExternalMemoryImageCreateInfo -> Addr#
unsafeAddr (VkExternalMemoryImageCreateInfo# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalMemoryImageCreateInfo -> ByteArray#
unsafeByteArray (VkExternalMemoryImageCreateInfo# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalMemoryImageCreateInfo
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalMemoryImageCreateInfo
VkExternalMemoryImageCreateInfo#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalMemoryImageCreateInfo where
        type StructFields VkExternalMemoryImageCreateInfo =
             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
        type CUnionType VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkExternalMemoryImageCreateInfo =
             '[VkImageCreateInfo] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 1191 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalMemoryImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryImageCreateInfo
-> FieldType "sType" VkExternalMemoryImageCreateInfo
getField VkExternalMemoryImageCreateInfo
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryImageCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryImageCreateInfo
-> Ptr VkExternalMemoryImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryImageCreateInfo
x) (Int
0))
{-# LINE 1198 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryImageCreateInfo
-> IO (FieldType "sType" VkExternalMemoryImageCreateInfo)
readField Ptr VkExternalMemoryImageCreateInfo
p
          = Ptr VkExternalMemoryImageCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryImageCreateInfo
p (Int
0)
{-# LINE 1202 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalMemoryImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryImageCreateInfo
-> FieldType "sType" VkExternalMemoryImageCreateInfo -> IO ()
writeField Ptr VkExternalMemoryImageCreateInfo
p
          = Ptr VkExternalMemoryImageCreateInfo
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryImageCreateInfo
p (Int
0)
{-# LINE 1208 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 1223 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalMemoryImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryImageCreateInfo
-> FieldType "pNext" VkExternalMemoryImageCreateInfo
getField VkExternalMemoryImageCreateInfo
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryImageCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryImageCreateInfo
-> Ptr VkExternalMemoryImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryImageCreateInfo
x) (Int
8))
{-# LINE 1230 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryImageCreateInfo
-> IO (FieldType "pNext" VkExternalMemoryImageCreateInfo)
readField Ptr VkExternalMemoryImageCreateInfo
p
          = Ptr VkExternalMemoryImageCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryImageCreateInfo
p (Int
8)
{-# LINE 1234 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalMemoryImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryImageCreateInfo
-> FieldType "pNext" VkExternalMemoryImageCreateInfo -> IO ()
writeField Ptr VkExternalMemoryImageCreateInfo
p
          = Ptr VkExternalMemoryImageCreateInfo -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryImageCreateInfo
p (Int
8)
{-# LINE 1240 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "handleTypes" VkExternalMemoryImageCreateInfo where
        type FieldType "handleTypes" VkExternalMemoryImageCreateInfo =
             VkExternalMemoryHandleTypeFlags
        type FieldOptional "handleTypes" VkExternalMemoryImageCreateInfo =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "handleTypes" VkExternalMemoryImageCreateInfo =
             (16)
{-# LINE 1249 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "handleTypes" VkExternalMemoryImageCreateInfo =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 1258 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "handleTypes" VkExternalMemoryImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryImageCreateInfo
-> FieldType "handleTypes" VkExternalMemoryImageCreateInfo
getField VkExternalMemoryImageCreateInfo
x
          = IO VkExternalMemoryHandleTypeFlags
-> VkExternalMemoryHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryImageCreateInfo
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryImageCreateInfo
-> Ptr VkExternalMemoryImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryImageCreateInfo
x) (Int
16))
{-# LINE 1265 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryImageCreateInfo
-> IO (FieldType "handleTypes" VkExternalMemoryImageCreateInfo)
readField Ptr VkExternalMemoryImageCreateInfo
p
          = Ptr VkExternalMemoryImageCreateInfo
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryImageCreateInfo
p (Int
16)
{-# LINE 1269 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "handleTypes" VkExternalMemoryImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryImageCreateInfo
-> FieldType "handleTypes" VkExternalMemoryImageCreateInfo -> IO ()
writeField Ptr VkExternalMemoryImageCreateInfo
p
          = Ptr VkExternalMemoryImageCreateInfo
-> Int -> VkExternalMemoryHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryImageCreateInfo
p (Int
16)
{-# LINE 1275 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalMemoryImageCreateInfo where
        showsPrec :: Int -> VkExternalMemoryImageCreateInfo -> ShowS
showsPrec Int
d VkExternalMemoryImageCreateInfo
x
          = String -> ShowS
showString String
"VkExternalMemoryImageCreateInfo {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryImageCreateInfo
-> FieldType "sType" VkExternalMemoryImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalMemoryImageCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryImageCreateInfo
-> FieldType "pNext" VkExternalMemoryImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalMemoryImageCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"handleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryImageCreateInfo
-> FieldType "handleTypes" VkExternalMemoryImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"handleTypes" VkExternalMemoryImageCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalMemoryImageCreateInfo`
type VkExternalMemoryImageCreateInfoKHR =
     VkExternalMemoryImageCreateInfo

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

instance Eq VkExternalMemoryImageCreateInfoNV where
        (VkExternalMemoryImageCreateInfoNV# Addr#
a ByteArray#
_) == :: VkExternalMemoryImageCreateInfoNV
-> VkExternalMemoryImageCreateInfoNV -> Bool
==
          x :: VkExternalMemoryImageCreateInfoNV
x@(VkExternalMemoryImageCreateInfoNV# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryImageCreateInfoNV -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryImageCreateInfoNV
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalMemoryImageCreateInfoNV where
        (VkExternalMemoryImageCreateInfoNV# Addr#
a ByteArray#
_) compare :: VkExternalMemoryImageCreateInfoNV
-> VkExternalMemoryImageCreateInfoNV -> Ordering
`compare`
          x :: VkExternalMemoryImageCreateInfoNV
x@(VkExternalMemoryImageCreateInfoNV# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryImageCreateInfoNV -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryImageCreateInfoNV
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalMemoryImageCreateInfoNV where
        sizeOf :: VkExternalMemoryImageCreateInfoNV -> Int
sizeOf ~VkExternalMemoryImageCreateInfoNV
_ = (Int
24)
{-# LINE 1318 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalMemoryImageCreateInfoNV -> Int
alignment ~VkExternalMemoryImageCreateInfoNV
_
          = Int
8
{-# LINE 1322 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalMemoryImageCreateInfoNV
-> IO VkExternalMemoryImageCreateInfoNV
peek = Ptr VkExternalMemoryImageCreateInfoNV
-> IO VkExternalMemoryImageCreateInfoNV
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalMemoryImageCreateInfoNV
-> VkExternalMemoryImageCreateInfoNV -> IO ()
poke = Ptr VkExternalMemoryImageCreateInfoNV
-> VkExternalMemoryImageCreateInfoNV -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalMemoryImageCreateInfoNV where
        unsafeAddr :: VkExternalMemoryImageCreateInfoNV -> Addr#
unsafeAddr (VkExternalMemoryImageCreateInfoNV# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalMemoryImageCreateInfoNV -> ByteArray#
unsafeByteArray (VkExternalMemoryImageCreateInfoNV# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalMemoryImageCreateInfoNV
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalMemoryImageCreateInfoNV
VkExternalMemoryImageCreateInfoNV#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalMemoryImageCreateInfoNV where
        type StructFields VkExternalMemoryImageCreateInfoNV =
             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
        type CUnionType VkExternalMemoryImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalMemoryImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
        type StructExtends VkExternalMemoryImageCreateInfoNV =
             '[VkImageCreateInfo] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 1370 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalMemoryImageCreateInfoNV where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryImageCreateInfoNV
-> FieldType "sType" VkExternalMemoryImageCreateInfoNV
getField VkExternalMemoryImageCreateInfoNV
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryImageCreateInfoNV -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryImageCreateInfoNV
-> Ptr VkExternalMemoryImageCreateInfoNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryImageCreateInfoNV
x) (Int
0))
{-# LINE 1377 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryImageCreateInfoNV
-> IO (FieldType "sType" VkExternalMemoryImageCreateInfoNV)
readField Ptr VkExternalMemoryImageCreateInfoNV
p
          = Ptr VkExternalMemoryImageCreateInfoNV -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryImageCreateInfoNV
p (Int
0)
{-# LINE 1381 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalMemoryImageCreateInfoNV where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryImageCreateInfoNV
-> FieldType "sType" VkExternalMemoryImageCreateInfoNV -> IO ()
writeField Ptr VkExternalMemoryImageCreateInfoNV
p
          = Ptr VkExternalMemoryImageCreateInfoNV
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryImageCreateInfoNV
p (Int
0)
{-# LINE 1387 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 1404 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalMemoryImageCreateInfoNV where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryImageCreateInfoNV
-> FieldType "pNext" VkExternalMemoryImageCreateInfoNV
getField VkExternalMemoryImageCreateInfoNV
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryImageCreateInfoNV -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryImageCreateInfoNV
-> Ptr VkExternalMemoryImageCreateInfoNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryImageCreateInfoNV
x) (Int
8))
{-# LINE 1411 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryImageCreateInfoNV
-> IO (FieldType "pNext" VkExternalMemoryImageCreateInfoNV)
readField Ptr VkExternalMemoryImageCreateInfoNV
p
          = Ptr VkExternalMemoryImageCreateInfoNV -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryImageCreateInfoNV
p (Int
8)
{-# LINE 1415 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalMemoryImageCreateInfoNV where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryImageCreateInfoNV
-> FieldType "pNext" VkExternalMemoryImageCreateInfoNV -> IO ()
writeField Ptr VkExternalMemoryImageCreateInfoNV
p
          = Ptr VkExternalMemoryImageCreateInfoNV -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryImageCreateInfoNV
p (Int
8)
{-# LINE 1421 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "handleTypes" VkExternalMemoryImageCreateInfoNV where
        type FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV =
             VkExternalMemoryHandleTypeFlagsNV
        type FieldOptional "handleTypes" VkExternalMemoryImageCreateInfoNV
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "handleTypes" VkExternalMemoryImageCreateInfoNV =
             (16)
{-# LINE 1430 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "handleTypes" VkExternalMemoryImageCreateInfoNV =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 1439 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "handleTypes" VkExternalMemoryImageCreateInfoNV where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryImageCreateInfoNV
-> FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV
getField VkExternalMemoryImageCreateInfoNV
x
          = IO VkExternalMemoryHandleTypeFlagsNV
-> VkExternalMemoryHandleTypeFlagsNV
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryImageCreateInfoNV
-> Int -> IO VkExternalMemoryHandleTypeFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryImageCreateInfoNV
-> Ptr VkExternalMemoryImageCreateInfoNV
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryImageCreateInfoNV
x) (Int
16))
{-# LINE 1446 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryImageCreateInfoNV
-> IO (FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV)
readField Ptr VkExternalMemoryImageCreateInfoNV
p
          = Ptr VkExternalMemoryImageCreateInfoNV
-> Int -> IO VkExternalMemoryHandleTypeFlagsNV
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryImageCreateInfoNV
p (Int
16)
{-# LINE 1450 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "handleTypes" VkExternalMemoryImageCreateInfoNV where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryImageCreateInfoNV
-> FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV
-> IO ()
writeField Ptr VkExternalMemoryImageCreateInfoNV
p
          = Ptr VkExternalMemoryImageCreateInfoNV
-> Int -> VkExternalMemoryHandleTypeFlagsNV -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryImageCreateInfoNV
p (Int
16)
{-# LINE 1456 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalMemoryImageCreateInfoNV where
        showsPrec :: Int -> VkExternalMemoryImageCreateInfoNV -> ShowS
showsPrec Int
d VkExternalMemoryImageCreateInfoNV
x
          = String -> ShowS
showString String
"VkExternalMemoryImageCreateInfoNV {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryImageCreateInfoNV
-> FieldType "sType" VkExternalMemoryImageCreateInfoNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalMemoryImageCreateInfoNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryImageCreateInfoNV
-> FieldType "pNext" VkExternalMemoryImageCreateInfoNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalMemoryImageCreateInfoNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"handleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryHandleTypeFlagsNV -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryImageCreateInfoNV
-> FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"handleTypes" VkExternalMemoryImageCreateInfoNV
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkExternalMemoryProperties {
--   >     VkExternalMemoryFeatureFlags  externalMemoryFeatures;
--   >     VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
--   >     VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
--   > } VkExternalMemoryProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryProperties VkExternalMemoryProperties registry at www.khronos.org>
data VkExternalMemoryProperties = VkExternalMemoryProperties# Addr#
                                                              ByteArray#

instance Eq VkExternalMemoryProperties where
        (VkExternalMemoryProperties# Addr#
a ByteArray#
_) == :: VkExternalMemoryProperties -> VkExternalMemoryProperties -> Bool
==
          x :: VkExternalMemoryProperties
x@(VkExternalMemoryProperties# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryProperties
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalMemoryProperties where
        (VkExternalMemoryProperties# Addr#
a ByteArray#
_) compare :: VkExternalMemoryProperties
-> VkExternalMemoryProperties -> Ordering
`compare`
          x :: VkExternalMemoryProperties
x@(VkExternalMemoryProperties# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalMemoryProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalMemoryProperties
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalMemoryProperties where
        sizeOf :: VkExternalMemoryProperties -> Int
sizeOf ~VkExternalMemoryProperties
_ = (Int
12)
{-# LINE 1494 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalMemoryProperties -> Int
alignment ~VkExternalMemoryProperties
_ = Int
4
{-# LINE 1497 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalMemoryProperties -> IO VkExternalMemoryProperties
peek = Ptr VkExternalMemoryProperties -> IO VkExternalMemoryProperties
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalMemoryProperties
-> VkExternalMemoryProperties -> IO ()
poke = Ptr VkExternalMemoryProperties
-> VkExternalMemoryProperties -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalMemoryProperties where
        unsafeAddr :: VkExternalMemoryProperties -> Addr#
unsafeAddr (VkExternalMemoryProperties# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalMemoryProperties -> ByteArray#
unsafeByteArray (VkExternalMemoryProperties# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalMemoryProperties
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalMemoryProperties
VkExternalMemoryProperties#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalMemoryProperties where
        type StructFields VkExternalMemoryProperties =
             '["externalMemoryFeatures", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
               "compatibleHandleTypes"]
        type CUnionType VkExternalMemoryProperties = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalMemoryProperties = 'True -- ' closing tick for hsc2hs
        type StructExtends VkExternalMemoryProperties = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "externalMemoryFeatures" VkExternalMemoryProperties where
        type FieldType "externalMemoryFeatures" VkExternalMemoryProperties
             = VkExternalMemoryFeatureFlags
        type FieldOptional "externalMemoryFeatures"
               VkExternalMemoryProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "externalMemoryFeatures"
               VkExternalMemoryProperties
             =
             (0)
{-# LINE 1539 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "externalMemoryFeatures"
               VkExternalMemoryProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 1549 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "externalMemoryFeatures" VkExternalMemoryProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryProperties
-> FieldType "externalMemoryFeatures" VkExternalMemoryProperties
getField VkExternalMemoryProperties
x
          = IO VkExternalMemoryFeatureFlags -> VkExternalMemoryFeatureFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryProperties
-> Int -> IO VkExternalMemoryFeatureFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryProperties -> Ptr VkExternalMemoryProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryProperties
x) (Int
0))
{-# LINE 1557 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryProperties
-> IO
     (FieldType "externalMemoryFeatures" VkExternalMemoryProperties)
readField Ptr VkExternalMemoryProperties
p
          = Ptr VkExternalMemoryProperties
-> Int -> IO VkExternalMemoryFeatureFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryProperties
p (Int
0)
{-# LINE 1561 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "externalMemoryFeatures" VkExternalMemoryProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryProperties
-> FieldType "externalMemoryFeatures" VkExternalMemoryProperties
-> IO ()
writeField Ptr VkExternalMemoryProperties
p
          = Ptr VkExternalMemoryProperties
-> Int -> VkExternalMemoryFeatureFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryProperties
p (Int
0)
{-# LINE 1568 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "exportFromImportedHandleTypes" VkExternalMemoryProperties
         where
        type FieldType "exportFromImportedHandleTypes"
               VkExternalMemoryProperties
             = VkExternalMemoryHandleTypeFlags
        type FieldOptional "exportFromImportedHandleTypes"
               VkExternalMemoryProperties
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "exportFromImportedHandleTypes"
               VkExternalMemoryProperties
             =
             (4)
{-# LINE 1582 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "exportFromImportedHandleTypes"
               VkExternalMemoryProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
4)
{-# LINE 1592 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "exportFromImportedHandleTypes"
           VkExternalMemoryProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalMemoryProperties
getField VkExternalMemoryProperties
x
          = IO VkExternalMemoryHandleTypeFlags
-> VkExternalMemoryHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryProperties
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryProperties -> Ptr VkExternalMemoryProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryProperties
x) (Int
4))
{-# LINE 1601 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryProperties
-> IO
     (FieldType
        "exportFromImportedHandleTypes" VkExternalMemoryProperties)
readField Ptr VkExternalMemoryProperties
p
          = Ptr VkExternalMemoryProperties
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryProperties
p (Int
4)
{-# LINE 1605 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "exportFromImportedHandleTypes"
           VkExternalMemoryProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalMemoryProperties
-> IO ()
writeField Ptr VkExternalMemoryProperties
p
          = Ptr VkExternalMemoryProperties
-> Int -> VkExternalMemoryHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryProperties
p (Int
4)
{-# LINE 1613 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "compatibleHandleTypes" VkExternalMemoryProperties where
        type FieldType "compatibleHandleTypes" VkExternalMemoryProperties =
             VkExternalMemoryHandleTypeFlags
        type FieldOptional "compatibleHandleTypes"
               VkExternalMemoryProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "compatibleHandleTypes" VkExternalMemoryProperties
             =
             (8)
{-# LINE 1624 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "compatibleHandleTypes"
               VkExternalMemoryProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 1634 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "compatibleHandleTypes" VkExternalMemoryProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalMemoryProperties
-> FieldType "compatibleHandleTypes" VkExternalMemoryProperties
getField VkExternalMemoryProperties
x
          = IO VkExternalMemoryHandleTypeFlags
-> VkExternalMemoryHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalMemoryProperties
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalMemoryProperties -> Ptr VkExternalMemoryProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalMemoryProperties
x) (Int
8))
{-# LINE 1642 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalMemoryProperties
-> IO
     (FieldType "compatibleHandleTypes" VkExternalMemoryProperties)
readField Ptr VkExternalMemoryProperties
p
          = Ptr VkExternalMemoryProperties
-> Int -> IO VkExternalMemoryHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalMemoryProperties
p (Int
8)
{-# LINE 1646 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "compatibleHandleTypes" VkExternalMemoryProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalMemoryProperties
-> FieldType "compatibleHandleTypes" VkExternalMemoryProperties
-> IO ()
writeField Ptr VkExternalMemoryProperties
p
          = Ptr VkExternalMemoryProperties
-> Int -> VkExternalMemoryHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalMemoryProperties
p (Int
8)
{-# LINE 1653 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalMemoryProperties where
        showsPrec :: Int -> VkExternalMemoryProperties -> ShowS
showsPrec Int
d VkExternalMemoryProperties
x
          = String -> ShowS
showString String
"VkExternalMemoryProperties {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"externalMemoryFeatures = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkExternalMemoryFeatureFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryProperties
-> FieldType "externalMemoryFeatures" VkExternalMemoryProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"externalMemoryFeatures" VkExternalMemoryProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"exportFromImportedHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> VkExternalMemoryHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalMemoryProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"exportFromImportedHandleTypes" VkExternalMemoryProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"compatibleHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalMemoryHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalMemoryProperties
-> FieldType "compatibleHandleTypes" VkExternalMemoryProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"compatibleHandleTypes" VkExternalMemoryProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalMemoryProperties`
type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties

-- | > typedef struct VkExternalSemaphoreProperties {
--   >     VkStructureType sType;
--   >     void*                            pNext;
--   >     VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
--   >     VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
--   >     VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
--   > } VkExternalSemaphoreProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalSemaphoreProperties VkExternalSemaphoreProperties registry at www.khronos.org>
data VkExternalSemaphoreProperties = VkExternalSemaphoreProperties# Addr#
                                                                    ByteArray#

instance Eq VkExternalSemaphoreProperties where
        (VkExternalSemaphoreProperties# Addr#
a ByteArray#
_) == :: VkExternalSemaphoreProperties
-> VkExternalSemaphoreProperties -> Bool
==
          x :: VkExternalSemaphoreProperties
x@(VkExternalSemaphoreProperties# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalSemaphoreProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalSemaphoreProperties
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkExternalSemaphoreProperties where
        (VkExternalSemaphoreProperties# Addr#
a ByteArray#
_) compare :: VkExternalSemaphoreProperties
-> VkExternalSemaphoreProperties -> Ordering
`compare`
          x :: VkExternalSemaphoreProperties
x@(VkExternalSemaphoreProperties# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkExternalSemaphoreProperties -> Int
forall a. Storable a => a -> Int
sizeOf VkExternalSemaphoreProperties
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkExternalSemaphoreProperties where
        sizeOf :: VkExternalSemaphoreProperties -> Int
sizeOf ~VkExternalSemaphoreProperties
_ = (Int
32)
{-# LINE 1696 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkExternalSemaphoreProperties -> Int
alignment ~VkExternalSemaphoreProperties
_
          = Int
8
{-# LINE 1700 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkExternalSemaphoreProperties
-> IO VkExternalSemaphoreProperties
peek = Ptr VkExternalSemaphoreProperties
-> IO VkExternalSemaphoreProperties
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkExternalSemaphoreProperties
-> VkExternalSemaphoreProperties -> IO ()
poke = Ptr VkExternalSemaphoreProperties
-> VkExternalSemaphoreProperties -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkExternalSemaphoreProperties where
        unsafeAddr :: VkExternalSemaphoreProperties -> Addr#
unsafeAddr (VkExternalSemaphoreProperties# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkExternalSemaphoreProperties -> ByteArray#
unsafeByteArray (VkExternalSemaphoreProperties# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkExternalSemaphoreProperties
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkExternalSemaphoreProperties
VkExternalSemaphoreProperties#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkExternalSemaphoreProperties where
        type StructFields VkExternalSemaphoreProperties =
             '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
               "compatibleHandleTypes", "externalSemaphoreFeatures"]
        type CUnionType VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkExternalSemaphoreProperties = 'True -- ' closing tick for hsc2hs
        type StructExtends VkExternalSemaphoreProperties = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 1746 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkExternalSemaphoreProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalSemaphoreProperties
-> FieldType "sType" VkExternalSemaphoreProperties
getField VkExternalSemaphoreProperties
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalSemaphoreProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalSemaphoreProperties -> Ptr VkExternalSemaphoreProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalSemaphoreProperties
x) (Int
0))
{-# LINE 1753 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalSemaphoreProperties
-> IO (FieldType "sType" VkExternalSemaphoreProperties)
readField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalSemaphoreProperties
p (Int
0)
{-# LINE 1757 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkExternalSemaphoreProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalSemaphoreProperties
-> FieldType "sType" VkExternalSemaphoreProperties -> IO ()
writeField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalSemaphoreProperties
p (Int
0)
{-# LINE 1763 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 1778 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkExternalSemaphoreProperties where
        {-# NOINLINE getField #-}
        getField :: VkExternalSemaphoreProperties
-> FieldType "pNext" VkExternalSemaphoreProperties
getField VkExternalSemaphoreProperties
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalSemaphoreProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalSemaphoreProperties -> Ptr VkExternalSemaphoreProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalSemaphoreProperties
x) (Int
8))
{-# LINE 1785 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalSemaphoreProperties
-> IO (FieldType "pNext" VkExternalSemaphoreProperties)
readField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalSemaphoreProperties
p (Int
8)
{-# LINE 1789 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkExternalSemaphoreProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalSemaphoreProperties
-> FieldType "pNext" VkExternalSemaphoreProperties -> IO ()
writeField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalSemaphoreProperties
p (Int
8)
{-# LINE 1795 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "exportFromImportedHandleTypes"
           VkExternalSemaphoreProperties
         where
        type FieldType "exportFromImportedHandleTypes"
               VkExternalSemaphoreProperties
             = VkExternalSemaphoreHandleTypeFlags
        type FieldOptional "exportFromImportedHandleTypes"
               VkExternalSemaphoreProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "exportFromImportedHandleTypes"
               VkExternalSemaphoreProperties
             =
             (16)
{-# LINE 1810 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "exportFromImportedHandleTypes"
               VkExternalSemaphoreProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 1820 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "exportFromImportedHandleTypes"
           VkExternalSemaphoreProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalSemaphoreProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalSemaphoreProperties
getField VkExternalSemaphoreProperties
x
          = IO VkExternalSemaphoreHandleTypeFlags
-> VkExternalSemaphoreHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalSemaphoreProperties
-> Int -> IO VkExternalSemaphoreHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalSemaphoreProperties -> Ptr VkExternalSemaphoreProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalSemaphoreProperties
x) (Int
16))
{-# LINE 1829 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalSemaphoreProperties
-> IO
     (FieldType
        "exportFromImportedHandleTypes" VkExternalSemaphoreProperties)
readField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> IO VkExternalSemaphoreHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalSemaphoreProperties
p (Int
16)
{-# LINE 1833 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "exportFromImportedHandleTypes"
           VkExternalSemaphoreProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalSemaphoreProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalSemaphoreProperties
-> IO ()
writeField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> VkExternalSemaphoreHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalSemaphoreProperties
p (Int
16)
{-# LINE 1841 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "compatibleHandleTypes" VkExternalSemaphoreProperties
         where
        type FieldType "compatibleHandleTypes"
               VkExternalSemaphoreProperties
             = VkExternalSemaphoreHandleTypeFlags
        type FieldOptional "compatibleHandleTypes"
               VkExternalSemaphoreProperties
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "compatibleHandleTypes"
               VkExternalSemaphoreProperties
             =
             (20)
{-# LINE 1855 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "compatibleHandleTypes"
               VkExternalSemaphoreProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
20)
{-# LINE 1865 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "compatibleHandleTypes" VkExternalSemaphoreProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalSemaphoreProperties
-> FieldType "compatibleHandleTypes" VkExternalSemaphoreProperties
getField VkExternalSemaphoreProperties
x
          = IO VkExternalSemaphoreHandleTypeFlags
-> VkExternalSemaphoreHandleTypeFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalSemaphoreProperties
-> Int -> IO VkExternalSemaphoreHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalSemaphoreProperties -> Ptr VkExternalSemaphoreProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalSemaphoreProperties
x) (Int
20))
{-# LINE 1873 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalSemaphoreProperties
-> IO
     (FieldType "compatibleHandleTypes" VkExternalSemaphoreProperties)
readField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> IO VkExternalSemaphoreHandleTypeFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalSemaphoreProperties
p (Int
20)
{-# LINE 1877 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "compatibleHandleTypes" VkExternalSemaphoreProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalSemaphoreProperties
-> FieldType "compatibleHandleTypes" VkExternalSemaphoreProperties
-> IO ()
writeField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> VkExternalSemaphoreHandleTypeFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalSemaphoreProperties
p (Int
20)
{-# LINE 1884 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "externalSemaphoreFeatures" VkExternalSemaphoreProperties
         where
        type FieldType "externalSemaphoreFeatures"
               VkExternalSemaphoreProperties
             = VkExternalSemaphoreFeatureFlags
        type FieldOptional "externalSemaphoreFeatures"
               VkExternalSemaphoreProperties
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "externalSemaphoreFeatures"
               VkExternalSemaphoreProperties
             =
             (24)
{-# LINE 1898 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}
        type FieldIsArray "externalSemaphoreFeatures"
               VkExternalSemaphoreProperties
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
24)
{-# LINE 1908 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "externalSemaphoreFeatures"
           VkExternalSemaphoreProperties
         where
        {-# NOINLINE getField #-}
        getField :: VkExternalSemaphoreProperties
-> FieldType
     "externalSemaphoreFeatures" VkExternalSemaphoreProperties
getField VkExternalSemaphoreProperties
x
          = IO VkExternalSemaphoreFeatureFlags
-> VkExternalSemaphoreFeatureFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkExternalSemaphoreProperties
-> Int -> IO VkExternalSemaphoreFeatureFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkExternalSemaphoreProperties -> Ptr VkExternalSemaphoreProperties
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkExternalSemaphoreProperties
x) (Int
24))
{-# LINE 1917 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkExternalSemaphoreProperties
-> IO
     (FieldType
        "externalSemaphoreFeatures" VkExternalSemaphoreProperties)
readField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> IO VkExternalSemaphoreFeatureFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkExternalSemaphoreProperties
p (Int
24)
{-# LINE 1921 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "externalSemaphoreFeatures"
           VkExternalSemaphoreProperties
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkExternalSemaphoreProperties
-> FieldType
     "externalSemaphoreFeatures" VkExternalSemaphoreProperties
-> IO ()
writeField Ptr VkExternalSemaphoreProperties
p
          = Ptr VkExternalSemaphoreProperties
-> Int -> VkExternalSemaphoreFeatureFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkExternalSemaphoreProperties
p (Int
24)
{-# LINE 1929 "src-gen/Graphics/Vulkan/Types/Struct/External.hsc" #-}

instance Show VkExternalSemaphoreProperties where
        showsPrec :: Int -> VkExternalSemaphoreProperties -> ShowS
showsPrec Int
d VkExternalSemaphoreProperties
x
          = String -> ShowS
showString String
"VkExternalSemaphoreProperties {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalSemaphoreProperties
-> FieldType "sType" VkExternalSemaphoreProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkExternalSemaphoreProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalSemaphoreProperties
-> FieldType "pNext" VkExternalSemaphoreProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkExternalSemaphoreProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"exportFromImportedHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkExternalSemaphoreHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalSemaphoreProperties
-> FieldType
     "exportFromImportedHandleTypes" VkExternalSemaphoreProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"exportFromImportedHandleTypes" VkExternalSemaphoreProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"compatibleHandleTypes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkExternalSemaphoreHandleTypeFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalSemaphoreProperties
-> FieldType "compatibleHandleTypes" VkExternalSemaphoreProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"compatibleHandleTypes" VkExternalSemaphoreProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"externalSemaphoreFeatures = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkExternalSemaphoreFeatureFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkExternalSemaphoreProperties
-> FieldType
     "externalSemaphoreFeatures" VkExternalSemaphoreProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"externalSemaphoreFeatures" VkExternalSemaphoreProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          Char -> ShowS
showChar Char
'}'

-- | Alias for `VkExternalSemaphoreProperties`
type VkExternalSemaphorePropertiesKHR =
     VkExternalSemaphoreProperties