vulkan-api 1.1.3.0 → 1.1.3.1
raw patch · 14 files changed
+386/−1285 lines, 14 files
Files
- cbits/vulkan_loader.c +1/−1
- src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc +33/−123
- src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc +11/−43
- src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc +11/−41
- src-gen/Graphics/Vulkan/Types/Struct/Device.hsc +11/−63
- src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc +11/−43
- src-gen/Graphics/Vulkan/Types/Struct/Image.hsc +22/−58
- src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc +22/−84
- src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc +165/−690
- src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc +11/−62
- src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc +11/−54
- src/Graphics/Vulkan/Marshal.hs +44/−18
- src/Graphics/Vulkan/Marshal/Create.hs +31/−3
- vulkan-api.cabal +2/−2
cbits/vulkan_loader.c view
@@ -12,7 +12,7 @@ #else #include <dlfcn.h> #if defined(__APPLE__) || defined(darwin_HOST_OS)- #define _vk_dlopen() dlopen("libMoltenVK.dylib", RTLD_LAZY | RTLD_LOCAL)+ #define _vk_dlopen() dlopen("libvulkan.1.dylib", RTLD_LAZY | RTLD_LOCAL) #else #define _vk_dlopen() dlopen("libvulkan.so", RTLD_LAZY | RTLD_LOCAL) #endif
src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc view
@@ -258,63 +258,33 @@ fieldOffset = #{offset VkClearColorValue, float32} instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "float32" idx VkClearColorValue) =>- CanReadFieldArray "float32" idx VkClearColorValue- where- {-# SPECIALISE instance- CanReadFieldArray "float32" 0 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "float32" 1 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "float32" 2 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "float32" 3 VkClearColorValue #-}+ CanReadFieldArray "float32" VkClearColorValue where type FieldArrayLength "float32" VkClearColorValue = 4 {-# INLINE fieldArrayLength #-} fieldArrayLength = 4 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkClearColorValue, float32} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkClearColorValue, float32} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "float32" idx VkClearColorValue) =>- CanWriteFieldArray "float32" idx VkClearColorValue- where- {-# SPECIALISE instance- CanWriteFieldArray "float32" 0 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "float32" 1 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "float32" 2 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "float32" 3 VkClearColorValue #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "float32" VkClearColorValue where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkClearColorValue, float32} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-} HasField "int32" VkClearColorValue where@@ -331,63 +301,33 @@ fieldOffset = #{offset VkClearColorValue, int32} instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "int32" idx VkClearColorValue) =>- CanReadFieldArray "int32" idx VkClearColorValue- where- {-# SPECIALISE instance- CanReadFieldArray "int32" 0 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "int32" 1 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "int32" 2 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "int32" 3 VkClearColorValue #-}+ CanReadFieldArray "int32" VkClearColorValue where type FieldArrayLength "int32" VkClearColorValue = 4 {-# INLINE fieldArrayLength #-} fieldArrayLength = 4 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkClearColorValue, int32} +- sizeOf (undefined :: Int32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Int32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkClearColorValue, int32} +- sizeOf (undefined :: Int32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Int32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "int32" idx VkClearColorValue) =>- CanWriteFieldArray "int32" idx VkClearColorValue- where- {-# SPECIALISE instance- CanWriteFieldArray "int32" 0 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "int32" 1 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "int32" 2 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "int32" 3 VkClearColorValue #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "int32" VkClearColorValue where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkClearColorValue, int32} +- sizeOf (undefined :: Int32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Int32) * i) instance {-# OVERLAPPING #-} HasField "uint32" VkClearColorValue where@@ -404,63 +344,33 @@ fieldOffset = #{offset VkClearColorValue, uint32} instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "uint32" idx VkClearColorValue) =>- CanReadFieldArray "uint32" idx VkClearColorValue- where- {-# SPECIALISE instance- CanReadFieldArray "uint32" 0 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "uint32" 1 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "uint32" 2 VkClearColorValue #-}-- {-# SPECIALISE instance- CanReadFieldArray "uint32" 3 VkClearColorValue #-}+ CanReadFieldArray "uint32" VkClearColorValue where type FieldArrayLength "uint32" VkClearColorValue = 4 {-# INLINE fieldArrayLength #-} fieldArrayLength = 4 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkClearColorValue, uint32} +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkClearColorValue, uint32} +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "uint32" idx VkClearColorValue) =>- CanWriteFieldArray "uint32" idx VkClearColorValue- where- {-# SPECIALISE instance- CanWriteFieldArray "uint32" 0 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "uint32" 1 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "uint32" 2 VkClearColorValue #-}-- {-# SPECIALISE instance- CanWriteFieldArray "uint32" 3 VkClearColorValue #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "uint32" VkClearColorValue where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkClearColorValue, uint32} +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word32) * i) instance Show VkClearColorValue where showsPrec d x
src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc view
@@ -210,65 +210,33 @@ = #{offset VkDebugMarkerMarkerInfoEXT, color} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>- CanReadFieldArray "color" idx VkDebugMarkerMarkerInfoEXT- where- {-# SPECIALISE instance- CanReadFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}-- {-# SPECIALISE instance- CanReadFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}-- {-# SPECIALISE instance- CanReadFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}-- {-# SPECIALISE instance- CanReadFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}+ CanReadFieldArray "color" VkDebugMarkerMarkerInfoEXT where type FieldArrayLength "color" VkDebugMarkerMarkerInfoEXT = 4 {-# INLINE fieldArrayLength #-} fieldArrayLength = 4 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkDebugMarkerMarkerInfoEXT, color} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkDebugMarkerMarkerInfoEXT, color} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>- CanWriteFieldArray "color" idx VkDebugMarkerMarkerInfoEXT- where- {-# SPECIALISE instance- CanWriteFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}-- {-# SPECIALISE instance- CanWriteFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}-- {-# SPECIALISE instance- CanWriteFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}-- {-# SPECIALISE instance- CanWriteFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "color" VkDebugMarkerMarkerInfoEXT where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkDebugMarkerMarkerInfoEXT, color} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance Show VkDebugMarkerMarkerInfoEXT where showsPrec d x
src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc view
@@ -189,63 +189,33 @@ fieldOffset = #{offset VkDebugUtilsLabelEXT, color} instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "color" idx VkDebugUtilsLabelEXT) =>- CanReadFieldArray "color" idx VkDebugUtilsLabelEXT- where- {-# SPECIALISE instance- CanReadFieldArray "color" 0 VkDebugUtilsLabelEXT #-}-- {-# SPECIALISE instance- CanReadFieldArray "color" 1 VkDebugUtilsLabelEXT #-}-- {-# SPECIALISE instance- CanReadFieldArray "color" 2 VkDebugUtilsLabelEXT #-}-- {-# SPECIALISE instance- CanReadFieldArray "color" 3 VkDebugUtilsLabelEXT #-}+ CanReadFieldArray "color" VkDebugUtilsLabelEXT where type FieldArrayLength "color" VkDebugUtilsLabelEXT = 4 {-# INLINE fieldArrayLength #-} fieldArrayLength = 4 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkDebugUtilsLabelEXT, color} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkDebugUtilsLabelEXT, color} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "color" idx VkDebugUtilsLabelEXT) =>- CanWriteFieldArray "color" idx VkDebugUtilsLabelEXT- where- {-# SPECIALISE instance- CanWriteFieldArray "color" 0 VkDebugUtilsLabelEXT #-}-- {-# SPECIALISE instance- CanWriteFieldArray "color" 1 VkDebugUtilsLabelEXT #-}-- {-# SPECIALISE instance- CanWriteFieldArray "color" 2 VkDebugUtilsLabelEXT #-}-- {-# SPECIALISE instance- CanWriteFieldArray "color" 3 VkDebugUtilsLabelEXT #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "color" VkDebugUtilsLabelEXT where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkDebugUtilsLabelEXT, color} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance Show VkDebugUtilsLabelEXT where showsPrec d x
src-gen/Graphics/Vulkan/Types/Struct/Device.hsc view
@@ -2030,31 +2030,8 @@ = #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "presentMask" idx- VkDeviceGroupPresentCapabilitiesKHR) =>- CanReadFieldArray "presentMask" idx- VkDeviceGroupPresentCapabilitiesKHR+ CanReadFieldArray "presentMask" VkDeviceGroupPresentCapabilitiesKHR where- {-# SPECIALISE instance- CanReadFieldArray "presentMask" 0- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# SPECIALISE instance- CanReadFieldArray "presentMask" 1- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# SPECIALISE instance- CanReadFieldArray "presentMask" 2- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# SPECIALISE instance- CanReadFieldArray "presentMask" 3- VkDeviceGroupPresentCapabilitiesKHR- #-} type FieldArrayLength "presentMask" VkDeviceGroupPresentCapabilitiesKHR = VK_MAX_DEVICE_GROUP_SIZE@@ -2062,58 +2039,29 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "presentMask" idx- VkDeviceGroupPresentCapabilitiesKHR) =>- CanWriteFieldArray "presentMask" idx+ CanWriteFieldArray "presentMask" VkDeviceGroupPresentCapabilitiesKHR where- {-# SPECIALISE instance- CanWriteFieldArray "presentMask" 0- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "presentMask" 1- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "presentMask" 2- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "presentMask" 3- VkDeviceGroupPresentCapabilitiesKHR- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-} HasField "modes" VkDeviceGroupPresentCapabilitiesKHR where
src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc view
@@ -93,66 +93,34 @@ = #{offset VkExtensionProperties, extensionName} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "extensionName" idx VkExtensionProperties) =>- CanReadFieldArray "extensionName" idx VkExtensionProperties- where- {-# SPECIALISE instance- CanReadFieldArray "extensionName" 0 VkExtensionProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "extensionName" 1 VkExtensionProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "extensionName" 2 VkExtensionProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "extensionName" 3 VkExtensionProperties #-}+ CanReadFieldArray "extensionName" VkExtensionProperties where type FieldArrayLength "extensionName" VkExtensionProperties = VK_MAX_EXTENSION_NAME_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_EXTENSION_NAME_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkExtensionProperties, extensionName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkExtensionProperties, extensionName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "extensionName" idx VkExtensionProperties) =>- CanWriteFieldArray "extensionName" idx VkExtensionProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "extensionName" 0 VkExtensionProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "extensionName" 1 VkExtensionProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "extensionName" 2 VkExtensionProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "extensionName" 3 VkExtensionProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "extensionName" VkExtensionProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkExtensionProperties, extensionName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-} HasField "specVersion" VkExtensionProperties where
src-gen/Graphics/Vulkan/Types/Struct/Image.hsc view
@@ -161,51 +161,33 @@ fieldOffset = #{offset VkImageBlit, srcOffsets} 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 #-}+ CanReadFieldArray "srcOffsets" VkImageBlit where type FieldArrayLength "srcOffsets" VkImageBlit = 2 {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkImageBlit, srcOffsets} +- sizeOf (undefined :: VkOffset3D) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: VkOffset3D) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkImageBlit, srcOffsets} +- sizeOf (undefined :: VkOffset3D) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: VkOffset3D) * i) 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 p+ CanWriteFieldArray "srcOffsets" VkImageBlit where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkImageBlit, srcOffsets} +- sizeOf (undefined :: VkOffset3D) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: VkOffset3D) * i) instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageBlit where@@ -254,51 +236,33 @@ fieldOffset = #{offset VkImageBlit, dstOffsets} 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 #-}+ CanReadFieldArray "dstOffsets" VkImageBlit where type FieldArrayLength "dstOffsets" VkImageBlit = 2 {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkImageBlit, dstOffsets} +- sizeOf (undefined :: VkOffset3D) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: VkOffset3D) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkImageBlit, dstOffsets} +- sizeOf (undefined :: VkOffset3D) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: VkOffset3D) * i) 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 p+ CanWriteFieldArray "dstOffsets" VkImageBlit where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkImageBlit, dstOffsets} +- sizeOf (undefined :: VkOffset3D) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: VkOffset3D) * i) instance Show VkImageBlit where showsPrec d x
src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc view
@@ -96,64 +96,34 @@ fieldOffset = #{offset VkLayerProperties, layerName} instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "layerName" idx VkLayerProperties) =>- CanReadFieldArray "layerName" idx VkLayerProperties- where- {-# SPECIALISE instance- CanReadFieldArray "layerName" 0 VkLayerProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "layerName" 1 VkLayerProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "layerName" 2 VkLayerProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "layerName" 3 VkLayerProperties #-}+ CanReadFieldArray "layerName" VkLayerProperties where type FieldArrayLength "layerName" VkLayerProperties = VK_MAX_EXTENSION_NAME_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_EXTENSION_NAME_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkLayerProperties, layerName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkLayerProperties, layerName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-}- (KnownNat idx, IndexInBounds "layerName" idx VkLayerProperties) =>- CanWriteFieldArray "layerName" idx VkLayerProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "layerName" 0 VkLayerProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "layerName" 1 VkLayerProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "layerName" 2 VkLayerProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "layerName" 3 VkLayerProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "layerName" VkLayerProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkLayerProperties, layerName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-} HasField "specVersion" VkLayerProperties where@@ -235,66 +205,34 @@ fieldOffset = #{offset VkLayerProperties, description} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "description" idx VkLayerProperties) =>- CanReadFieldArray "description" idx VkLayerProperties- where- {-# SPECIALISE instance- CanReadFieldArray "description" 0 VkLayerProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "description" 1 VkLayerProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "description" 2 VkLayerProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "description" 3 VkLayerProperties #-}+ CanReadFieldArray "description" VkLayerProperties where type FieldArrayLength "description" VkLayerProperties = VK_MAX_DESCRIPTION_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_DESCRIPTION_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkLayerProperties, description} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkLayerProperties, description} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "description" idx VkLayerProperties) =>- CanWriteFieldArray "description" idx VkLayerProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "description" 0 VkLayerProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "description" 1 VkLayerProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "description" 2 VkLayerProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "description" 3 VkLayerProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "description" VkLayerProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkLayerProperties, description} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance Show VkLayerProperties where showsPrec d x
src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc view
@@ -6346,31 +6346,8 @@ = #{offset VkPhysicalDeviceGroupProperties, physicalDevices} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "physicalDevices" idx- VkPhysicalDeviceGroupProperties) =>- CanReadFieldArray "physicalDevices" idx- VkPhysicalDeviceGroupProperties+ CanReadFieldArray "physicalDevices" VkPhysicalDeviceGroupProperties where- {-# SPECIALISE instance- CanReadFieldArray "physicalDevices" 0- VkPhysicalDeviceGroupProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "physicalDevices" 1- VkPhysicalDeviceGroupProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "physicalDevices" 2- VkPhysicalDeviceGroupProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "physicalDevices" 3- VkPhysicalDeviceGroupProperties- #-} type FieldArrayLength "physicalDevices" VkPhysicalDeviceGroupProperties = VK_MAX_DEVICE_GROUP_SIZE@@ -6378,58 +6355,29 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}- +- sizeOf (undefined :: VkPhysicalDevice) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkPhysicalDevice) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}- +- sizeOf (undefined :: VkPhysicalDevice) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkPhysicalDevice) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "physicalDevices" idx- VkPhysicalDeviceGroupProperties) =>- CanWriteFieldArray "physicalDevices" idx+ CanWriteFieldArray "physicalDevices" VkPhysicalDeviceGroupProperties where- {-# SPECIALISE instance- CanWriteFieldArray "physicalDevices" 0- VkPhysicalDeviceGroupProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "physicalDevices" 1- VkPhysicalDeviceGroupProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "physicalDevices" 2- VkPhysicalDeviceGroupProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "physicalDevices" 3- VkPhysicalDeviceGroupProperties- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}- +- sizeOf (undefined :: VkPhysicalDevice) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkPhysicalDevice) * i) instance {-# OVERLAPPING #-} HasField "subsetAllocation" VkPhysicalDeviceGroupProperties where@@ -6657,66 +6605,34 @@ = #{offset VkPhysicalDeviceIDProperties, deviceUUID} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "deviceUUID" idx VkPhysicalDeviceIDProperties) =>- CanReadFieldArray "deviceUUID" idx VkPhysicalDeviceIDProperties- where- {-# SPECIALISE instance- CanReadFieldArray "deviceUUID" 0 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceUUID" 1 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceUUID" 2 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceUUID" 3 VkPhysicalDeviceIDProperties #-}+ CanReadFieldArray "deviceUUID" VkPhysicalDeviceIDProperties where type FieldArrayLength "deviceUUID" VkPhysicalDeviceIDProperties = VK_UUID_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_UUID_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceIDProperties, deviceUUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "deviceUUID" idx VkPhysicalDeviceIDProperties) =>- CanWriteFieldArray "deviceUUID" idx VkPhysicalDeviceIDProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "deviceUUID" 0 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceUUID" 1 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceUUID" 2 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceUUID" 3 VkPhysicalDeviceIDProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "deviceUUID" VkPhysicalDeviceIDProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-} HasField "driverUUID" VkPhysicalDeviceIDProperties where@@ -6735,66 +6651,34 @@ = #{offset VkPhysicalDeviceIDProperties, driverUUID} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "driverUUID" idx VkPhysicalDeviceIDProperties) =>- CanReadFieldArray "driverUUID" idx VkPhysicalDeviceIDProperties- where- {-# SPECIALISE instance- CanReadFieldArray "driverUUID" 0 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "driverUUID" 1 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "driverUUID" 2 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "driverUUID" 3 VkPhysicalDeviceIDProperties #-}+ CanReadFieldArray "driverUUID" VkPhysicalDeviceIDProperties where type FieldArrayLength "driverUUID" VkPhysicalDeviceIDProperties = VK_UUID_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_UUID_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceIDProperties, driverUUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceIDProperties, driverUUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "driverUUID" idx VkPhysicalDeviceIDProperties) =>- CanWriteFieldArray "driverUUID" idx VkPhysicalDeviceIDProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "driverUUID" 0 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "driverUUID" 1 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "driverUUID" 2 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "driverUUID" 3 VkPhysicalDeviceIDProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "driverUUID" VkPhysicalDeviceIDProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceIDProperties, driverUUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-} HasField "deviceLUID" VkPhysicalDeviceIDProperties where@@ -6813,66 +6697,34 @@ = #{offset VkPhysicalDeviceIDProperties, deviceLUID} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "deviceLUID" idx VkPhysicalDeviceIDProperties) =>- CanReadFieldArray "deviceLUID" idx VkPhysicalDeviceIDProperties- where- {-# SPECIALISE instance- CanReadFieldArray "deviceLUID" 0 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceLUID" 1 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceLUID" 2 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceLUID" 3 VkPhysicalDeviceIDProperties #-}+ CanReadFieldArray "deviceLUID" VkPhysicalDeviceIDProperties where type FieldArrayLength "deviceLUID" VkPhysicalDeviceIDProperties = VK_LUID_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_LUID_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceIDProperties, deviceLUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "deviceLUID" idx VkPhysicalDeviceIDProperties) =>- CanWriteFieldArray "deviceLUID" idx VkPhysicalDeviceIDProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "deviceLUID" 0 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceLUID" 1 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceLUID" 2 VkPhysicalDeviceIDProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceLUID" 3 VkPhysicalDeviceIDProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "deviceLUID" VkPhysicalDeviceIDProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-} HasField "deviceNodeMask" VkPhysicalDeviceIDProperties where@@ -9727,26 +9579,8 @@ = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "maxComputeWorkGroupCount" idx- VkPhysicalDeviceLimits) =>- CanReadFieldArray "maxComputeWorkGroupCount" idx- VkPhysicalDeviceLimits+ CanReadFieldArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanReadFieldArray "maxComputeWorkGroupCount" 0- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanReadFieldArray "maxComputeWorkGroupCount" 1- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanReadFieldArray "maxComputeWorkGroupCount" 2- VkPhysicalDeviceLimits- #-} type FieldArrayLength "maxComputeWorkGroupCount" VkPhysicalDeviceLimits = 3@@ -9754,53 +9588,29 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = 3 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "maxComputeWorkGroupCount" idx- VkPhysicalDeviceLimits) =>- CanWriteFieldArray "maxComputeWorkGroupCount" idx+ CanWriteFieldArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanWriteFieldArray "maxComputeWorkGroupCount" 0- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "maxComputeWorkGroupCount" 1- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "maxComputeWorkGroupCount" 2- VkPhysicalDeviceLimits- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-} HasField "maxComputeWorkGroupInvocations" VkPhysicalDeviceLimits@@ -9866,26 +9676,8 @@ = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "maxComputeWorkGroupSize" idx- VkPhysicalDeviceLimits) =>- CanReadFieldArray "maxComputeWorkGroupSize" idx- VkPhysicalDeviceLimits+ CanReadFieldArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanReadFieldArray "maxComputeWorkGroupSize" 0- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanReadFieldArray "maxComputeWorkGroupSize" 1- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanReadFieldArray "maxComputeWorkGroupSize" 2- VkPhysicalDeviceLimits- #-} type FieldArrayLength "maxComputeWorkGroupSize" VkPhysicalDeviceLimits = 3@@ -9893,53 +9685,28 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = 3 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "maxComputeWorkGroupSize" idx- VkPhysicalDeviceLimits) =>- CanWriteFieldArray "maxComputeWorkGroupSize" idx- VkPhysicalDeviceLimits+ CanWriteFieldArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanWriteFieldArray "maxComputeWorkGroupSize" 0- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "maxComputeWorkGroupSize" 1- VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "maxComputeWorkGroupSize" 2- VkPhysicalDeviceLimits- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-} HasField "subPixelPrecisionBits" VkPhysicalDeviceLimits where@@ -10241,19 +10008,8 @@ = #{offset VkPhysicalDeviceLimits, maxViewportDimensions} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "maxViewportDimensions" idx- VkPhysicalDeviceLimits) =>- CanReadFieldArray "maxViewportDimensions" idx- VkPhysicalDeviceLimits+ CanReadFieldArray "maxViewportDimensions" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanReadFieldArray "maxViewportDimensions" 0 VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanReadFieldArray "maxViewportDimensions" 1 VkPhysicalDeviceLimits- #-} type FieldArrayLength "maxViewportDimensions" VkPhysicalDeviceLimits = 2@@ -10261,46 +10017,28 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "maxViewportDimensions" idx- VkPhysicalDeviceLimits) =>- CanWriteFieldArray "maxViewportDimensions" idx- VkPhysicalDeviceLimits+ CanWriteFieldArray "maxViewportDimensions" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanWriteFieldArray "maxViewportDimensions" 0 VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "maxViewportDimensions" 1 VkPhysicalDeviceLimits- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-} HasField "viewportBoundsRange" VkPhysicalDeviceLimits where@@ -10321,61 +10059,36 @@ = #{offset VkPhysicalDeviceLimits, viewportBoundsRange} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "viewportBoundsRange" idx VkPhysicalDeviceLimits) =>- CanReadFieldArray "viewportBoundsRange" idx VkPhysicalDeviceLimits+ CanReadFieldArray "viewportBoundsRange" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanReadFieldArray "viewportBoundsRange" 0 VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanReadFieldArray "viewportBoundsRange" 1 VkPhysicalDeviceLimits- #-} type FieldArrayLength "viewportBoundsRange" VkPhysicalDeviceLimits = 2 {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "viewportBoundsRange" idx VkPhysicalDeviceLimits) =>- CanWriteFieldArray "viewportBoundsRange" idx VkPhysicalDeviceLimits+ CanWriteFieldArray "viewportBoundsRange" VkPhysicalDeviceLimits where- {-# SPECIALISE instance- CanWriteFieldArray "viewportBoundsRange" 0 VkPhysicalDeviceLimits- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "viewportBoundsRange" 1 VkPhysicalDeviceLimits- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-} HasField "viewportSubPixelBits" VkPhysicalDeviceLimits where@@ -11639,53 +11352,33 @@ = #{offset VkPhysicalDeviceLimits, pointSizeRange} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "pointSizeRange" idx VkPhysicalDeviceLimits) =>- CanReadFieldArray "pointSizeRange" idx VkPhysicalDeviceLimits- where- {-# SPECIALISE instance- CanReadFieldArray "pointSizeRange" 0 VkPhysicalDeviceLimits #-}-- {-# SPECIALISE instance- CanReadFieldArray "pointSizeRange" 1 VkPhysicalDeviceLimits #-}+ CanReadFieldArray "pointSizeRange" VkPhysicalDeviceLimits where type FieldArrayLength "pointSizeRange" VkPhysicalDeviceLimits = 2 {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceLimits, pointSizeRange} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceLimits, pointSizeRange} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "pointSizeRange" idx VkPhysicalDeviceLimits) =>- CanWriteFieldArray "pointSizeRange" idx VkPhysicalDeviceLimits- where- {-# SPECIALISE instance- CanWriteFieldArray "pointSizeRange" 0 VkPhysicalDeviceLimits #-}-- {-# SPECIALISE instance- CanWriteFieldArray "pointSizeRange" 1 VkPhysicalDeviceLimits #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "pointSizeRange" VkPhysicalDeviceLimits where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceLimits, pointSizeRange} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-} HasField "lineWidthRange" VkPhysicalDeviceLimits where@@ -11704,53 +11397,33 @@ = #{offset VkPhysicalDeviceLimits, lineWidthRange} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "lineWidthRange" idx VkPhysicalDeviceLimits) =>- CanReadFieldArray "lineWidthRange" idx VkPhysicalDeviceLimits- where- {-# SPECIALISE instance- CanReadFieldArray "lineWidthRange" 0 VkPhysicalDeviceLimits #-}-- {-# SPECIALISE instance- CanReadFieldArray "lineWidthRange" 1 VkPhysicalDeviceLimits #-}+ CanReadFieldArray "lineWidthRange" VkPhysicalDeviceLimits where type FieldArrayLength "lineWidthRange" VkPhysicalDeviceLimits = 2 {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceLimits, lineWidthRange} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceLimits, lineWidthRange} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "lineWidthRange" idx VkPhysicalDeviceLimits) =>- CanWriteFieldArray "lineWidthRange" idx VkPhysicalDeviceLimits- where- {-# SPECIALISE instance- CanWriteFieldArray "lineWidthRange" 0 VkPhysicalDeviceLimits #-}-- {-# SPECIALISE instance- CanWriteFieldArray "lineWidthRange" 1 VkPhysicalDeviceLimits #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "lineWidthRange" VkPhysicalDeviceLimits where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceLimits, lineWidthRange} +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-} HasField "pointSizeGranularity" VkPhysicalDeviceLimits where@@ -13785,27 +13458,8 @@ = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "memoryTypes" idx- VkPhysicalDeviceMemoryProperties) =>- CanReadFieldArray "memoryTypes" idx- VkPhysicalDeviceMemoryProperties+ CanReadFieldArray "memoryTypes" VkPhysicalDeviceMemoryProperties where- {-# SPECIALISE instance- CanReadFieldArray "memoryTypes" 0 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "memoryTypes" 1 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "memoryTypes" 2 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "memoryTypes" 3 VkPhysicalDeviceMemoryProperties- #-} type FieldArrayLength "memoryTypes" VkPhysicalDeviceMemoryProperties = VK_MAX_MEMORY_TYPES@@ -13813,54 +13467,28 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_MEMORY_TYPES - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}- +- sizeOf (undefined :: VkMemoryType) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkMemoryType) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}- +- sizeOf (undefined :: VkMemoryType) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkMemoryType) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "memoryTypes" idx- VkPhysicalDeviceMemoryProperties) =>- CanWriteFieldArray "memoryTypes" idx- VkPhysicalDeviceMemoryProperties+ CanWriteFieldArray "memoryTypes" VkPhysicalDeviceMemoryProperties where- {-# SPECIALISE instance- CanWriteFieldArray "memoryTypes" 0 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "memoryTypes" 1 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "memoryTypes" 2 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "memoryTypes" 3 VkPhysicalDeviceMemoryProperties- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}- +- sizeOf (undefined :: VkMemoryType) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkMemoryType) * i) instance {-# OVERLAPPING #-} HasField "memoryHeapCount" VkPhysicalDeviceMemoryProperties where@@ -13921,27 +13549,8 @@ = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "memoryHeaps" idx- VkPhysicalDeviceMemoryProperties) =>- CanReadFieldArray "memoryHeaps" idx- VkPhysicalDeviceMemoryProperties+ CanReadFieldArray "memoryHeaps" VkPhysicalDeviceMemoryProperties where- {-# SPECIALISE instance- CanReadFieldArray "memoryHeaps" 0 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "memoryHeaps" 1 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "memoryHeaps" 2 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "memoryHeaps" 3 VkPhysicalDeviceMemoryProperties- #-} type FieldArrayLength "memoryHeaps" VkPhysicalDeviceMemoryProperties = VK_MAX_MEMORY_HEAPS@@ -13949,54 +13558,28 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_MEMORY_HEAPS - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}- +- sizeOf (undefined :: VkMemoryHeap) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkMemoryHeap) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}- +- sizeOf (undefined :: VkMemoryHeap) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkMemoryHeap) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "memoryHeaps" idx- VkPhysicalDeviceMemoryProperties) =>- CanWriteFieldArray "memoryHeaps" idx- VkPhysicalDeviceMemoryProperties+ CanWriteFieldArray "memoryHeaps" VkPhysicalDeviceMemoryProperties where- {-# SPECIALISE instance- CanWriteFieldArray "memoryHeaps" 0 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "memoryHeaps" 1 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "memoryHeaps" 2 VkPhysicalDeviceMemoryProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "memoryHeaps" 3 VkPhysicalDeviceMemoryProperties- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}- +- sizeOf (undefined :: VkMemoryHeap) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: VkMemoryHeap) * i) instance Show VkPhysicalDeviceMemoryProperties where showsPrec d x@@ -15432,66 +15015,34 @@ = #{offset VkPhysicalDeviceProperties, deviceName} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "deviceName" idx VkPhysicalDeviceProperties) =>- CanReadFieldArray "deviceName" idx VkPhysicalDeviceProperties- where- {-# SPECIALISE instance- CanReadFieldArray "deviceName" 0 VkPhysicalDeviceProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceName" 1 VkPhysicalDeviceProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceName" 2 VkPhysicalDeviceProperties #-}-- {-# SPECIALISE instance- CanReadFieldArray "deviceName" 3 VkPhysicalDeviceProperties #-}+ CanReadFieldArray "deviceName" VkPhysicalDeviceProperties where type FieldArrayLength "deviceName" VkPhysicalDeviceProperties = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceProperties, deviceName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceProperties, deviceName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "deviceName" idx VkPhysicalDeviceProperties) =>- CanWriteFieldArray "deviceName" idx VkPhysicalDeviceProperties- where- {-# SPECIALISE instance- CanWriteFieldArray "deviceName" 0 VkPhysicalDeviceProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceName" 1 VkPhysicalDeviceProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceName" 2 VkPhysicalDeviceProperties #-}-- {-# SPECIALISE instance- CanWriteFieldArray "deviceName" 3 VkPhysicalDeviceProperties #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ CanWriteFieldArray "deviceName" VkPhysicalDeviceProperties where+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceProperties, deviceName} +- sizeOf (undefined :: CChar) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ sizeOf (undefined :: CChar) * i) instance {-# OVERLAPPING #-} HasField "pipelineCacheUUID" VkPhysicalDeviceProperties where@@ -15512,27 +15063,8 @@ = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "pipelineCacheUUID" idx- VkPhysicalDeviceProperties) =>- CanReadFieldArray "pipelineCacheUUID" idx- VkPhysicalDeviceProperties+ CanReadFieldArray "pipelineCacheUUID" VkPhysicalDeviceProperties where- {-# SPECIALISE instance- CanReadFieldArray "pipelineCacheUUID" 0 VkPhysicalDeviceProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "pipelineCacheUUID" 1 VkPhysicalDeviceProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "pipelineCacheUUID" 2 VkPhysicalDeviceProperties- #-}-- {-# SPECIALISE instance- CanReadFieldArray "pipelineCacheUUID" 3 VkPhysicalDeviceProperties- #-} type FieldArrayLength "pipelineCacheUUID" VkPhysicalDeviceProperties = VK_UUID_SIZE@@ -15540,54 +15072,28 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = VK_UUID_SIZE - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}- +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word8) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}- +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "pipelineCacheUUID" idx- VkPhysicalDeviceProperties) =>- CanWriteFieldArray "pipelineCacheUUID" idx- VkPhysicalDeviceProperties+ CanWriteFieldArray "pipelineCacheUUID" VkPhysicalDeviceProperties where- {-# SPECIALISE instance- CanWriteFieldArray "pipelineCacheUUID" 0 VkPhysicalDeviceProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "pipelineCacheUUID" 1 VkPhysicalDeviceProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "pipelineCacheUUID" 2 VkPhysicalDeviceProperties- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "pipelineCacheUUID" 3 VkPhysicalDeviceProperties- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}- +- sizeOf (undefined :: Word8) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word8) * i) instance {-# OVERLAPPING #-} HasField "limits" VkPhysicalDeviceProperties where@@ -16772,21 +16278,9 @@ = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "sampleLocationCoordinateRange" idx- VkPhysicalDeviceSampleLocationsPropertiesEXT) =>- CanReadFieldArray "sampleLocationCoordinateRange" idx+ CanReadFieldArray "sampleLocationCoordinateRange" VkPhysicalDeviceSampleLocationsPropertiesEXT where- {-# SPECIALISE instance- CanReadFieldArray "sampleLocationCoordinateRange" 0- VkPhysicalDeviceSampleLocationsPropertiesEXT- #-}-- {-# SPECIALISE instance- CanReadFieldArray "sampleLocationCoordinateRange" 1- VkPhysicalDeviceSampleLocationsPropertiesEXT- #-} type FieldArrayLength "sampleLocationCoordinateRange" VkPhysicalDeviceSampleLocationsPropertiesEXT = 2@@ -16794,48 +16288,29 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = 2 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "sampleLocationCoordinateRange" idx- VkPhysicalDeviceSampleLocationsPropertiesEXT) =>- CanWriteFieldArray "sampleLocationCoordinateRange" idx+ CanWriteFieldArray "sampleLocationCoordinateRange" VkPhysicalDeviceSampleLocationsPropertiesEXT where- {-# SPECIALISE instance- CanWriteFieldArray "sampleLocationCoordinateRange" 0- VkPhysicalDeviceSampleLocationsPropertiesEXT- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "sampleLocationCoordinateRange" 1- VkPhysicalDeviceSampleLocationsPropertiesEXT- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-} HasField "sampleLocationSubPixelBits"
src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc view
@@ -2355,31 +2355,9 @@ = #{offset VkPipelineColorBlendStateCreateInfo, blendConstants} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "blendConstants" idx- VkPipelineColorBlendStateCreateInfo) =>- CanReadFieldArray "blendConstants" idx+ CanReadFieldArray "blendConstants" VkPipelineColorBlendStateCreateInfo where- {-# SPECIALISE instance- CanReadFieldArray "blendConstants" 0- VkPipelineColorBlendStateCreateInfo- #-}-- {-# SPECIALISE instance- CanReadFieldArray "blendConstants" 1- VkPipelineColorBlendStateCreateInfo- #-}-- {-# SPECIALISE instance- CanReadFieldArray "blendConstants" 2- VkPipelineColorBlendStateCreateInfo- #-}-- {-# SPECIALISE instance- CanReadFieldArray "blendConstants" 3- VkPipelineColorBlendStateCreateInfo- #-} type FieldArrayLength "blendConstants" VkPipelineColorBlendStateCreateInfo = 4@@ -2387,58 +2365,29 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = 4 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkPipelineColorBlendStateCreateInfo, blendConstants}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "blendConstants" idx- VkPipelineColorBlendStateCreateInfo) =>- CanWriteFieldArray "blendConstants" idx+ CanWriteFieldArray "blendConstants" VkPipelineColorBlendStateCreateInfo where- {-# SPECIALISE instance- CanWriteFieldArray "blendConstants" 0- VkPipelineColorBlendStateCreateInfo- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "blendConstants" 1- VkPipelineColorBlendStateCreateInfo- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "blendConstants" 2- VkPipelineColorBlendStateCreateInfo- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "blendConstants" 3- VkPipelineColorBlendStateCreateInfo- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkPipelineColorBlendStateCreateInfo, blendConstants}- +- sizeOf (undefined :: #{type float}) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: #{type float}) * i) instance Show VkPipelineColorBlendStateCreateInfo where showsPrec d x
src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc view
@@ -1016,26 +1016,8 @@ = #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize} instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "computeWorkGroupSize" idx- VkShaderStatisticsInfoAMD) =>- CanReadFieldArray "computeWorkGroupSize" idx- VkShaderStatisticsInfoAMD+ CanReadFieldArray "computeWorkGroupSize" VkShaderStatisticsInfoAMD where- {-# SPECIALISE instance- CanReadFieldArray "computeWorkGroupSize" 0- VkShaderStatisticsInfoAMD- #-}-- {-# SPECIALISE instance- CanReadFieldArray "computeWorkGroupSize" 1- VkShaderStatisticsInfoAMD- #-}-- {-# SPECIALISE instance- CanReadFieldArray "computeWorkGroupSize" 2- VkShaderStatisticsInfoAMD- #-} type FieldArrayLength "computeWorkGroupSize" VkShaderStatisticsInfoAMD = 3@@ -1043,53 +1025,28 @@ {-# INLINE fieldArrayLength #-} fieldArrayLength = 3 - {-# INLINE getFieldArray #-}- getFieldArray = f+ {-# INLINE getFieldArrayUnsafe #-}+ getFieldArrayUnsafe i = f where {-# NOINLINE f #-} f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off) off = #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i - {-# INLINE readFieldArray #-}- readFieldArray p+ {-# INLINE readFieldArrayUnsafe #-}+ readFieldArrayUnsafe i p = peekByteOff p (#{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance {-# OVERLAPPING #-}- (KnownNat idx,- IndexInBounds "computeWorkGroupSize" idx- VkShaderStatisticsInfoAMD) =>- CanWriteFieldArray "computeWorkGroupSize" idx- VkShaderStatisticsInfoAMD+ CanWriteFieldArray "computeWorkGroupSize" VkShaderStatisticsInfoAMD where- {-# SPECIALISE instance- CanWriteFieldArray "computeWorkGroupSize" 0- VkShaderStatisticsInfoAMD- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "computeWorkGroupSize" 1- VkShaderStatisticsInfoAMD- #-}-- {-# SPECIALISE instance- CanWriteFieldArray "computeWorkGroupSize" 2- VkShaderStatisticsInfoAMD- #-}-- {-# INLINE writeFieldArray #-}- writeFieldArray p+ {-# INLINE writeFieldArrayUnsafe #-}+ writeFieldArrayUnsafe i p = pokeByteOff p (#{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}- +- sizeOf (undefined :: Word32) *- fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs+ + sizeOf (undefined :: Word32) * i) instance Show VkShaderStatisticsInfoAMD where showsPrec d x
src/Graphics/Vulkan/Marshal.hs view
@@ -33,6 +33,7 @@ -- * Type-indexed access to struct members , HasField (..), CanReadField (..), CanWriteField (..) , CanReadFieldArray (..), CanWriteFieldArray (..)+ , getFieldArray, readFieldArray, writeFieldArray , IsFieldArray, IndexInBounds -- * Re-exported functions from 'Foreign.ForeignPtr' , mallocForeignPtr, withForeignPtr, addForeignPtrFinalizer@@ -63,6 +64,7 @@ import Foreign.Marshal.Utils (fillBytes) import Foreign.Ptr (FunPtr, nullPtr, plusPtr) import Foreign.Storable (Storable (sizeOf))+import GHC.Exts (Proxy#, proxy#) import GHC.Generics (Generic) import GHC.Ptr (Ptr (..)) import GHC.TypeLits@@ -287,20 +289,44 @@ writeField :: Ptr a -> FieldType fname a -> IO () class ( HasField fname a- , IndexInBounds fname idx a , IsFieldArray fname a 'True- ) => CanReadFieldArray (fname :: Symbol) (idx :: Nat) (a :: Type) where+ , KnownNat (FieldArrayLength fname a)+ ) => CanReadFieldArray (fname :: Symbol) (a :: Type) where -- | Length of an array that is a field of a structure or union type FieldArrayLength fname a :: Nat -- | Length of an array that is a field of a structure or union fieldArrayLength :: Int- getFieldArray :: a -> FieldType fname a- readFieldArray :: Ptr a -> IO (FieldType fname a)+ -- | Index an array-type field. No bound checks.+ getFieldArrayUnsafe :: Int -> a -> FieldType fname a+ -- | Read from an array-type field. No bound checks.+ readFieldArrayUnsafe :: Int -> Ptr a -> IO (FieldType fname a) -class CanReadFieldArray fname idx a- => CanWriteFieldArray (fname :: Symbol) (idx :: Nat) (a :: Type) where- writeFieldArray :: Ptr a -> FieldType fname a -> IO ()+getFieldArray :: forall fname idx a+ . (CanReadFieldArray fname a, IndexInBounds fname idx a, KnownNat idx)+ => a -> FieldType fname a+getFieldArray = getFieldArrayUnsafe @fname @a+ (fromInteger $ natVal' (proxy# :: Proxy# idx))+{-# INLINE getFieldArray #-} +readFieldArray :: forall fname idx a+ . (CanReadFieldArray fname a, IndexInBounds fname idx a, KnownNat idx)+ => Ptr a -> IO (FieldType fname a)+readFieldArray = readFieldArrayUnsafe @fname @a+ (fromInteger $ natVal' (proxy# :: Proxy# idx))+{-# INLINE readFieldArray #-}++class CanReadFieldArray fname a+ => CanWriteFieldArray (fname :: Symbol) (a :: Type) where+ -- | Write to an array-type field. No bound checks.+ writeFieldArrayUnsafe :: Int -> Ptr a -> FieldType fname a -> IO ()++writeFieldArray :: forall fname idx a+ . (CanWriteFieldArray fname a, IndexInBounds fname idx a, KnownNat idx)+ => Ptr a -> FieldType fname a -> IO ()+writeFieldArray = writeFieldArrayUnsafe @fname @a+ (fromInteger $ natVal' (proxy# :: Proxy# idx))+{-# INLINE writeFieldArray #-}+ instance {-# OVERLAPPABLE #-} TypeError (ErrorNoSuchField fname a) => HasField fname a where @@ -316,13 +342,13 @@ instance {-# OVERLAPPABLE #-} ( HasField fname a , IsFieldArray fname a 'True- , IndexInBounds fname idx a , TypeError (ErrorNotReadableField fname a)- ) => CanReadFieldArray fname idx a where+ , KnownNat (FieldArrayLength fname a)+ ) => CanReadFieldArray fname a where instance {-# OVERLAPPABLE #-}- ( CanReadFieldArray fname idx a+ ( CanReadFieldArray fname a , TypeError (ErrorNotWritableField fname a)- ) => CanWriteFieldArray fname idx a where+ ) => CanWriteFieldArray fname a where type IndexInBounds (s :: Symbol) (i :: Nat) (a :: Type)@@ -398,7 +424,7 @@ -- The string pointers should not be used outside the callback. -- It will point to a correct location only as long as the struct is alive. withCStringField :: forall fname a b- . ( CanReadFieldArray fname 0 a+ . ( CanReadFieldArray fname a , FieldType fname a ~ CChar , VulkanMarshal a )@@ -410,7 +436,7 @@ -- | Get pointer to a memory location of the C string field in a structure. unsafeCStringField :: forall fname a- . ( CanReadFieldArray fname 0 a+ . ( CanReadFieldArray fname a , FieldType fname a ~ CChar , VulkanMarshal a )@@ -419,30 +445,30 @@ getStringField :: forall fname a- . ( CanReadFieldArray fname 0 a+ . ( CanReadFieldArray fname a , FieldType fname a ~ CChar , VulkanMarshal a ) => a -> String getStringField x- = case takeForce (fieldArrayLength @fname @0 @a)+ = case takeForce (fieldArrayLength @fname @a) . unsafeDupablePerformIO $ withCStringField @fname @a x peekCString of ((), s) -> s readStringField :: forall fname a- . ( CanReadFieldArray fname 0 a+ . ( CanReadFieldArray fname a , FieldType fname a ~ CChar , VulkanMarshal a ) => Ptr a -> IO String readStringField px = do- ((), s) <- takeForce (fieldArrayLength @fname @0 @a)+ ((), s) <- takeForce (fieldArrayLength @fname @a) <$> peekCString (px `plusPtr` fieldOffset @fname @a) return s writeStringField :: forall fname a- . ( CanWriteFieldArray fname 0 a+ . ( CanWriteFieldArray fname a , FieldType fname a ~ CChar , VulkanMarshal a )
src/Graphics/Vulkan/Marshal/Create.hs view
@@ -23,7 +23,8 @@ module Graphics.Vulkan.Marshal.Create ( CreateVkStruct () , createVk, (&*)- , set, setAt, setVk, setVkRef, setStr, setStrRef, setStrListRef, setListRef+ , set, setAt, setVk, setVkRef, setStr, setStrRef+ , setStrListRef, setStrListCountAndRef, setListRef, setListCountAndRef , SetOptionalFields (..), HandleRemainingFields (..), HandleRemFields , unsafeIOCreate ) where@@ -140,7 +141,7 @@ -- | `writeFieldArray` wrapped into `CreateVkStruct` monad. setAt :: forall fname i x- . CanWriteFieldArray fname i x+ . ( CanWriteFieldArray fname x, IndexInBounds fname i x, KnownNat i) => FieldType fname x -> CreateVkStruct x '[fname] () setAt v = CreateVkStruct $ \p -> (,) ([],[]) <$> writeFieldArray @fname @i @x p v @@ -158,7 +159,7 @@ -- | Write a String into a vulkan struct in-place. setStr :: forall fname x- . ( CanWriteFieldArray fname 0 x+ . ( CanWriteFieldArray fname x , FieldType fname x ~ CChar ) => String -> CreateVkStruct x '[fname] ()@@ -198,6 +199,20 @@ aPtr <- newArray v (,) ([coerce aPtr],[]) <$> writeField @fname @x p aPtr +-- | Equivalent to 'set' on a count field and 'setListRef' on a corresponding list field,+-- where the count is set to the length of the list.+setListCountAndRef :: forall countfname listfname x a+ . ( CanWriteField countfname x+ , CanWriteField listfname x+ , FieldType countfname x ~ Word32+ , FieldType listfname x ~ Ptr a+ , Storable a+ )+ => [a] -> CreateVkStruct x (Union x '[countfname] '[listfname]) ()+setListCountAndRef list =+ set @countfname (fromIntegral $ length list) &*+ setListRef @listfname list+ -- | Allocate memory for an array of elements, store them, -- and write a pointer to the array into vulkan structure. --@@ -216,6 +231,19 @@ strptrs <- mapM newCString v aPtr <- newArray strptrs (,) (coerce aPtr : coerce strptrs,[]) <$> writeField @fname @x p aPtr++-- | Equivalent to 'set' on a count field and 'setStrListRef' on a corresponding list field,+-- where the count is set to the length of the list.+setStrListCountAndRef :: forall countfname listfname x+ . ( CanWriteField countfname x+ , CanWriteField listfname x+ , FieldType countfname x ~ Word32+ , FieldType listfname x ~ Ptr CString+ )+ => [String] -> CreateVkStruct x (Union x '[countfname] '[listfname]) ()+setStrListCountAndRef list =+ set @countfname (fromIntegral $ length list) &*+ setStrListRef @listfname list -- | Write a pointer to a vulkan structure - member of current structure -- and make sure the member exists as long as this structure exists.
vulkan-api.cabal view
@@ -3,7 +3,7 @@ -- it is autogenerated at genvulkan/src/Write/Cabal.hs -- name: vulkan-api-version: 1.1.3.0+version: 1.1.3.1 synopsis: Low-level low-overhead vulkan api bindings description: Haskell bindings for vulkan api as described in vk.xml.@@ -446,7 +446,7 @@ if os(windows) extra-libraries: vulkan-1 if os(darwin)- frameworks: MoltenVK+ extra-libraries: vulkan if !os(windows) && !os(darwin) extra-libraries: vulkan else