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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleContexts      #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms       #-}
{-# LANGUAGE ScopedTypeVariables   #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
{-# LANGUAGE UndecidableInstances  #-}
module Graphics.Vulkan.Types.Struct.Image
       (VkImageBlit(..), VkImageCopy(..), VkImageCreateInfo(..),
        VkImageFormatListCreateInfoKHR(..), VkImageFormatProperties(..),
        VkImageFormatProperties2(..), VkImageFormatProperties2KHR,
        VkImageMemoryBarrier(..), VkImageMemoryRequirementsInfo2(..),
        VkImageMemoryRequirementsInfo2KHR,
        VkImagePlaneMemoryRequirementsInfo(..),
        VkImagePlaneMemoryRequirementsInfoKHR, VkImageResolve(..),
        VkImageSparseMemoryRequirementsInfo2(..),
        VkImageSparseMemoryRequirementsInfo2KHR, VkImageSubresource(..),
        VkImageSubresourceLayers(..), VkImageSubresourceRange(..),
        VkImageSwapchainCreateInfoKHR(..), VkImageViewCreateInfo(..),
        VkImageViewUsageCreateInfo(..), VkImageViewUsageCreateInfoKHR)
       where
import           Foreign.Storable                              (Storable (..))
import           GHC.Base                                      (Addr#,
                                                                ByteArray#,
                                                                Proxy#,
                                                                byteArrayContents#,
                                                                plusAddr#,
                                                                proxy#)
import           GHC.TypeLits                                  (KnownNat,
                                                                natVal') -- ' closing tick for hsc2hs
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
import           Graphics.Vulkan.Types.Bitmasks                (VkImageViewCreateFlags)
import           Graphics.Vulkan.Types.Enum.AccessFlags        (VkAccessFlags)
import           Graphics.Vulkan.Types.Enum.Format             (VkFormat)
import           Graphics.Vulkan.Types.Enum.Image              (VkImageAspectFlagBits,
                                                                VkImageAspectFlags,
                                                                VkImageCreateFlags,
                                                                VkImageLayout,
                                                                VkImageTiling,
                                                                VkImageType,
                                                                VkImageUsageFlags,
                                                                VkImageViewType)
import           Graphics.Vulkan.Types.Enum.SampleCountFlags   (VkSampleCountFlagBits,
                                                                VkSampleCountFlags)
import           Graphics.Vulkan.Types.Enum.SharingMode        (VkSharingMode)
import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
import           Graphics.Vulkan.Types.Handles                 (VkImage,
                                                                VkSwapchainKHR)
import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
import           Graphics.Vulkan.Types.Struct.Extent           (VkExtent3D)
import           Graphics.Vulkan.Types.Struct.Offset           (VkOffset3D)
import           System.IO.Unsafe                              (unsafeDupablePerformIO)

-- | > typedef struct VkImageBlit {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffsets[2];
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffsets[2];
--   > } VkImageBlit;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageBlit VkImageBlit registry at www.khronos.org>
data VkImageBlit = VkImageBlit# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageBlit where
        sizeOf :: VkImageBlit -> Int
sizeOf ~VkImageBlit
_ = (Int
80)
{-# LINE 86 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageBlit where
        type StructFields VkImageBlit =
             '["srcSubresource", "srcOffsets", "dstSubresource", "dstOffsets"] -- ' closing tick for hsc2hs
        type CUnionType VkImageBlit = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageBlit = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageBlit = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "srcSubresource" VkImageBlit
         where
        type FieldType "srcSubresource" VkImageBlit =
             VkImageSubresourceLayers
        type FieldOptional "srcSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcSubresource" VkImageBlit =
             (0)
{-# LINE 124 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageBlit -> IO (FieldType "srcSubresource" VkImageBlit)
readField Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageBlit
p (Int
0)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcSubresource" VkImageBlit where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageBlit -> FieldType "srcSubresource" VkImageBlit -> IO ()
writeField Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageBlit
p (Int
0)
{-# LINE 148 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "srcOffsets" VkImageBlit
         where
        type FieldType "srcOffsets" VkImageBlit = VkOffset3D
        type FieldOptional "srcOffsets" VkImageBlit = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcOffsets" VkImageBlit =
             (16)
{-# LINE 155 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcOffsets" VkImageBlit = 'True -- ' closing tick for hsc2hs

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

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

instance {-# OVERLAPPING #-}
         (KnownNat idx, IndexInBounds "srcOffsets" idx VkImageBlit) =>
         CanReadFieldArray "srcOffsets" idx VkImageBlit
         where
        {-# SPECIALISE instance
                       CanReadFieldArray "srcOffsets" 0 VkImageBlit #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "srcOffsets" 1 VkImageBlit #-}
        type FieldArrayLength "srcOffsets" VkImageBlit = 2

        {-# INLINE fieldArrayLength #-}
        fieldArrayLength :: Int
fieldArrayLength = Int
2

        {-# INLINE getFieldArray #-}
        getFieldArray :: VkImageBlit -> FieldType "srcOffsets" VkImageBlit
getFieldArray = VkImageBlit -> FieldType "srcOffsets" VkImageBlit
VkImageBlit -> VkOffset3D
f
          where {-# NOINLINE f #-}
                f :: VkImageBlit -> VkOffset3D
f VkImageBlit
x = IO VkOffset3D -> VkOffset3D
forall a. IO a -> a
unsafeDupablePerformIO (Ptr VkImageBlit -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageBlit -> Ptr VkImageBlit
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageBlit
x) Int
off)
                off :: Int
off
                  = (Int
16) Int -> Int -> Int
forall a. Num a => a -> a -> a
+
{-# LINE 183 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                      VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (VkOffset3D
forall a. HasCallStack => a
undefined :: VkOffset3D) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                        Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx)) -- ' closing tick for hsc2hs

        {-# INLINE readFieldArray #-}
        readFieldArray :: Ptr VkImageBlit -> IO (FieldType "srcOffsets" VkImageBlit)
readFieldArray Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageBlit
p
              ((Int
16) Int -> Int -> Int
forall a. Num a => a -> a -> a
+
{-# LINE 190 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                 VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (VkOffset3D
forall a. HasCallStack => a
undefined :: VkOffset3D) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                   Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         (KnownNat idx, IndexInBounds "srcOffsets" idx VkImageBlit) =>
         CanWriteFieldArray "srcOffsets" idx VkImageBlit
         where
        {-# SPECIALISE instance
                       CanWriteFieldArray "srcOffsets" 0 VkImageBlit #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "srcOffsets" 1 VkImageBlit #-}

        {-# INLINE writeFieldArray #-}
        writeFieldArray :: Ptr VkImageBlit -> FieldType "srcOffsets" VkImageBlit -> IO ()
writeFieldArray Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageBlit
p
              ((Int
16) Int -> Int -> Int
forall a. Num a => a -> a -> a
+
{-# LINE 207 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                 VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (VkOffset3D
forall a. HasCallStack => a
undefined :: VkOffset3D) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                   Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageBlit
         where
        type FieldType "dstSubresource" VkImageBlit =
             VkImageSubresourceLayers
        type FieldOptional "dstSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstSubresource" VkImageBlit =
             (40)
{-# LINE 217 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageBlit -> IO (FieldType "dstSubresource" VkImageBlit)
readField Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageBlit
p (Int
40)
{-# LINE 235 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstSubresource" VkImageBlit where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageBlit -> FieldType "dstSubresource" VkImageBlit -> IO ()
writeField Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageBlit
p (Int
40)
{-# LINE 241 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "dstOffsets" VkImageBlit
         where
        type FieldType "dstOffsets" VkImageBlit = VkOffset3D
        type FieldOptional "dstOffsets" VkImageBlit = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstOffsets" VkImageBlit =
             (56)
{-# LINE 248 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstOffsets" VkImageBlit = 'True -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
56)
{-# LINE 255 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         (KnownNat idx, IndexInBounds "dstOffsets" idx VkImageBlit) =>
         CanReadFieldArray "dstOffsets" idx VkImageBlit
         where
        {-# SPECIALISE instance
                       CanReadFieldArray "dstOffsets" 0 VkImageBlit #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "dstOffsets" 1 VkImageBlit #-}
        type FieldArrayLength "dstOffsets" VkImageBlit = 2

        {-# INLINE fieldArrayLength #-}
        fieldArrayLength :: Int
fieldArrayLength = Int
2

        {-# INLINE getFieldArray #-}
        getFieldArray :: VkImageBlit -> FieldType "dstOffsets" VkImageBlit
getFieldArray = VkImageBlit -> FieldType "dstOffsets" VkImageBlit
VkImageBlit -> VkOffset3D
f
          where {-# NOINLINE f #-}
                f :: VkImageBlit -> VkOffset3D
f VkImageBlit
x = IO VkOffset3D -> VkOffset3D
forall a. IO a -> a
unsafeDupablePerformIO (Ptr VkImageBlit -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageBlit -> Ptr VkImageBlit
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageBlit
x) Int
off)
                off :: Int
off
                  = (Int
56) Int -> Int -> Int
forall a. Num a => a -> a -> a
+
{-# LINE 276 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                      VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (VkOffset3D
forall a. HasCallStack => a
undefined :: VkOffset3D) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                        Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx)) -- ' closing tick for hsc2hs

        {-# INLINE readFieldArray #-}
        readFieldArray :: Ptr VkImageBlit -> IO (FieldType "dstOffsets" VkImageBlit)
readFieldArray Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageBlit
p
              ((Int
56) Int -> Int -> Int
forall a. Num a => a -> a -> a
+
{-# LINE 283 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                 VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (VkOffset3D
forall a. HasCallStack => a
undefined :: VkOffset3D) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                   Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         (KnownNat idx, IndexInBounds "dstOffsets" idx VkImageBlit) =>
         CanWriteFieldArray "dstOffsets" idx VkImageBlit
         where
        {-# SPECIALISE instance
                       CanWriteFieldArray "dstOffsets" 0 VkImageBlit #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "dstOffsets" 1 VkImageBlit #-}

        {-# INLINE writeFieldArray #-}
        writeFieldArray :: Ptr VkImageBlit -> FieldType "dstOffsets" VkImageBlit -> IO ()
writeFieldArray Ptr VkImageBlit
p
          = Ptr VkImageBlit -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageBlit
p
              ((Int
56) Int -> Int -> Int
forall a. Num a => a -> a -> a
+
{-# LINE 300 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
                 VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (VkOffset3D
forall a. HasCallStack => a
undefined :: VkOffset3D) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                   Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance Show VkImageBlit where
        showsPrec :: Int -> VkImageBlit -> ShowS
showsPrec Int
d VkImageBlit
x
          = String -> ShowS
showString String
"VkImageBlit {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"srcSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageBlit -> FieldType "srcSubresource" VkImageBlit
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcSubresource" VkImageBlit
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
"srcOffsets = [" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                       Int -> [VkOffset3D] -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                         (let s :: Int
s = VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (FieldType "srcOffsets" VkImageBlit
forall a. HasCallStack => a
undefined :: FieldType "srcOffsets" VkImageBlit)
                              o :: Int
o = HasField "srcOffsets" VkImageBlit => Int
forall (fname :: Symbol) a. HasField fname a => Int
fieldOffset @"srcOffsets" @VkImageBlit
                              f :: Int -> IO (FieldType "srcOffsets" VkImageBlit)
f Int
i
                                = Ptr VkImageBlit -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageBlit -> Ptr VkImageBlit
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageBlit
x) Int
i ::
                                    IO (FieldType "srcOffsets" VkImageBlit)
                            in
                            IO [VkOffset3D] -> [VkOffset3D]
forall a. IO a -> a
unsafeDupablePerformIO (IO [VkOffset3D] -> [VkOffset3D])
-> ([Int] -> IO [VkOffset3D]) -> [Int] -> [VkOffset3D]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> IO VkOffset3D) -> [Int] -> IO [VkOffset3D]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM Int -> IO (FieldType "srcOffsets" VkImageBlit)
Int -> IO VkOffset3D
f ([Int] -> [VkOffset3D]) -> [Int] -> [VkOffset3D]
forall a b. (a -> b) -> a -> b
$
                              (Int -> Int) -> [Int] -> [Int]
forall a b. (a -> b) -> [a] -> [b]
map (\ Int
i -> Int
o Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
s) [Int
0 .. Int
2 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1])
                         ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
']')
                      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
"dstSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageBlit -> FieldType "dstSubresource" VkImageBlit
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstSubresource" VkImageBlit
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
"dstOffsets = [" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                 Int -> [VkOffset3D] -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                   (let s :: Int
s = VkOffset3D -> Int
forall a. Storable a => a -> Int
sizeOf (FieldType "dstOffsets" VkImageBlit
forall a. HasCallStack => a
undefined :: FieldType "dstOffsets" VkImageBlit)
                                        o :: Int
o = HasField "dstOffsets" VkImageBlit => Int
forall (fname :: Symbol) a. HasField fname a => Int
fieldOffset @"dstOffsets" @VkImageBlit
                                        f :: Int -> IO (FieldType "dstOffsets" VkImageBlit)
f Int
i
                                          = Ptr VkImageBlit -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageBlit -> Ptr VkImageBlit
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageBlit
x) Int
i ::
                                              IO (FieldType "dstOffsets" VkImageBlit)
                                      in
                                      IO [VkOffset3D] -> [VkOffset3D]
forall a. IO a -> a
unsafeDupablePerformIO (IO [VkOffset3D] -> [VkOffset3D])
-> ([Int] -> IO [VkOffset3D]) -> [Int] -> [VkOffset3D]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> IO VkOffset3D) -> [Int] -> IO [VkOffset3D]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM Int -> IO (FieldType "dstOffsets" VkImageBlit)
Int -> IO VkOffset3D
f ([Int] -> [VkOffset3D]) -> [Int] -> [VkOffset3D]
forall a b. (a -> b) -> a -> b
$
                                        (Int -> Int) -> [Int] -> [Int]
forall a b. (a -> b) -> [a] -> [b]
map (\ Int
i -> Int
o Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
s) [Int
0 .. Int
2 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1])
                                   ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
']')
                                ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkImageCopy {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffset;
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffset;
--   >     VkExtent3D             extent;
--   > } VkImageCopy;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageCopy VkImageCopy registry at www.khronos.org>
data VkImageCopy = VkImageCopy# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageCopy where
        sizeOf :: VkImageCopy -> Int
sizeOf ~VkImageCopy
_ = (Int
68)
{-# LINE 363 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageCopy where
        type StructFields VkImageCopy =
             '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
               "extent"]
        type CUnionType VkImageCopy = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageCopy = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageCopy = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "srcSubresource" VkImageCopy
         where
        type FieldType "srcSubresource" VkImageCopy =
             VkImageSubresourceLayers
        type FieldOptional "srcSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcSubresource" VkImageCopy =
             (0)
{-# LINE 402 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageCopy -> IO (FieldType "srcSubresource" VkImageCopy)
readField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCopy
p (Int
0)
{-# LINE 420 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcSubresource" VkImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCopy -> FieldType "srcSubresource" VkImageCopy -> IO ()
writeField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCopy
p (Int
0)
{-# LINE 426 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "srcOffset" VkImageCopy where
        type FieldType "srcOffset" VkImageCopy = VkOffset3D
        type FieldOptional "srcOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcOffset" VkImageCopy =
             (16)
{-# LINE 432 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageCopy -> IO (FieldType "srcOffset" VkImageCopy)
readField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCopy
p (Int
16)
{-# LINE 450 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "srcOffset" VkImageCopy
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCopy -> FieldType "srcOffset" VkImageCopy -> IO ()
writeField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCopy
p (Int
16)
{-# LINE 456 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageCopy
         where
        type FieldType "dstSubresource" VkImageCopy =
             VkImageSubresourceLayers
        type FieldOptional "dstSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstSubresource" VkImageCopy =
             (28)
{-# LINE 464 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
28)
{-# LINE 471 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dstSubresource" VkImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkImageCopy -> FieldType "dstSubresource" VkImageCopy
getField VkImageCopy
x
          = IO VkImageSubresourceLayers -> VkImageSubresourceLayers
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCopy -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCopy -> Ptr VkImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCopy
x) (Int
28))
{-# LINE 478 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCopy -> IO (FieldType "dstSubresource" VkImageCopy)
readField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCopy
p (Int
28)
{-# LINE 482 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstSubresource" VkImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCopy -> FieldType "dstSubresource" VkImageCopy -> IO ()
writeField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCopy
p (Int
28)
{-# LINE 488 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "dstOffset" VkImageCopy where
        type FieldType "dstOffset" VkImageCopy = VkOffset3D
        type FieldOptional "dstOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstOffset" VkImageCopy =
             (44)
{-# LINE 494 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
44)
{-# LINE 501 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "dstOffset" VkImageCopy
         where
        {-# NOINLINE getField #-}
        getField :: VkImageCopy -> FieldType "dstOffset" VkImageCopy
getField VkImageCopy
x
          = IO VkOffset3D -> VkOffset3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCopy -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCopy -> Ptr VkImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCopy
x) (Int
44))
{-# LINE 508 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCopy -> IO (FieldType "dstOffset" VkImageCopy)
readField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCopy
p (Int
44)
{-# LINE 512 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "dstOffset" VkImageCopy
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCopy -> FieldType "dstOffset" VkImageCopy -> IO ()
writeField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCopy
p (Int
44)
{-# LINE 518 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "extent" VkImageCopy where
        type FieldType "extent" VkImageCopy = VkExtent3D
        type FieldOptional "extent" VkImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "extent" VkImageCopy =
             (56)
{-# LINE 524 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "extent" VkImageCopy = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
56)
{-# LINE 531 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "extent" VkImageCopy
         where
        {-# NOINLINE getField #-}
        getField :: VkImageCopy -> FieldType "extent" VkImageCopy
getField VkImageCopy
x
          = IO VkExtent3D -> VkExtent3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCopy -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCopy -> Ptr VkImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCopy
x) (Int
56))
{-# LINE 538 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCopy -> IO (FieldType "extent" VkImageCopy)
readField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCopy
p (Int
56)
{-# LINE 542 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "extent" VkImageCopy
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCopy -> FieldType "extent" VkImageCopy -> IO ()
writeField Ptr VkImageCopy
p
          = Ptr VkImageCopy -> Int -> VkExtent3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCopy
p (Int
56)
{-# LINE 548 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageCopy where
        showsPrec :: Int -> VkImageCopy -> ShowS
showsPrec Int
d VkImageCopy
x
          = String -> ShowS
showString String
"VkImageCopy {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"srcSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCopy -> FieldType "srcSubresource" VkImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcSubresource" VkImageCopy
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
"srcOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> VkOffset3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCopy -> FieldType "srcOffset" VkImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcOffset" VkImageCopy
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
"dstSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCopy -> FieldType "dstSubresource" VkImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstSubresource" VkImageCopy
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
"dstOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkOffset3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCopy -> FieldType "dstOffset" VkImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstOffset" VkImageCopy
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
"extent = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkExtent3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCopy -> FieldType "extent" VkImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"extent" VkImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkImageCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkImageCreateFlags     flags;
--   >     VkImageType            imageType;
--   >     VkFormat               format;
--   >     VkExtent3D             extent;
--   >     uint32_t               mipLevels;
--   >     uint32_t               arrayLayers;
--   >     VkSampleCountFlagBits  samples;
--   >     VkImageTiling          tiling;
--   >     VkImageUsageFlags      usage;
--   >     VkSharingMode          sharingMode;
--   >     uint32_t               queueFamilyIndexCount;
--   >     const uint32_t*        pQueueFamilyIndices;
--   >     VkImageLayout          initialLayout;
--   > } VkImageCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageCreateInfo VkImageCreateInfo registry at www.khronos.org>
data VkImageCreateInfo = VkImageCreateInfo# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageCreateInfo where
        sizeOf :: VkImageCreateInfo -> Int
sizeOf ~VkImageCreateInfo
_ = (Int
88)
{-# LINE 602 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageCreateInfo where
        type StructFields VkImageCreateInfo =
             '["sType", "pNext", "flags", "imageType", "format", "extent", -- ' closing tick for hsc2hs
               "mipLevels", "arrayLayers", "samples", "tiling", "usage",
               "sharingMode", "queueFamilyIndexCount", "pQueueFamilyIndices",
               "initialLayout"]
        type CUnionType VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageCreateInfo = '[] -- ' closing tick for hsc2hs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo -> IO (FieldType "flags" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkImageCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
16)
{-# LINE 722 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "flags" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkImageCreateFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
16)
{-# LINE 728 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "imageType" VkImageCreateInfo
         where
        type FieldType "imageType" VkImageCreateInfo = VkImageType
        type FieldOptional "imageType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageType" VkImageCreateInfo =
             (20)
{-# LINE 735 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "imageType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "imageType" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkImageType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
20)
{-# LINE 753 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "imageType" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "imageType" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkImageType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
20)
{-# LINE 759 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "format" VkImageCreateInfo
         where
        type FieldType "format" VkImageCreateInfo = VkFormat
        type FieldOptional "format" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "format" VkImageCreateInfo =
             (24)
{-# LINE 766 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "format" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo -> IO (FieldType "format" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkFormat
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
24)
{-# LINE 784 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "format" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "format" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkFormat -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
24)
{-# LINE 790 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "extent" VkImageCreateInfo
         where
        type FieldType "extent" VkImageCreateInfo = VkExtent3D
        type FieldOptional "extent" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "extent" VkImageCreateInfo =
             (28)
{-# LINE 797 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "extent" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
28)
{-# LINE 804 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "extent" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "extent" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO VkExtent3D -> VkExtent3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
28))
{-# LINE 811 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo -> IO (FieldType "extent" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
28)
{-# LINE 815 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "extent" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "extent" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkExtent3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
28)
{-# LINE 821 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "mipLevels" VkImageCreateInfo
         where
        type FieldType "mipLevels" VkImageCreateInfo = Word32
        type FieldOptional "mipLevels" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "mipLevels" VkImageCreateInfo =
             (40)
{-# LINE 828 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "mipLevels" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "mipLevels" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
40)
{-# LINE 846 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "mipLevels" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "mipLevels" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
40)
{-# LINE 852 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "arrayLayers" VkImageCreateInfo where
        type FieldType "arrayLayers" VkImageCreateInfo = Word32
        type FieldOptional "arrayLayers" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "arrayLayers" VkImageCreateInfo =
             (44)
{-# LINE 859 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "arrayLayers" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
44)
{-# LINE 866 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "arrayLayers" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "arrayLayers" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
44))
{-# LINE 873 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "arrayLayers" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
44)
{-# LINE 877 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "arrayLayers" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "arrayLayers" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
44)
{-# LINE 883 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "samples" VkImageCreateInfo
         where
        type FieldType "samples" VkImageCreateInfo = VkSampleCountFlagBits
        type FieldOptional "samples" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "samples" VkImageCreateInfo =
             (48)
{-# LINE 890 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "samples" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
48)
{-# LINE 897 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "samples" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "samples" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO VkSampleCountFlagBits -> VkSampleCountFlagBits
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO VkSampleCountFlagBits
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
48))
{-# LINE 904 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo -> IO (FieldType "samples" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkSampleCountFlagBits
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
48)
{-# LINE 908 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "samples" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "samples" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkSampleCountFlagBits -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
48)
{-# LINE 914 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "tiling" VkImageCreateInfo
         where
        type FieldType "tiling" VkImageCreateInfo = VkImageTiling
        type FieldOptional "tiling" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "tiling" VkImageCreateInfo =
             (52)
{-# LINE 921 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "tiling" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
52)
{-# LINE 928 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "tiling" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "tiling" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO VkImageTiling -> VkImageTiling
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO VkImageTiling
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
52))
{-# LINE 935 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo -> IO (FieldType "tiling" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkImageTiling
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
52)
{-# LINE 939 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "tiling" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "tiling" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkImageTiling -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
52)
{-# LINE 945 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
56)
{-# LINE 959 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "usage" VkImageCreateInfo
         where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "usage" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO VkImageUsageFlags -> VkImageUsageFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO VkImageUsageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
56))
{-# LINE 966 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo -> IO (FieldType "usage" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkImageUsageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
56)
{-# LINE 970 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "usage" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "usage" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkImageUsageFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
56)
{-# LINE 976 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
60)
{-# LINE 990 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sharingMode" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "sharingMode" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO VkSharingMode -> VkSharingMode
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO VkSharingMode
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
60))
{-# LINE 997 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "sharingMode" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkSharingMode
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
60)
{-# LINE 1001 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sharingMode" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "sharingMode" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkSharingMode -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
60)
{-# LINE 1007 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
64)
{-# LINE 1024 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "queueFamilyIndexCount" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo
-> FieldType "queueFamilyIndexCount" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
64))
{-# LINE 1031 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "queueFamilyIndexCount" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
64)
{-# LINE 1035 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "queueFamilyIndexCount" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "queueFamilyIndexCount" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
64)
{-# LINE 1041 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
72)
{-# LINE 1056 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pQueueFamilyIndices" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo
-> FieldType "pQueueFamilyIndices" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO (Ptr Word32) -> Ptr Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO (Ptr Word32)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
72))
{-# LINE 1063 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "pQueueFamilyIndices" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO (Ptr Word32)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
72)
{-# LINE 1067 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pQueueFamilyIndices" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "pQueueFamilyIndices" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> Ptr Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
72)
{-# LINE 1073 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "initialLayout" VkImageCreateInfo where
        type FieldType "initialLayout" VkImageCreateInfo = VkImageLayout
        type FieldOptional "initialLayout" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "initialLayout" VkImageCreateInfo =
             (80)
{-# LINE 1080 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "initialLayout" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
80)
{-# LINE 1088 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "initialLayout" VkImageCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageCreateInfo -> FieldType "initialLayout" VkImageCreateInfo
getField VkImageCreateInfo
x
          = IO VkImageLayout -> VkImageLayout
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageCreateInfo -> Int -> IO VkImageLayout
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageCreateInfo -> Ptr VkImageCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageCreateInfo
x) (Int
80))
{-# LINE 1095 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageCreateInfo
-> IO (FieldType "initialLayout" VkImageCreateInfo)
readField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> IO VkImageLayout
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageCreateInfo
p (Int
80)
{-# LINE 1099 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "initialLayout" VkImageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageCreateInfo
-> FieldType "initialLayout" VkImageCreateInfo -> IO ()
writeField Ptr VkImageCreateInfo
p
          = Ptr VkImageCreateInfo -> Int -> VkImageLayout -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageCreateInfo
p (Int
80)
{-# LINE 1105 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageCreateInfo where
        showsPrec :: Int -> VkImageCreateInfo -> ShowS
showsPrec Int
d VkImageCreateInfo
x
          = String -> ShowS
showString String
"VkImageCreateInfo {" 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 (VkImageCreateInfo -> FieldType "sType" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageCreateInfo
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 (VkImageCreateInfo -> FieldType "pNext" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageCreateInfo
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
"flags = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImageCreateFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "flags" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"flags" VkImageCreateInfo
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
"imageType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkImageType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "imageType" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"imageType" VkImageCreateInfo
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
"format = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkFormat -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "format" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"format" VkImageCreateInfo
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
"extent = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkExtent3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "extent" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"extent" VkImageCreateInfo
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
"mipLevels = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "mipLevels" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"mipLevels" VkImageCreateInfo
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
"arrayLayers = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                          Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "arrayLayers" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"arrayLayers" VkImageCreateInfo
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
"samples = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                Int -> VkSampleCountFlagBits -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageCreateInfo -> FieldType "samples" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"samples" VkImageCreateInfo
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
"tiling = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                      Int -> VkImageTiling -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                        (VkImageCreateInfo -> FieldType "tiling" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"tiling" VkImageCreateInfo
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
"usage = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                            Int -> VkImageUsageFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                              (VkImageCreateInfo -> FieldType "usage" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"usage" VkImageCreateInfo
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
"sharingMode = "
                                                                                  ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                                  Int -> VkSharingMode -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                                    (VkImageCreateInfo -> FieldType "sharingMode" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField
                                                                                       @"sharingMode"
                                                                                       VkImageCreateInfo
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
"queueFamilyIndexCount = "
                                                                                        ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                                        Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                                          (VkImageCreateInfo
-> FieldType "queueFamilyIndexCount" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField
                                                                                             @"queueFamilyIndexCount"
                                                                                             VkImageCreateInfo
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
"pQueueFamilyIndices = "
                                                                                              ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                                              Int -> Ptr Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec
                                                                                                Int
d
                                                                                                (VkImageCreateInfo
-> FieldType "pQueueFamilyIndices" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField
                                                                                                   @"pQueueFamilyIndices"
                                                                                                   VkImageCreateInfo
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
"initialLayout = "
                                                                                                    ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                                                    Int -> VkImageLayout -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec
                                                                                                      Int
d
                                                                                                      (VkImageCreateInfo -> FieldType "initialLayout" VkImageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField
                                                                                                         @"initialLayout"
                                                                                                         VkImageCreateInfo
x)
                                                                                                      ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                                                      Char -> ShowS
showChar
                                                                                                        Char
'}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "viewFormatCount" VkImageFormatListCreateInfoKHR where
        type FieldType "viewFormatCount" VkImageFormatListCreateInfoKHR =
             Word32
        type FieldOptional "viewFormatCount" VkImageFormatListCreateInfoKHR
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "viewFormatCount" VkImageFormatListCreateInfoKHR =
             (16)
{-# LINE 1326 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "viewFormatCount" VkImageFormatListCreateInfoKHR
             = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageFormatListCreateInfoKHR
-> IO (FieldType "viewFormatCount" VkImageFormatListCreateInfoKHR)
readField Ptr VkImageFormatListCreateInfoKHR
p
          = Ptr VkImageFormatListCreateInfoKHR -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageFormatListCreateInfoKHR
p (Int
16)
{-# LINE 1346 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "viewFormatCount" VkImageFormatListCreateInfoKHR
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageFormatListCreateInfoKHR
-> FieldType "viewFormatCount" VkImageFormatListCreateInfoKHR
-> IO ()
writeField Ptr VkImageFormatListCreateInfoKHR
p
          = Ptr VkImageFormatListCreateInfoKHR -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageFormatListCreateInfoKHR
p (Int
16)
{-# LINE 1353 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pViewFormats" VkImageFormatListCreateInfoKHR where
        type FieldType "pViewFormats" VkImageFormatListCreateInfoKHR =
             Ptr VkFormat
        type FieldOptional "pViewFormats" VkImageFormatListCreateInfoKHR =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pViewFormats" VkImageFormatListCreateInfoKHR =
             (24)
{-# LINE 1362 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "pViewFormats" VkImageFormatListCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageFormatListCreateInfoKHR
-> IO (FieldType "pViewFormats" VkImageFormatListCreateInfoKHR)
readField Ptr VkImageFormatListCreateInfoKHR
p
          = Ptr VkImageFormatListCreateInfoKHR -> Int -> IO (Ptr VkFormat)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageFormatListCreateInfoKHR
p (Int
24)
{-# LINE 1382 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pViewFormats" VkImageFormatListCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageFormatListCreateInfoKHR
-> FieldType "pViewFormats" VkImageFormatListCreateInfoKHR -> IO ()
writeField Ptr VkImageFormatListCreateInfoKHR
p
          = Ptr VkImageFormatListCreateInfoKHR -> Int -> Ptr VkFormat -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageFormatListCreateInfoKHR
p (Int
24)
{-# LINE 1388 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageFormatListCreateInfoKHR where
        showsPrec :: Int -> VkImageFormatListCreateInfoKHR -> ShowS
showsPrec Int
d VkImageFormatListCreateInfoKHR
x
          = String -> ShowS
showString String
"VkImageFormatListCreateInfoKHR {" 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 (VkImageFormatListCreateInfoKHR
-> FieldType "sType" VkImageFormatListCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageFormatListCreateInfoKHR
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 (VkImageFormatListCreateInfoKHR
-> FieldType "pNext" VkImageFormatListCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageFormatListCreateInfoKHR
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
"viewFormatCount = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatListCreateInfoKHR
-> FieldType "viewFormatCount" VkImageFormatListCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"viewFormatCount" VkImageFormatListCreateInfoKHR
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
"pViewFormats = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> Ptr VkFormat -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatListCreateInfoKHR
-> FieldType "pViewFormats" VkImageFormatListCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pViewFormats" VkImageFormatListCreateInfoKHR
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkImageFormatProperties {
--   >     VkExtent3D             maxExtent;
--   >     uint32_t               maxMipLevels;
--   >     uint32_t               maxArrayLayers;
--   >     VkSampleCountFlags     sampleCounts;
--   >     VkDeviceSize           maxResourceSize;
--   > } VkImageFormatProperties;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatProperties VkImageFormatProperties registry at www.khronos.org>
data VkImageFormatProperties = VkImageFormatProperties# Addr#
                                                        ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageFormatProperties where
        type StructFields VkImageFormatProperties =
             '["maxExtent", "maxMipLevels", "maxArrayLayers", "sampleCounts", -- ' closing tick for hsc2hs
               "maxResourceSize"]
        type CUnionType VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageFormatProperties = 'True -- ' closing tick for hsc2hs
        type StructExtends VkImageFormatProperties = '[] -- ' closing tick for hsc2hs

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "maxMipLevels" VkImageFormatProperties where
        type FieldType "maxMipLevels" VkImageFormatProperties = Word32
        type FieldOptional "maxMipLevels" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
        type FieldOffset "maxMipLevels" VkImageFormatProperties =
             (12)
{-# LINE 1500 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "maxMipLevels" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
12)
{-# LINE 1508 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageFormatProperties
-> IO (FieldType "maxMipLevels" VkImageFormatProperties)
readField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageFormatProperties
p (Int
12)
{-# LINE 1519 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxMipLevels" VkImageFormatProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageFormatProperties
-> FieldType "maxMipLevels" VkImageFormatProperties -> IO ()
writeField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageFormatProperties
p (Int
12)
{-# LINE 1525 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxArrayLayers" VkImageFormatProperties where
        type FieldType "maxArrayLayers" VkImageFormatProperties = Word32
        type FieldOptional "maxArrayLayers" VkImageFormatProperties =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxArrayLayers" VkImageFormatProperties =
             (16)
{-# LINE 1533 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "maxArrayLayers" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageFormatProperties
-> IO (FieldType "maxArrayLayers" VkImageFormatProperties)
readField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageFormatProperties
p (Int
16)
{-# LINE 1552 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxArrayLayers" VkImageFormatProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageFormatProperties
-> FieldType "maxArrayLayers" VkImageFormatProperties -> IO ()
writeField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageFormatProperties
p (Int
16)
{-# LINE 1558 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "sampleCounts" VkImageFormatProperties where
        type FieldType "sampleCounts" VkImageFormatProperties =
             VkSampleCountFlags
        type FieldOptional "sampleCounts" VkImageFormatProperties = 'True -- ' closing tick for hsc2hs
        type FieldOffset "sampleCounts" VkImageFormatProperties =
             (20)
{-# LINE 1566 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "sampleCounts" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageFormatProperties
-> IO (FieldType "sampleCounts" VkImageFormatProperties)
readField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> IO VkSampleCountFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageFormatProperties
p (Int
20)
{-# LINE 1585 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sampleCounts" VkImageFormatProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageFormatProperties
-> FieldType "sampleCounts" VkImageFormatProperties -> IO ()
writeField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> VkSampleCountFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageFormatProperties
p (Int
20)
{-# LINE 1591 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "maxResourceSize" VkImageFormatProperties where
        type FieldType "maxResourceSize" VkImageFormatProperties =
             VkDeviceSize
        type FieldOptional "maxResourceSize" VkImageFormatProperties =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "maxResourceSize" VkImageFormatProperties =
             (24)
{-# LINE 1600 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "maxResourceSize" VkImageFormatProperties =
             'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageFormatProperties
-> IO (FieldType "maxResourceSize" VkImageFormatProperties)
readField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageFormatProperties
p (Int
24)
{-# LINE 1620 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "maxResourceSize" VkImageFormatProperties where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageFormatProperties
-> FieldType "maxResourceSize" VkImageFormatProperties -> IO ()
writeField Ptr VkImageFormatProperties
p
          = Ptr VkImageFormatProperties -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageFormatProperties
p (Int
24)
{-# LINE 1626 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageFormatProperties where
        showsPrec :: Int -> VkImageFormatProperties -> ShowS
showsPrec Int
d VkImageFormatProperties
x
          = String -> ShowS
showString String
"VkImageFormatProperties {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"maxExtent = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkExtent3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatProperties
-> FieldType "maxExtent" VkImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"maxExtent" VkImageFormatProperties
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
"maxMipLevels = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatProperties
-> FieldType "maxMipLevels" VkImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"maxMipLevels" VkImageFormatProperties
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
"maxArrayLayers = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatProperties
-> FieldType "maxArrayLayers" VkImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"maxArrayLayers" VkImageFormatProperties
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
"sampleCounts = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkSampleCountFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatProperties
-> FieldType "sampleCounts" VkImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sampleCounts" VkImageFormatProperties
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
"maxResourceSize = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageFormatProperties
-> FieldType "maxResourceSize" VkImageFormatProperties
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"maxResourceSize" VkImageFormatProperties
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

instance Show VkImageFormatProperties2 where
        showsPrec :: Int -> VkImageFormatProperties2 -> ShowS
showsPrec Int
d VkImageFormatProperties2
x
          = String -> ShowS
showString String
"VkImageFormatProperties2 {" 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 (VkImageFormatProperties2
-> FieldType "sType" VkImageFormatProperties2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageFormatProperties2
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 (VkImageFormatProperties2
-> FieldType "pNext" VkImageFormatProperties2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageFormatProperties2
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
"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 (VkImageFormatProperties2
-> FieldType "imageFormatProperties" VkImageFormatProperties2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"imageFormatProperties" VkImageFormatProperties2
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkImageFormatProperties2`
type VkImageFormatProperties2KHR = VkImageFormatProperties2

-- | > typedef struct VkImageMemoryBarrier {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkAccessFlags          srcAccessMask;
--   >     VkAccessFlags          dstAccessMask;
--   >     VkImageLayout          oldLayout;
--   >     VkImageLayout          newLayout;
--   >     uint32_t               srcQueueFamilyIndex;
--   >     uint32_t               dstQueueFamilyIndex;
--   >     VkImage                image;
--   >     VkImageSubresourceRange subresourceRange;
--   > } VkImageMemoryBarrier;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageMemoryBarrier VkImageMemoryBarrier registry at www.khronos.org>
data VkImageMemoryBarrier = VkImageMemoryBarrier# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageMemoryBarrier where
        sizeOf :: VkImageMemoryBarrier -> Int
sizeOf ~VkImageMemoryBarrier
_ = (Int
72)
{-# LINE 1844 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageMemoryBarrier where
        type StructFields VkImageMemoryBarrier =
             '["sType", "pNext", "srcAccessMask", "dstAccessMask", "oldLayout", -- ' closing tick for hsc2hs
               "newLayout", "srcQueueFamilyIndex", "dstQueueFamilyIndex", "image",
               "subresourceRange"]
        type CUnionType VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageMemoryBarrier = '[] -- ' closing tick for hsc2hs

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "srcAccessMask" VkImageMemoryBarrier where
        type FieldType "srcAccessMask" VkImageMemoryBarrier = VkAccessFlags
        type FieldOptional "srcAccessMask" VkImageMemoryBarrier = 'True -- ' closing tick for hsc2hs
        type FieldOffset "srcAccessMask" VkImageMemoryBarrier =
             (16)
{-# LINE 1945 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcAccessMask" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "srcAccessMask" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO VkAccessFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
16)
{-# LINE 1964 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcAccessMask" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "srcAccessMask" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> VkAccessFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
16)
{-# LINE 1970 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dstAccessMask" VkImageMemoryBarrier where
        type FieldType "dstAccessMask" VkImageMemoryBarrier = VkAccessFlags
        type FieldOptional "dstAccessMask" VkImageMemoryBarrier = 'True -- ' closing tick for hsc2hs
        type FieldOffset "dstAccessMask" VkImageMemoryBarrier =
             (20)
{-# LINE 1977 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstAccessMask" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "dstAccessMask" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO VkAccessFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
20)
{-# LINE 1996 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstAccessMask" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "dstAccessMask" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> VkAccessFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
20)
{-# LINE 2002 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "oldLayout" VkImageMemoryBarrier where
        type FieldType "oldLayout" VkImageMemoryBarrier = VkImageLayout
        type FieldOptional "oldLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "oldLayout" VkImageMemoryBarrier =
             (24)
{-# LINE 2009 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "oldLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "oldLayout" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO VkImageLayout
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
24)
{-# LINE 2027 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "oldLayout" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "oldLayout" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> VkImageLayout -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
24)
{-# LINE 2033 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "newLayout" VkImageMemoryBarrier where
        type FieldType "newLayout" VkImageMemoryBarrier = VkImageLayout
        type FieldOptional "newLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "newLayout" VkImageMemoryBarrier =
             (28)
{-# LINE 2040 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "newLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
28)
{-# LINE 2047 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "newLayout" VkImageMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkImageMemoryBarrier -> FieldType "newLayout" VkImageMemoryBarrier
getField VkImageMemoryBarrier
x
          = IO VkImageLayout -> VkImageLayout
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageMemoryBarrier -> Int -> IO VkImageLayout
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageMemoryBarrier -> Ptr VkImageMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageMemoryBarrier
x) (Int
28))
{-# LINE 2054 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "newLayout" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO VkImageLayout
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
28)
{-# LINE 2058 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "newLayout" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "newLayout" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> VkImageLayout -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
28)
{-# LINE 2064 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "srcQueueFamilyIndex" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
32)
{-# LINE 2092 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcQueueFamilyIndex" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "srcQueueFamilyIndex" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
32)
{-# LINE 2098 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dstQueueFamilyIndex" VkImageMemoryBarrier where
        type FieldType "dstQueueFamilyIndex" VkImageMemoryBarrier = Word32
        type FieldOptional "dstQueueFamilyIndex" VkImageMemoryBarrier =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "dstQueueFamilyIndex" VkImageMemoryBarrier =
             (36)
{-# LINE 2106 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstQueueFamilyIndex" VkImageMemoryBarrier =
             'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "dstQueueFamilyIndex" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
36)
{-# LINE 2126 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstQueueFamilyIndex" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "dstQueueFamilyIndex" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
36)
{-# LINE 2132 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "image" VkImageMemoryBarrier
         where
        type FieldType "image" VkImageMemoryBarrier = VkImage
        type FieldOptional "image" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "image" VkImageMemoryBarrier =
             (40)
{-# LINE 2139 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "image" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "image" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO VkImage
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
40)
{-# LINE 2157 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "image" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "image" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> VkImage -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
40)
{-# LINE 2163 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "subresourceRange" VkImageMemoryBarrier where
        type FieldType "subresourceRange" VkImageMemoryBarrier =
             VkImageSubresourceRange
        type FieldOptional "subresourceRange" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "subresourceRange" VkImageMemoryBarrier =
             (48)
{-# LINE 2171 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "subresourceRange" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
48)
{-# LINE 2179 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "subresourceRange" VkImageMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkImageMemoryBarrier
-> FieldType "subresourceRange" VkImageMemoryBarrier
getField VkImageMemoryBarrier
x
          = IO VkImageSubresourceRange -> VkImageSubresourceRange
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageMemoryBarrier -> Int -> IO VkImageSubresourceRange
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageMemoryBarrier -> Ptr VkImageMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageMemoryBarrier
x) (Int
48))
{-# LINE 2186 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryBarrier
-> IO (FieldType "subresourceRange" VkImageMemoryBarrier)
readField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> IO VkImageSubresourceRange
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryBarrier
p (Int
48)
{-# LINE 2190 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "subresourceRange" VkImageMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryBarrier
-> FieldType "subresourceRange" VkImageMemoryBarrier -> IO ()
writeField Ptr VkImageMemoryBarrier
p
          = Ptr VkImageMemoryBarrier -> Int -> VkImageSubresourceRange -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryBarrier
p (Int
48)
{-# LINE 2196 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageMemoryBarrier where
        showsPrec :: Int -> VkImageMemoryBarrier -> ShowS
showsPrec Int
d VkImageMemoryBarrier
x
          = String -> ShowS
showString String
"VkImageMemoryBarrier {" 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 (VkImageMemoryBarrier -> FieldType "sType" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageMemoryBarrier
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 (VkImageMemoryBarrier -> FieldType "pNext" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageMemoryBarrier
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
"srcAccessMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkAccessFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryBarrier
-> FieldType "srcAccessMask" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcAccessMask" VkImageMemoryBarrier
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
"dstAccessMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkAccessFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryBarrier
-> FieldType "dstAccessMask" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstAccessMask" VkImageMemoryBarrier
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
"oldLayout = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkImageLayout -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryBarrier -> FieldType "oldLayout" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"oldLayout" VkImageMemoryBarrier
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
"newLayout = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkImageLayout -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryBarrier -> FieldType "newLayout" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"newLayout" VkImageMemoryBarrier
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
"srcQueueFamilyIndex = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryBarrier
-> FieldType "srcQueueFamilyIndex" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcQueueFamilyIndex" VkImageMemoryBarrier
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
"dstQueueFamilyIndex = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                          Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                            (VkImageMemoryBarrier
-> FieldType "dstQueueFamilyIndex" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstQueueFamilyIndex" VkImageMemoryBarrier
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
"image = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                Int -> VkImage -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryBarrier -> FieldType "image" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"image" VkImageMemoryBarrier
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
"subresourceRange = "
                                                                      ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                      Int -> VkImageSubresourceRange -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                                        (VkImageMemoryBarrier
-> FieldType "subresourceRange" VkImageMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField
                                                                           @"subresourceRange"
                                                                           VkImageMemoryBarrier
x)
                                                                        ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "image" VkImageMemoryRequirementsInfo2 where
        type FieldType "image" VkImageMemoryRequirementsInfo2 = VkImage
        type FieldOptional "image" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
        type FieldOffset "image" VkImageMemoryRequirementsInfo2 =
             (16)
{-# LINE 2368 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "image" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageMemoryRequirementsInfo2
-> IO (FieldType "image" VkImageMemoryRequirementsInfo2)
readField Ptr VkImageMemoryRequirementsInfo2
p
          = Ptr VkImageMemoryRequirementsInfo2 -> Int -> IO VkImage
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageMemoryRequirementsInfo2
p (Int
16)
{-# LINE 2387 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "image" VkImageMemoryRequirementsInfo2 where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageMemoryRequirementsInfo2
-> FieldType "image" VkImageMemoryRequirementsInfo2 -> IO ()
writeField Ptr VkImageMemoryRequirementsInfo2
p
          = Ptr VkImageMemoryRequirementsInfo2 -> Int -> VkImage -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageMemoryRequirementsInfo2
p (Int
16)
{-# LINE 2393 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageMemoryRequirementsInfo2 where
        showsPrec :: Int -> VkImageMemoryRequirementsInfo2 -> ShowS
showsPrec Int
d VkImageMemoryRequirementsInfo2
x
          = String -> ShowS
showString String
"VkImageMemoryRequirementsInfo2 {" 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 (VkImageMemoryRequirementsInfo2
-> FieldType "sType" VkImageMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageMemoryRequirementsInfo2
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 (VkImageMemoryRequirementsInfo2
-> FieldType "pNext" VkImageMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageMemoryRequirementsInfo2
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
"image = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImage -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageMemoryRequirementsInfo2
-> FieldType "image" VkImageMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"image" VkImageMemoryRequirementsInfo2
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkImageMemoryRequirementsInfo2`
type VkImageMemoryRequirementsInfo2KHR =
     VkImageMemoryRequirementsInfo2

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImagePlaneMemoryRequirementsInfo where
        type StructFields VkImagePlaneMemoryRequirementsInfo =
             '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
        type CUnionType VkImagePlaneMemoryRequirementsInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImagePlaneMemoryRequirementsInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImagePlaneMemoryRequirementsInfo =
             '[VkImageMemoryRequirementsInfo2] -- ' closing tick for hsc2hs

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "planeAspect" VkImagePlaneMemoryRequirementsInfo where
        type FieldType "planeAspect" VkImagePlaneMemoryRequirementsInfo =
             VkImageAspectFlagBits
        type FieldOptional "planeAspect" VkImagePlaneMemoryRequirementsInfo
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "planeAspect" VkImagePlaneMemoryRequirementsInfo =
             (16)
{-# LINE 2549 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "planeAspect" VkImagePlaneMemoryRequirementsInfo
             = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImagePlaneMemoryRequirementsInfo
-> IO (FieldType "planeAspect" VkImagePlaneMemoryRequirementsInfo)
readField Ptr VkImagePlaneMemoryRequirementsInfo
p
          = Ptr VkImagePlaneMemoryRequirementsInfo
-> Int -> IO VkImageAspectFlagBits
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImagePlaneMemoryRequirementsInfo
p (Int
16)
{-# LINE 2569 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "planeAspect" VkImagePlaneMemoryRequirementsInfo
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImagePlaneMemoryRequirementsInfo
-> FieldType "planeAspect" VkImagePlaneMemoryRequirementsInfo
-> IO ()
writeField Ptr VkImagePlaneMemoryRequirementsInfo
p
          = Ptr VkImagePlaneMemoryRequirementsInfo
-> Int -> VkImageAspectFlagBits -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImagePlaneMemoryRequirementsInfo
p (Int
16)
{-# LINE 2576 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImagePlaneMemoryRequirementsInfo where
        showsPrec :: Int -> VkImagePlaneMemoryRequirementsInfo -> ShowS
showsPrec Int
d VkImagePlaneMemoryRequirementsInfo
x
          = String -> ShowS
showString String
"VkImagePlaneMemoryRequirementsInfo {" 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 (VkImagePlaneMemoryRequirementsInfo
-> FieldType "sType" VkImagePlaneMemoryRequirementsInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImagePlaneMemoryRequirementsInfo
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 (VkImagePlaneMemoryRequirementsInfo
-> FieldType "pNext" VkImagePlaneMemoryRequirementsInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImagePlaneMemoryRequirementsInfo
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
"planeAspect = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImageAspectFlagBits -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImagePlaneMemoryRequirementsInfo
-> FieldType "planeAspect" VkImagePlaneMemoryRequirementsInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"planeAspect" VkImagePlaneMemoryRequirementsInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkImagePlaneMemoryRequirementsInfo`
type VkImagePlaneMemoryRequirementsInfoKHR =
     VkImagePlaneMemoryRequirementsInfo

-- | > typedef struct VkImageResolve {
--   >     VkImageSubresourceLayers srcSubresource;
--   >     VkOffset3D             srcOffset;
--   >     VkImageSubresourceLayers dstSubresource;
--   >     VkOffset3D             dstOffset;
--   >     VkExtent3D             extent;
--   > } VkImageResolve;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageResolve VkImageResolve registry at www.khronos.org>
data VkImageResolve = VkImageResolve# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageResolve where
        sizeOf :: VkImageResolve -> Int
sizeOf ~VkImageResolve
_ = (Int
68)
{-# LINE 2618 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageResolve where
        type StructFields VkImageResolve =
             '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
               "extent"]
        type CUnionType VkImageResolve = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageResolve = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageResolve = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "srcSubresource" VkImageResolve where
        type FieldType "srcSubresource" VkImageResolve =
             VkImageSubresourceLayers
        type FieldOptional "srcSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcSubresource" VkImageResolve =
             (0)
{-# LINE 2657 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageResolve
-> IO (FieldType "srcSubresource" VkImageResolve)
readField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageResolve
p (Int
0)
{-# LINE 2675 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcSubresource" VkImageResolve where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageResolve
-> FieldType "srcSubresource" VkImageResolve -> IO ()
writeField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageResolve
p (Int
0)
{-# LINE 2681 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "srcOffset" VkImageResolve
         where
        type FieldType "srcOffset" VkImageResolve = VkOffset3D
        type FieldOptional "srcOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcOffset" VkImageResolve =
             (16)
{-# LINE 2688 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "srcOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageResolve -> IO (FieldType "srcOffset" VkImageResolve)
readField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageResolve
p (Int
16)
{-# LINE 2706 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcOffset" VkImageResolve where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageResolve -> FieldType "srcOffset" VkImageResolve -> IO ()
writeField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageResolve
p (Int
16)
{-# LINE 2712 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dstSubresource" VkImageResolve where
        type FieldType "dstSubresource" VkImageResolve =
             VkImageSubresourceLayers
        type FieldOptional "dstSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstSubresource" VkImageResolve =
             (28)
{-# LINE 2720 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
28)
{-# LINE 2727 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dstSubresource" VkImageResolve where
        {-# NOINLINE getField #-}
        getField :: VkImageResolve -> FieldType "dstSubresource" VkImageResolve
getField VkImageResolve
x
          = IO VkImageSubresourceLayers -> VkImageSubresourceLayers
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageResolve -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageResolve -> Ptr VkImageResolve
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageResolve
x) (Int
28))
{-# LINE 2734 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageResolve
-> IO (FieldType "dstSubresource" VkImageResolve)
readField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageResolve
p (Int
28)
{-# LINE 2738 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstSubresource" VkImageResolve where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageResolve
-> FieldType "dstSubresource" VkImageResolve -> IO ()
writeField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageResolve
p (Int
28)
{-# LINE 2744 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "dstOffset" VkImageResolve
         where
        type FieldType "dstOffset" VkImageResolve = VkOffset3D
        type FieldOptional "dstOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstOffset" VkImageResolve =
             (44)
{-# LINE 2751 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "dstOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
44)
{-# LINE 2758 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dstOffset" VkImageResolve where
        {-# NOINLINE getField #-}
        getField :: VkImageResolve -> FieldType "dstOffset" VkImageResolve
getField VkImageResolve
x
          = IO VkOffset3D -> VkOffset3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageResolve -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageResolve -> Ptr VkImageResolve
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageResolve
x) (Int
44))
{-# LINE 2765 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageResolve -> IO (FieldType "dstOffset" VkImageResolve)
readField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageResolve
p (Int
44)
{-# LINE 2769 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstOffset" VkImageResolve where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageResolve -> FieldType "dstOffset" VkImageResolve -> IO ()
writeField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageResolve
p (Int
44)
{-# LINE 2775 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "extent" VkImageResolve where
        type FieldType "extent" VkImageResolve = VkExtent3D
        type FieldOptional "extent" VkImageResolve = 'False -- ' closing tick for hsc2hs
        type FieldOffset "extent" VkImageResolve =
             (56)
{-# LINE 2781 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "extent" VkImageResolve = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
56)
{-# LINE 2788 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "extent" VkImageResolve
         where
        {-# NOINLINE getField #-}
        getField :: VkImageResolve -> FieldType "extent" VkImageResolve
getField VkImageResolve
x
          = IO VkExtent3D -> VkExtent3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageResolve -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageResolve -> Ptr VkImageResolve
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageResolve
x) (Int
56))
{-# LINE 2795 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageResolve -> IO (FieldType "extent" VkImageResolve)
readField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageResolve
p (Int
56)
{-# LINE 2799 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "extent" VkImageResolve
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageResolve -> FieldType "extent" VkImageResolve -> IO ()
writeField Ptr VkImageResolve
p
          = Ptr VkImageResolve -> Int -> VkExtent3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageResolve
p (Int
56)
{-# LINE 2805 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageResolve where
        showsPrec :: Int -> VkImageResolve -> ShowS
showsPrec Int
d VkImageResolve
x
          = String -> ShowS
showString String
"VkImageResolve {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"srcSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageResolve -> FieldType "srcSubresource" VkImageResolve
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcSubresource" VkImageResolve
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
"srcOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> VkOffset3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageResolve -> FieldType "srcOffset" VkImageResolve
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcOffset" VkImageResolve
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
"dstSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageResolve -> FieldType "dstSubresource" VkImageResolve
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstSubresource" VkImageResolve
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
"dstOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkOffset3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageResolve -> FieldType "dstOffset" VkImageResolve
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstOffset" VkImageResolve
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
"extent = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkExtent3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageResolve -> FieldType "extent" VkImageResolve
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"extent" VkImageResolve
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "image" VkImageSparseMemoryRequirementsInfo2 where
        type FieldType "image" VkImageSparseMemoryRequirementsInfo2 =
             VkImage
        type FieldOptional "image" VkImageSparseMemoryRequirementsInfo2 =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "image" VkImageSparseMemoryRequirementsInfo2 =
             (16)
{-# LINE 2964 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "image" VkImageSparseMemoryRequirementsInfo2 =
             'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSparseMemoryRequirementsInfo2
-> IO (FieldType "image" VkImageSparseMemoryRequirementsInfo2)
readField Ptr VkImageSparseMemoryRequirementsInfo2
p
          = Ptr VkImageSparseMemoryRequirementsInfo2 -> Int -> IO VkImage
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSparseMemoryRequirementsInfo2
p (Int
16)
{-# LINE 2984 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "image" VkImageSparseMemoryRequirementsInfo2 where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSparseMemoryRequirementsInfo2
-> FieldType "image" VkImageSparseMemoryRequirementsInfo2 -> IO ()
writeField Ptr VkImageSparseMemoryRequirementsInfo2
p
          = Ptr VkImageSparseMemoryRequirementsInfo2 -> Int -> VkImage -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSparseMemoryRequirementsInfo2
p (Int
16)
{-# LINE 2990 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageSparseMemoryRequirementsInfo2 where
        showsPrec :: Int -> VkImageSparseMemoryRequirementsInfo2 -> ShowS
showsPrec Int
d VkImageSparseMemoryRequirementsInfo2
x
          = String -> ShowS
showString String
"VkImageSparseMemoryRequirementsInfo2 {" 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 (VkImageSparseMemoryRequirementsInfo2
-> FieldType "sType" VkImageSparseMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageSparseMemoryRequirementsInfo2
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 (VkImageSparseMemoryRequirementsInfo2
-> FieldType "pNext" VkImageSparseMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageSparseMemoryRequirementsInfo2
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
"image = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImage -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSparseMemoryRequirementsInfo2
-> FieldType "image" VkImageSparseMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"image" VkImageSparseMemoryRequirementsInfo2
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkImageSparseMemoryRequirementsInfo2`
type VkImageSparseMemoryRequirementsInfo2KHR =
     VkImageSparseMemoryRequirementsInfo2

-- | > typedef struct VkImageSubresource {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               mipLevel;
--   >     uint32_t               arrayLayer;
--   > } VkImageSubresource;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresource VkImageSubresource registry at www.khronos.org>
data VkImageSubresource = VkImageSubresource# Addr# ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageSubresource where
        type StructFields VkImageSubresource =
             '["aspectMask", "mipLevel", "arrayLayer"] -- ' closing tick for hsc2hs
        type CUnionType VkImageSubresource = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageSubresource = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageSubresource = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "aspectMask" VkImageSubresource where
        type FieldType "aspectMask" VkImageSubresource = VkImageAspectFlags
        type FieldOptional "aspectMask" VkImageSubresource = 'False -- ' closing tick for hsc2hs
        type FieldOffset "aspectMask" VkImageSubresource =
             (0)
{-# LINE 3067 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "aspectMask" VkImageSubresource = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresource
-> IO (FieldType "aspectMask" VkImageSubresource)
readField Ptr VkImageSubresource
p
          = Ptr VkImageSubresource -> Int -> IO VkImageAspectFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresource
p (Int
0)
{-# LINE 3085 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "aspectMask" VkImageSubresource where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresource
-> FieldType "aspectMask" VkImageSubresource -> IO ()
writeField Ptr VkImageSubresource
p
          = Ptr VkImageSubresource -> Int -> VkImageAspectFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresource
p (Int
0)
{-# LINE 3091 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "mipLevel" VkImageSubresource
         where
        type FieldType "mipLevel" VkImageSubresource = Word32
        type FieldOptional "mipLevel" VkImageSubresource = 'False -- ' closing tick for hsc2hs
        type FieldOffset "mipLevel" VkImageSubresource =
             (4)
{-# LINE 3098 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "mipLevel" VkImageSubresource = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresource
-> IO (FieldType "mipLevel" VkImageSubresource)
readField Ptr VkImageSubresource
p
          = Ptr VkImageSubresource -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresource
p (Int
4)
{-# LINE 3116 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "mipLevel" VkImageSubresource where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresource
-> FieldType "mipLevel" VkImageSubresource -> IO ()
writeField Ptr VkImageSubresource
p
          = Ptr VkImageSubresource -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresource
p (Int
4)
{-# LINE 3122 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "arrayLayer" VkImageSubresource where
        type FieldType "arrayLayer" VkImageSubresource = Word32
        type FieldOptional "arrayLayer" VkImageSubresource = 'False -- ' closing tick for hsc2hs
        type FieldOffset "arrayLayer" VkImageSubresource =
             (8)
{-# LINE 3129 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "arrayLayer" VkImageSubresource = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresource
-> IO (FieldType "arrayLayer" VkImageSubresource)
readField Ptr VkImageSubresource
p
          = Ptr VkImageSubresource -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresource
p (Int
8)
{-# LINE 3147 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "arrayLayer" VkImageSubresource where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresource
-> FieldType "arrayLayer" VkImageSubresource -> IO ()
writeField Ptr VkImageSubresource
p
          = Ptr VkImageSubresource -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresource
p (Int
8)
{-# LINE 3153 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageSubresource where
        showsPrec :: Int -> VkImageSubresource -> ShowS
showsPrec Int
d VkImageSubresource
x
          = String -> ShowS
showString String
"VkImageSubresource {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"aspectMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageAspectFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresource -> FieldType "aspectMask" VkImageSubresource
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"aspectMask" VkImageSubresource
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
"mipLevel = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresource -> FieldType "mipLevel" VkImageSubresource
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"mipLevel" VkImageSubresource
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
"arrayLayer = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresource -> FieldType "arrayLayer" VkImageSubresource
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"arrayLayer" VkImageSubresource
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkImageSubresourceLayers {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               mipLevel;
--   >     uint32_t               baseArrayLayer;
--   >     uint32_t               layerCount;
--   > } VkImageSubresourceLayers;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresourceLayers VkImageSubresourceLayers registry at www.khronos.org>
data VkImageSubresourceLayers = VkImageSubresourceLayers# Addr#
                                                          ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageSubresourceLayers where
        sizeOf :: VkImageSubresourceLayers -> Int
sizeOf ~VkImageSubresourceLayers
_ = (Int
16)
{-# LINE 3191 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageSubresourceLayers where
        type StructFields VkImageSubresourceLayers =
             '["aspectMask", "mipLevel", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
        type CUnionType VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageSubresourceLayers = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "aspectMask" VkImageSubresourceLayers where
        type FieldType "aspectMask" VkImageSubresourceLayers =
             VkImageAspectFlags
        type FieldOptional "aspectMask" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
        type FieldOffset "aspectMask" VkImageSubresourceLayers =
             (0)
{-# LINE 3230 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "aspectMask" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceLayers
-> IO (FieldType "aspectMask" VkImageSubresourceLayers)
readField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> IO VkImageAspectFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceLayers
p (Int
0)
{-# LINE 3249 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "aspectMask" VkImageSubresourceLayers where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceLayers
-> FieldType "aspectMask" VkImageSubresourceLayers -> IO ()
writeField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> VkImageAspectFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceLayers
p (Int
0)
{-# LINE 3255 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "mipLevel" VkImageSubresourceLayers where
        type FieldType "mipLevel" VkImageSubresourceLayers = Word32
        type FieldOptional "mipLevel" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
        type FieldOffset "mipLevel" VkImageSubresourceLayers =
             (4)
{-# LINE 3262 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "mipLevel" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceLayers
-> IO (FieldType "mipLevel" VkImageSubresourceLayers)
readField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceLayers
p (Int
4)
{-# LINE 3281 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "mipLevel" VkImageSubresourceLayers where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceLayers
-> FieldType "mipLevel" VkImageSubresourceLayers -> IO ()
writeField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceLayers
p (Int
4)
{-# LINE 3287 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "baseArrayLayer" VkImageSubresourceLayers where
        type FieldType "baseArrayLayer" VkImageSubresourceLayers = Word32
        type FieldOptional "baseArrayLayer" VkImageSubresourceLayers =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "baseArrayLayer" VkImageSubresourceLayers =
             (8)
{-# LINE 3295 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "baseArrayLayer" VkImageSubresourceLayers =
             'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceLayers
-> IO (FieldType "baseArrayLayer" VkImageSubresourceLayers)
readField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceLayers
p (Int
8)
{-# LINE 3315 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "baseArrayLayer" VkImageSubresourceLayers where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceLayers
-> FieldType "baseArrayLayer" VkImageSubresourceLayers -> IO ()
writeField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceLayers
p (Int
8)
{-# LINE 3321 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "layerCount" VkImageSubresourceLayers where
        type FieldType "layerCount" VkImageSubresourceLayers = Word32
        type FieldOptional "layerCount" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
        type FieldOffset "layerCount" VkImageSubresourceLayers =
             (12)
{-# LINE 3328 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "layerCount" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
12)
{-# LINE 3336 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "layerCount" VkImageSubresourceLayers where
        {-# NOINLINE getField #-}
        getField :: VkImageSubresourceLayers
-> FieldType "layerCount" VkImageSubresourceLayers
getField VkImageSubresourceLayers
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageSubresourceLayers -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageSubresourceLayers -> Ptr VkImageSubresourceLayers
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageSubresourceLayers
x) (Int
12))
{-# LINE 3343 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceLayers
-> IO (FieldType "layerCount" VkImageSubresourceLayers)
readField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceLayers
p (Int
12)
{-# LINE 3347 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "layerCount" VkImageSubresourceLayers where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceLayers
-> FieldType "layerCount" VkImageSubresourceLayers -> IO ()
writeField Ptr VkImageSubresourceLayers
p
          = Ptr VkImageSubresourceLayers -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceLayers
p (Int
12)
{-# LINE 3353 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageSubresourceLayers where
        showsPrec :: Int -> VkImageSubresourceLayers -> ShowS
showsPrec Int
d VkImageSubresourceLayers
x
          = String -> ShowS
showString String
"VkImageSubresourceLayers {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"aspectMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageAspectFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceLayers
-> FieldType "aspectMask" VkImageSubresourceLayers
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"aspectMask" VkImageSubresourceLayers
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
"mipLevel = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceLayers
-> FieldType "mipLevel" VkImageSubresourceLayers
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"mipLevel" VkImageSubresourceLayers
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
"baseArrayLayer = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceLayers
-> FieldType "baseArrayLayer" VkImageSubresourceLayers
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"baseArrayLayer" VkImageSubresourceLayers
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
"layerCount = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceLayers
-> FieldType "layerCount" VkImageSubresourceLayers
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"layerCount" VkImageSubresourceLayers
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkImageSubresourceRange {
--   >     VkImageAspectFlags     aspectMask;
--   >     uint32_t               baseMipLevel;
--   >     uint32_t               levelCount;
--   >     uint32_t               baseArrayLayer;
--   >     uint32_t               layerCount;
--   > } VkImageSubresourceRange;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresourceRange VkImageSubresourceRange registry at www.khronos.org>
data VkImageSubresourceRange = VkImageSubresourceRange# Addr#
                                                        ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageSubresourceRange where
        sizeOf :: VkImageSubresourceRange -> Int
sizeOf ~VkImageSubresourceRange
_ = (Int
20)
{-# LINE 3395 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageSubresourceRange where
        type StructFields VkImageSubresourceRange =
             '["aspectMask", "baseMipLevel", "levelCount", "baseArrayLayer", -- ' closing tick for hsc2hs
               "layerCount"]
        type CUnionType VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageSubresourceRange = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "aspectMask" VkImageSubresourceRange where
        type FieldType "aspectMask" VkImageSubresourceRange =
             VkImageAspectFlags
        type FieldOptional "aspectMask" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
        type FieldOffset "aspectMask" VkImageSubresourceRange =
             (0)
{-# LINE 3434 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "aspectMask" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceRange
-> IO (FieldType "aspectMask" VkImageSubresourceRange)
readField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> IO VkImageAspectFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceRange
p (Int
0)
{-# LINE 3453 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "aspectMask" VkImageSubresourceRange where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceRange
-> FieldType "aspectMask" VkImageSubresourceRange -> IO ()
writeField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> VkImageAspectFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceRange
p (Int
0)
{-# LINE 3459 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "baseMipLevel" VkImageSubresourceRange where
        type FieldType "baseMipLevel" VkImageSubresourceRange = Word32
        type FieldOptional "baseMipLevel" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
        type FieldOffset "baseMipLevel" VkImageSubresourceRange =
             (4)
{-# LINE 3466 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "baseMipLevel" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceRange
-> IO (FieldType "baseMipLevel" VkImageSubresourceRange)
readField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceRange
p (Int
4)
{-# LINE 3485 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "baseMipLevel" VkImageSubresourceRange where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceRange
-> FieldType "baseMipLevel" VkImageSubresourceRange -> IO ()
writeField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceRange
p (Int
4)
{-# LINE 3491 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "levelCount" VkImageSubresourceRange where
        type FieldType "levelCount" VkImageSubresourceRange = Word32
        type FieldOptional "levelCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
        type FieldOffset "levelCount" VkImageSubresourceRange =
             (8)
{-# LINE 3498 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "levelCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceRange
-> IO (FieldType "levelCount" VkImageSubresourceRange)
readField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceRange
p (Int
8)
{-# LINE 3517 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "levelCount" VkImageSubresourceRange where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceRange
-> FieldType "levelCount" VkImageSubresourceRange -> IO ()
writeField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceRange
p (Int
8)
{-# LINE 3523 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "baseArrayLayer" VkImageSubresourceRange where
        type FieldType "baseArrayLayer" VkImageSubresourceRange = Word32
        type FieldOptional "baseArrayLayer" VkImageSubresourceRange =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "baseArrayLayer" VkImageSubresourceRange =
             (12)
{-# LINE 3531 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "baseArrayLayer" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
12)
{-# LINE 3539 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "baseArrayLayer" VkImageSubresourceRange where
        {-# NOINLINE getField #-}
        getField :: VkImageSubresourceRange
-> FieldType "baseArrayLayer" VkImageSubresourceRange
getField VkImageSubresourceRange
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageSubresourceRange -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageSubresourceRange -> Ptr VkImageSubresourceRange
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageSubresourceRange
x) (Int
12))
{-# LINE 3546 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceRange
-> IO (FieldType "baseArrayLayer" VkImageSubresourceRange)
readField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceRange
p (Int
12)
{-# LINE 3550 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "baseArrayLayer" VkImageSubresourceRange where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceRange
-> FieldType "baseArrayLayer" VkImageSubresourceRange -> IO ()
writeField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceRange
p (Int
12)
{-# LINE 3556 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "layerCount" VkImageSubresourceRange where
        type FieldType "layerCount" VkImageSubresourceRange = Word32
        type FieldOptional "layerCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
        type FieldOffset "layerCount" VkImageSubresourceRange =
             (16)
{-# LINE 3563 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "layerCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSubresourceRange
-> IO (FieldType "layerCount" VkImageSubresourceRange)
readField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSubresourceRange
p (Int
16)
{-# LINE 3582 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "layerCount" VkImageSubresourceRange where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSubresourceRange
-> FieldType "layerCount" VkImageSubresourceRange -> IO ()
writeField Ptr VkImageSubresourceRange
p
          = Ptr VkImageSubresourceRange -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSubresourceRange
p (Int
16)
{-# LINE 3588 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageSubresourceRange where
        showsPrec :: Int -> VkImageSubresourceRange -> ShowS
showsPrec Int
d VkImageSubresourceRange
x
          = String -> ShowS
showString String
"VkImageSubresourceRange {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"aspectMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkImageAspectFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceRange
-> FieldType "aspectMask" VkImageSubresourceRange
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"aspectMask" VkImageSubresourceRange
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
"baseMipLevel = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceRange
-> FieldType "baseMipLevel" VkImageSubresourceRange
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"baseMipLevel" VkImageSubresourceRange
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
"levelCount = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceRange
-> FieldType "levelCount" VkImageSubresourceRange
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"levelCount" VkImageSubresourceRange
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
"baseArrayLayer = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceRange
-> FieldType "baseArrayLayer" VkImageSubresourceRange
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"baseArrayLayer" VkImageSubresourceRange
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
"layerCount = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSubresourceRange
-> FieldType "layerCount" VkImageSubresourceRange
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"layerCount" VkImageSubresourceRange
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "swapchain" VkImageSwapchainCreateInfoKHR where
        type FieldType "swapchain" VkImageSwapchainCreateInfoKHR =
             VkSwapchainKHR
        type FieldOptional "swapchain" VkImageSwapchainCreateInfoKHR =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "swapchain" VkImageSwapchainCreateInfoKHR =
             (16)
{-# LINE 3740 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "swapchain" VkImageSwapchainCreateInfoKHR =
             'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageSwapchainCreateInfoKHR
-> IO (FieldType "swapchain" VkImageSwapchainCreateInfoKHR)
readField Ptr VkImageSwapchainCreateInfoKHR
p
          = Ptr VkImageSwapchainCreateInfoKHR -> Int -> IO VkSwapchainKHR
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageSwapchainCreateInfoKHR
p (Int
16)
{-# LINE 3760 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "swapchain" VkImageSwapchainCreateInfoKHR where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageSwapchainCreateInfoKHR
-> FieldType "swapchain" VkImageSwapchainCreateInfoKHR -> IO ()
writeField Ptr VkImageSwapchainCreateInfoKHR
p
          = Ptr VkImageSwapchainCreateInfoKHR -> Int -> VkSwapchainKHR -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageSwapchainCreateInfoKHR
p (Int
16)
{-# LINE 3766 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageSwapchainCreateInfoKHR where
        showsPrec :: Int -> VkImageSwapchainCreateInfoKHR -> ShowS
showsPrec Int
d VkImageSwapchainCreateInfoKHR
x
          = String -> ShowS
showString String
"VkImageSwapchainCreateInfoKHR {" 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 (VkImageSwapchainCreateInfoKHR
-> FieldType "sType" VkImageSwapchainCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageSwapchainCreateInfoKHR
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 (VkImageSwapchainCreateInfoKHR
-> FieldType "pNext" VkImageSwapchainCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageSwapchainCreateInfoKHR
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
"swapchain = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkSwapchainKHR -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageSwapchainCreateInfoKHR
-> FieldType "swapchain" VkImageSwapchainCreateInfoKHR
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"swapchain" VkImageSwapchainCreateInfoKHR
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkImageViewCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkImageViewCreateFlags flags;
--   >     VkImage                image;
--   >     VkImageViewType        viewType;
--   >     VkFormat               format;
--   >     VkComponentMapping     components;
--   >     VkImageSubresourceRange subresourceRange;
--   > } VkImageViewCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageViewCreateInfo VkImageViewCreateInfo registry at www.khronos.org>
data VkImageViewCreateInfo = VkImageViewCreateInfo# Addr#
                                                    ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkImageViewCreateInfo where
        sizeOf :: VkImageViewCreateInfo -> Int
sizeOf ~VkImageViewCreateInfo
_ = (Int
80)
{-# LINE 3808 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageViewCreateInfo where
        type StructFields VkImageViewCreateInfo =
             '["sType", "pNext", "flags", "image", "viewType", "format", -- ' closing tick for hsc2hs
               "components", "subresourceRange"]
        type CUnionType VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageViewCreateInfo = '[] -- ' closing tick for hsc2hs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewCreateInfo
-> IO (FieldType "flags" VkImageViewCreateInfo)
readField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> IO VkImageViewCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewCreateInfo
p (Int
16)
{-# LINE 3927 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkImageViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewCreateInfo
-> FieldType "flags" VkImageViewCreateInfo -> IO ()
writeField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> VkImageViewCreateFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewCreateInfo
p (Int
16)
{-# LINE 3933 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-} HasField "image" VkImageViewCreateInfo
         where
        type FieldType "image" VkImageViewCreateInfo = VkImage
        type FieldOptional "image" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "image" VkImageViewCreateInfo =
             (24)
{-# LINE 3940 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "image" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewCreateInfo
-> IO (FieldType "image" VkImageViewCreateInfo)
readField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> IO VkImage
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewCreateInfo
p (Int
24)
{-# LINE 3958 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "image" VkImageViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewCreateInfo
-> FieldType "image" VkImageViewCreateInfo -> IO ()
writeField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> VkImage -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewCreateInfo
p (Int
24)
{-# LINE 3964 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "viewType" VkImageViewCreateInfo where
        type FieldType "viewType" VkImageViewCreateInfo = VkImageViewType
        type FieldOptional "viewType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "viewType" VkImageViewCreateInfo =
             (32)
{-# LINE 3971 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "viewType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewCreateInfo
-> IO (FieldType "viewType" VkImageViewCreateInfo)
readField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> IO VkImageViewType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewCreateInfo
p (Int
32)
{-# LINE 3989 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "viewType" VkImageViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewCreateInfo
-> FieldType "viewType" VkImageViewCreateInfo -> IO ()
writeField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> VkImageViewType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewCreateInfo
p (Int
32)
{-# LINE 3995 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

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

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewCreateInfo
-> IO (FieldType "format" VkImageViewCreateInfo)
readField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> IO VkFormat
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewCreateInfo
p (Int
36)
{-# LINE 4020 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "format" VkImageViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewCreateInfo
-> FieldType "format" VkImageViewCreateInfo -> IO ()
writeField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> VkFormat -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewCreateInfo
p (Int
36)
{-# LINE 4026 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "components" VkImageViewCreateInfo where
        type FieldType "components" VkImageViewCreateInfo =
             VkComponentMapping
        type FieldOptional "components" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "components" VkImageViewCreateInfo =
             (40)
{-# LINE 4034 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "components" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewCreateInfo
-> IO (FieldType "components" VkImageViewCreateInfo)
readField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> IO VkComponentMapping
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewCreateInfo
p (Int
40)
{-# LINE 4053 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "components" VkImageViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewCreateInfo
-> FieldType "components" VkImageViewCreateInfo -> IO ()
writeField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> VkComponentMapping -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewCreateInfo
p (Int
40)
{-# LINE 4059 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "subresourceRange" VkImageViewCreateInfo where
        type FieldType "subresourceRange" VkImageViewCreateInfo =
             VkImageSubresourceRange
        type FieldOptional "subresourceRange" VkImageViewCreateInfo =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "subresourceRange" VkImageViewCreateInfo =
             (56)
{-# LINE 4068 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "subresourceRange" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
56)
{-# LINE 4076 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "subresourceRange" VkImageViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkImageViewCreateInfo
-> FieldType "subresourceRange" VkImageViewCreateInfo
getField VkImageViewCreateInfo
x
          = IO VkImageSubresourceRange -> VkImageSubresourceRange
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkImageViewCreateInfo -> Int -> IO VkImageSubresourceRange
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkImageViewCreateInfo -> Ptr VkImageViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkImageViewCreateInfo
x) (Int
56))
{-# LINE 4083 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewCreateInfo
-> IO (FieldType "subresourceRange" VkImageViewCreateInfo)
readField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo -> Int -> IO VkImageSubresourceRange
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewCreateInfo
p (Int
56)
{-# LINE 4087 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "subresourceRange" VkImageViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewCreateInfo
-> FieldType "subresourceRange" VkImageViewCreateInfo -> IO ()
writeField Ptr VkImageViewCreateInfo
p
          = Ptr VkImageViewCreateInfo
-> Int -> VkImageSubresourceRange -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewCreateInfo
p (Int
56)
{-# LINE 4093 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageViewCreateInfo where
        showsPrec :: Int -> VkImageViewCreateInfo -> ShowS
showsPrec Int
d VkImageViewCreateInfo
x
          = String -> ShowS
showString String
"VkImageViewCreateInfo {" 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 (VkImageViewCreateInfo -> FieldType "sType" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageViewCreateInfo
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 (VkImageViewCreateInfo -> FieldType "pNext" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageViewCreateInfo
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
"flags = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImageViewCreateFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageViewCreateInfo -> FieldType "flags" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"flags" VkImageViewCreateInfo
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
"image = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkImage -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageViewCreateInfo -> FieldType "image" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"image" VkImageViewCreateInfo
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
"viewType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkImageViewType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageViewCreateInfo -> FieldType "viewType" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"viewType" VkImageViewCreateInfo
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
"format = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkFormat -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageViewCreateInfo -> FieldType "format" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"format" VkImageViewCreateInfo
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
"components = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> VkComponentMapping -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageViewCreateInfo
-> FieldType "components" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"components" VkImageViewCreateInfo
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
"subresourceRange = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                          Int -> VkImageSubresourceRange -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                            (VkImageViewCreateInfo
-> FieldType "subresourceRange" VkImageViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"subresourceRange" VkImageViewCreateInfo
x)
                                                            ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

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

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkImageViewUsageCreateInfo where
        type StructFields VkImageViewUsageCreateInfo =
             '["sType", "pNext", "usage"] -- ' closing tick for hsc2hs
        type CUnionType VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkImageViewUsageCreateInfo =
             '[VkImageViewCreateInfo] -- ' closing tick for hsc2hs

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

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

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

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

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

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

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

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

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "usage" VkImageViewUsageCreateInfo where
        type FieldType "usage" VkImageViewUsageCreateInfo =
             VkImageUsageFlags
        type FieldOptional "usage" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "usage" VkImageViewUsageCreateInfo =
             (16)
{-# LINE 4253 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}
        type FieldIsArray "usage" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs

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

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

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

        {-# INLINE readField #-}
        readField :: Ptr VkImageViewUsageCreateInfo
-> IO (FieldType "usage" VkImageViewUsageCreateInfo)
readField Ptr VkImageViewUsageCreateInfo
p
          = Ptr VkImageViewUsageCreateInfo -> Int -> IO VkImageUsageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkImageViewUsageCreateInfo
p (Int
16)
{-# LINE 4272 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "usage" VkImageViewUsageCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkImageViewUsageCreateInfo
-> FieldType "usage" VkImageViewUsageCreateInfo -> IO ()
writeField Ptr VkImageViewUsageCreateInfo
p
          = Ptr VkImageViewUsageCreateInfo -> Int -> VkImageUsageFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkImageViewUsageCreateInfo
p (Int
16)
{-# LINE 4278 "src-gen/Graphics/Vulkan/Types/Struct/Image.hsc" #-}

instance Show VkImageViewUsageCreateInfo where
        showsPrec :: Int -> VkImageViewUsageCreateInfo -> ShowS
showsPrec Int
d VkImageViewUsageCreateInfo
x
          = String -> ShowS
showString String
"VkImageViewUsageCreateInfo {" 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 (VkImageViewUsageCreateInfo
-> FieldType "sType" VkImageViewUsageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkImageViewUsageCreateInfo
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 (VkImageViewUsageCreateInfo
-> FieldType "pNext" VkImageViewUsageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkImageViewUsageCreateInfo
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
"usage = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkImageUsageFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkImageViewUsageCreateInfo
-> FieldType "usage" VkImageViewUsageCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"usage" VkImageViewUsageCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | Alias for `VkImageViewUsageCreateInfo`
type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo