{-# language CPP #-}
-- No documentation found for Chapter "Handles"
module Vulkan.Core10.Handles  ( Instance(..)
                              , Instance_T
                              , PhysicalDevice(..)
                              , PhysicalDevice_T
                              , Device(..)
                              , Device_T
                              , Queue(..)
                              , Queue_T
                              , CommandBuffer(..)
                              , CommandBuffer_T
                              , DeviceMemory(..)
                              , CommandPool(..)
                              , Buffer(..)
                              , BufferView(..)
                              , Image(..)
                              , ImageView(..)
                              , ShaderModule(..)
                              , Pipeline(..)
                              , PipelineLayout(..)
                              , Sampler(..)
                              , DescriptorSet(..)
                              , DescriptorSetLayout(..)
                              , DescriptorPool(..)
                              , Fence(..)
                              , Semaphore(..)
                              , Event(..)
                              , QueryPool(..)
                              , Framebuffer(..)
                              , RenderPass(..)
                              , PipelineCache(..)
                              ) where

import Foreign.Ptr (ptrToWordPtr)
import GHC.Show (showParen)
import Numeric (showHex)
import Foreign.Ptr (pattern WordPtr)
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Foreign.Storable (Storable)
import Foreign.Ptr (Ptr)
import Data.Word (Word64)
import Vulkan.Dynamic (DeviceCmds)
import Vulkan.Core10.APIConstants (HasObjectType(..))
import Vulkan.Dynamic (InstanceCmds)
import Vulkan.Core10.APIConstants (IsHandle)
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_BUFFER))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_BUFFER_VIEW))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_COMMAND_BUFFER))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_COMMAND_POOL))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DESCRIPTOR_POOL))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DESCRIPTOR_SET))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEVICE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEVICE_MEMORY))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_EVENT))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_FENCE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_FRAMEBUFFER))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_IMAGE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_IMAGE_VIEW))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_INSTANCE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PHYSICAL_DEVICE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PIPELINE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PIPELINE_CACHE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PIPELINE_LAYOUT))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_QUERY_POOL))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_QUEUE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_RENDER_PASS))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SAMPLER))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SEMAPHORE))
import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SHADER_MODULE))
-- | An opaque type for representing pointers to VkInstance handles
data Instance_T
-- | VkInstance - Opaque handle to an instance object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_KHR_android_surface.createAndroidSurfaceKHR',
-- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT',
-- 'Vulkan.Extensions.VK_EXT_directfb_surface.createDirectFBSurfaceEXT',
-- 'Vulkan.Extensions.VK_KHR_display.createDisplayPlaneSurfaceKHR',
-- 'Vulkan.Extensions.VK_EXT_headless_surface.createHeadlessSurfaceEXT',
-- 'Vulkan.Extensions.VK_MVK_ios_surface.createIOSSurfaceMVK',
-- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.createImagePipeSurfaceFUCHSIA',
-- 'Vulkan.Core10.DeviceInitialization.createInstance',
-- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK',
-- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',
-- 'Vulkan.Extensions.VK_QNX_screen_surface.createScreenSurfaceQNX',
-- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.createStreamDescriptorSurfaceGGP',
-- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN',
-- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR',
-- 'Vulkan.Extensions.VK_KHR_win32_surface.createWin32SurfaceKHR',
-- 'Vulkan.Extensions.VK_KHR_xcb_surface.createXcbSurfaceKHR',
-- 'Vulkan.Extensions.VK_KHR_xlib_surface.createXlibSurfaceKHR',
-- 'Vulkan.Extensions.VK_EXT_debug_report.debugReportMessageEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_report.destroyDebugReportCallbackEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.destroyDebugUtilsMessengerEXT',
-- 'Vulkan.Core10.DeviceInitialization.destroyInstance',
-- 'Vulkan.Extensions.VK_KHR_surface.destroySurfaceKHR',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.enumeratePhysicalDeviceGroups',
-- 'Vulkan.Extensions.VK_KHR_device_group_creation.enumeratePhysicalDeviceGroupsKHR',
-- 'Vulkan.Core10.DeviceInitialization.enumeratePhysicalDevices',
-- 'Vulkan.Core10.DeviceInitialization.getInstanceProcAddr',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.submitDebugUtilsMessageEXT'
data Instance = Instance
  { Instance -> Ptr Instance_T
instanceHandle :: Ptr Instance_T
  , Instance -> InstanceCmds
instanceCmds :: InstanceCmds
  }
  deriving stock (Instance -> Instance -> Bool
(Instance -> Instance -> Bool)
-> (Instance -> Instance -> Bool) -> Eq Instance
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Instance -> Instance -> Bool
== :: Instance -> Instance -> Bool
$c/= :: Instance -> Instance -> Bool
/= :: Instance -> Instance -> Bool
Eq, Int -> Instance -> ShowS
[Instance] -> ShowS
Instance -> String
(Int -> Instance -> ShowS)
-> (Instance -> String) -> ([Instance] -> ShowS) -> Show Instance
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Instance -> ShowS
showsPrec :: Int -> Instance -> ShowS
$cshow :: Instance -> String
show :: Instance -> String
$cshowList :: [Instance] -> ShowS
showList :: [Instance] -> ShowS
Show)
  deriving anyclass (Eq Instance
Zero Instance
(Eq Instance, Zero Instance) => IsHandle Instance
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance Zero Instance where
  zero :: Instance
zero = Ptr Instance_T -> InstanceCmds -> Instance
Instance Ptr Instance_T
forall a. Zero a => a
zero InstanceCmds
forall a. Zero a => a
zero
instance HasObjectType Instance where
  objectTypeAndHandle :: Instance -> (ObjectType, Word64)
objectTypeAndHandle (Instance (Ptr Instance_T -> WordPtr
forall a. Ptr a -> WordPtr
ptrToWordPtr -> WordPtr Word
h) InstanceCmds
_) = ( ObjectType
OBJECT_TYPE_INSTANCE
                                                                 , Word -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
h )


-- | An opaque type for representing pointers to VkPhysicalDevice handles
data PhysicalDevice_T
-- | VkPhysicalDevice - Opaque handle to a physical device object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties',
-- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.acquireDrmDisplayEXT',
-- 'Vulkan.Extensions.VK_NV_acquire_winrt_display.acquireWinrtDisplayNV',
-- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.acquireXlibDisplayEXT',
-- 'Vulkan.Core10.Device.createDevice',
-- 'Vulkan.Extensions.VK_KHR_display.createDisplayModeKHR',
-- 'Vulkan.Core10.ExtensionDiscovery.enumerateDeviceExtensionProperties',
-- 'Vulkan.Core10.LayerDiscovery.enumerateDeviceLayerProperties',
-- 'Vulkan.Extensions.VK_KHR_performance_query.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR',
-- 'Vulkan.Core10.DeviceInitialization.enumeratePhysicalDevices',
-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getDisplayModeProperties2KHR',
-- 'Vulkan.Extensions.VK_KHR_display.getDisplayModePropertiesKHR',
-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getDisplayPlaneCapabilities2KHR',
-- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneCapabilitiesKHR',
-- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR',
-- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.getDrmDisplayEXT',
-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',
-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsKHR',
-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesKHR',
-- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV',
-- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT',
-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getPhysicalDeviceDisplayPlaneProperties2KHR',
-- 'Vulkan.Extensions.VK_KHR_display.getPhysicalDeviceDisplayPlanePropertiesKHR',
-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getPhysicalDeviceDisplayProperties2KHR',
-- 'Vulkan.Extensions.VK_KHR_display.getPhysicalDeviceDisplayPropertiesKHR',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferProperties',
-- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferPropertiesKHR',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.getPhysicalDeviceExternalFenceProperties',
-- 'Vulkan.Extensions.VK_KHR_external_fence_capabilities.getPhysicalDeviceExternalFencePropertiesKHR',
-- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.getPhysicalDeviceExternalSemaphoreProperties',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_capabilities.getPhysicalDeviceExternalSemaphorePropertiesKHR',
-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFeatures',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2KHR',
-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2KHR',
-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR',
-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2KHR',
-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceMemoryProperties',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceMemoryProperties2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceMemoryProperties2KHR',
-- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT',
-- 'Vulkan.Extensions.VK_NV_optical_flow.getPhysicalDeviceOpticalFlowImageFormatsNV',
-- 'Vulkan.Extensions.VK_KHR_swapchain.getPhysicalDevicePresentRectanglesKHR',
-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceProperties',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2KHR',
-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR',
-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceQueueFamilyProperties2KHR',
-- 'Vulkan.Extensions.VK_QNX_screen_surface.getPhysicalDeviceScreenPresentationSupportQNX',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceSparseImageFormatProperties2',
-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceSparseImageFormatProperties2KHR',
-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV',
-- 'Vulkan.Extensions.VK_EXT_display_surface_counter.getPhysicalDeviceSurfaceCapabilities2EXT',
-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR',
-- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR',
-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR',
-- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceFormatsKHR',
-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT',
-- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR',
-- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.getPhysicalDeviceToolProperties',
-- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>,
-- 'Vulkan.Extensions.VK_KHR_wayland_surface.getPhysicalDeviceWaylandPresentationSupportKHR',
-- 'Vulkan.Extensions.VK_KHR_win32_surface.getPhysicalDeviceWin32PresentationSupportKHR',
-- 'Vulkan.Extensions.VK_KHR_xcb_surface.getPhysicalDeviceXcbPresentationSupportKHR',
-- 'Vulkan.Extensions.VK_KHR_xlib_surface.getPhysicalDeviceXlibPresentationSupportKHR',
-- 'Vulkan.Extensions.VK_EXT_acquire_xlib_display.getRandROutputDisplayEXT',
-- 'Vulkan.Extensions.VK_NV_acquire_winrt_display.getWinrtDisplayNV',
-- 'Vulkan.Extensions.VK_EXT_direct_mode_display.releaseDisplayEXT'
data PhysicalDevice = PhysicalDevice
  { PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle :: Ptr PhysicalDevice_T
  , PhysicalDevice -> InstanceCmds
instanceCmds :: InstanceCmds
  }
  deriving stock (PhysicalDevice -> PhysicalDevice -> Bool
(PhysicalDevice -> PhysicalDevice -> Bool)
-> (PhysicalDevice -> PhysicalDevice -> Bool) -> Eq PhysicalDevice
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDevice -> PhysicalDevice -> Bool
== :: PhysicalDevice -> PhysicalDevice -> Bool
$c/= :: PhysicalDevice -> PhysicalDevice -> Bool
/= :: PhysicalDevice -> PhysicalDevice -> Bool
Eq, Int -> PhysicalDevice -> ShowS
[PhysicalDevice] -> ShowS
PhysicalDevice -> String
(Int -> PhysicalDevice -> ShowS)
-> (PhysicalDevice -> String)
-> ([PhysicalDevice] -> ShowS)
-> Show PhysicalDevice
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PhysicalDevice -> ShowS
showsPrec :: Int -> PhysicalDevice -> ShowS
$cshow :: PhysicalDevice -> String
show :: PhysicalDevice -> String
$cshowList :: [PhysicalDevice] -> ShowS
showList :: [PhysicalDevice] -> ShowS
Show)
  deriving anyclass (Eq PhysicalDevice
Zero PhysicalDevice
(Eq PhysicalDevice, Zero PhysicalDevice) => IsHandle PhysicalDevice
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance Zero PhysicalDevice where
  zero :: PhysicalDevice
zero = Ptr PhysicalDevice_T -> InstanceCmds -> PhysicalDevice
PhysicalDevice Ptr PhysicalDevice_T
forall a. Zero a => a
zero InstanceCmds
forall a. Zero a => a
zero
instance HasObjectType PhysicalDevice where
  objectTypeAndHandle :: PhysicalDevice -> (ObjectType, Word64)
objectTypeAndHandle (PhysicalDevice (Ptr PhysicalDevice_T -> WordPtr
forall a. Ptr a -> WordPtr
ptrToWordPtr -> WordPtr Word
h) InstanceCmds
_) = ( ObjectType
OBJECT_TYPE_PHYSICAL_DEVICE
                                                                       , Word -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
h )


-- | An opaque type for representing pointers to VkDevice handles
data Device_T
-- | VkDevice - Opaque handle to a device object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.acquireFullScreenExclusiveModeEXT',
-- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImage2KHR',
-- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.acquirePerformanceConfigurationINTEL',
-- 'Vulkan.Extensions.VK_KHR_performance_query.acquireProfilingLockKHR',
-- 'Vulkan.Core10.CommandBuffer.allocateCommandBuffers',
-- 'Vulkan.Core10.DescriptorSet.allocateDescriptorSets',
-- 'Vulkan.Core10.Memory.allocateMemory',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.bindAccelerationStructureMemoryNV',
-- 'Vulkan.Core10.MemoryManagement.bindBufferMemory',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindBufferMemory2',
-- 'Vulkan.Extensions.VK_KHR_bind_memory2.bindBufferMemory2KHR',
-- 'Vulkan.Core10.MemoryManagement.bindImageMemory',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindImageMemory2',
-- 'Vulkan.Extensions.VK_KHR_bind_memory2.bindImageMemory2KHR',
-- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR>,
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.buildAccelerationStructuresKHR',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.buildMicromapsEXT',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureToMemoryKHR',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToImageEXT',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyMemoryToAccelerationStructureKHR',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMemoryToMicromapEXT',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapEXT',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapToMemoryEXT',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.createAccelerationStructureKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.createAccelerationStructureNV',
-- 'Vulkan.Core10.Buffer.createBuffer',
-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.createBufferCollectionFUCHSIA',
-- 'Vulkan.Core10.BufferView.createBufferView',
-- 'Vulkan.Core10.CommandPool.createCommandPool',
-- 'Vulkan.Core10.Pipeline.createComputePipelines',
-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX',
-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX',
-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaFunctionNV',
-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaModuleNV',
-- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR',
-- 'Vulkan.Core10.DescriptorSet.createDescriptorPool',
-- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate',
-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR',
-- 'Vulkan.Core10.Device.createDevice', 'Vulkan.Core10.Event.createEvent',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
-- 'Vulkan.Core10.Fence.createFence',
-- 'Vulkan.Core10.Pass.createFramebuffer',
-- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
-- 'Vulkan.Core10.Image.createImage',
-- 'Vulkan.Core10.ImageView.createImageView',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.createIndirectCommandsLayoutNV',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.createMicromapEXT',
-- 'Vulkan.Extensions.VK_NV_optical_flow.createOpticalFlowSessionNV',
-- 'Vulkan.Core10.PipelineCache.createPipelineCache',
-- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',
-- 'Vulkan.Extensions.VK_EXT_private_data.createPrivateDataSlotEXT',
-- 'Vulkan.Core10.Query.createQueryPool',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV',
-- 'Vulkan.Core10.Pass.createRenderPass',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.createRenderPass2',
-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.createRenderPass2KHR',
-- 'Vulkan.Core10.Sampler.createSampler',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversion',
-- 'Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.createSamplerYcbcrConversionKHR',
-- 'Vulkan.Core10.QueueSemaphore.createSemaphore',
-- 'Vulkan.Core10.Shader.createShaderModule',
-- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT',
-- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR',
-- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR',
-- 'Vulkan.Extensions.VK_EXT_validation_cache.createValidationCacheEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionKHR vkCreateVideoSessionKHR>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR>,
-- 'Vulkan.Extensions.VK_EXT_debug_marker.debugMarkerSetObjectNameEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_marker.debugMarkerSetObjectTagEXT',
-- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.deferredOperationJoinKHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.destroyAccelerationStructureKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.destroyAccelerationStructureNV',
-- 'Vulkan.Core10.Buffer.destroyBuffer',
-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.destroyBufferCollectionFUCHSIA',
-- 'Vulkan.Core10.BufferView.destroyBufferView',
-- 'Vulkan.Core10.CommandPool.destroyCommandPool',
-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX',
-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX',
-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaFunctionNV',
-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaModuleNV',
-- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR',
-- 'Vulkan.Core10.DescriptorSet.destroyDescriptorPool',
-- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.destroyDescriptorUpdateTemplate',
-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.destroyDescriptorUpdateTemplateKHR',
-- 'Vulkan.Core10.Device.destroyDevice',
-- 'Vulkan.Core10.Event.destroyEvent', 'Vulkan.Core10.Fence.destroyFence',
-- 'Vulkan.Core10.Pass.destroyFramebuffer',
-- 'Vulkan.Core10.Image.destroyImage',
-- 'Vulkan.Core10.ImageView.destroyImageView',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.destroyIndirectCommandsLayoutNV',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.destroyMicromapEXT',
-- 'Vulkan.Extensions.VK_NV_optical_flow.destroyOpticalFlowSessionNV',
-- 'Vulkan.Core10.Pipeline.destroyPipeline',
-- 'Vulkan.Core10.PipelineCache.destroyPipelineCache',
-- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.destroyPrivateDataSlot',
-- 'Vulkan.Extensions.VK_EXT_private_data.destroyPrivateDataSlotEXT',
-- 'Vulkan.Core10.Query.destroyQueryPool',
-- 'Vulkan.Core10.Pass.destroyRenderPass',
-- 'Vulkan.Core10.Sampler.destroySampler',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.destroySamplerYcbcrConversion',
-- 'Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion.destroySamplerYcbcrConversionKHR',
-- 'Vulkan.Core10.QueueSemaphore.destroySemaphore',
-- 'Vulkan.Extensions.VK_EXT_shader_object.destroyShaderEXT',
-- 'Vulkan.Core10.Shader.destroyShaderModule',
-- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR',
-- 'Vulkan.Extensions.VK_EXT_validation_cache.destroyValidationCacheEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>,
-- 'Vulkan.Core10.Queue.deviceWaitIdle',
-- 'Vulkan.Extensions.VK_EXT_display_control.displayPowerControlEXT',
-- 'Vulkan.Extensions.VK_EXT_metal_objects.exportMetalObjectsEXT',
-- 'Vulkan.Core10.Memory.flushMappedMemoryRanges',
-- 'Vulkan.Core10.CommandBuffer.freeCommandBuffers',
-- 'Vulkan.Core10.DescriptorSet.freeDescriptorSets',
-- 'Vulkan.Core10.Memory.freeMemory',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getAccelerationStructureBuildSizesKHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getAccelerationStructureDeviceAddressKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureHandleNV',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureMemoryRequirementsNV',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getAccelerationStructureOpaqueCaptureDescriptorDataEXT',
-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID',
-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.getBufferCollectionPropertiesFUCHSIA',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress',
-- 'Vulkan.Extensions.VK_EXT_buffer_device_address.getBufferDeviceAddressEXT',
-- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getBufferDeviceAddressKHR',
-- 'Vulkan.Core10.MemoryManagement.getBufferMemoryRequirements',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2',
-- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2KHR',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddress',
-- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddressKHR',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getBufferOpaqueCaptureDescriptorDataEXT',
-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT',
-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getCalibratedTimestampsKHR',
-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.getCudaModuleCacheNV',
-- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationMaxConcurrencyKHR',
-- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationResultKHR',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorEXT',
-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.getDescriptorSetHostMappingVALVE',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',
-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.getDescriptorSetLayoutHostMappingInfoVALVE',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport',
-- 'Vulkan.Extensions.VK_KHR_maintenance3.getDescriptorSetLayoutSupportKHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getDeviceAccelerationStructureCompatibilityKHR',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceBufferMemoryRequirements',
-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR',
-- 'Vulkan.Extensions.VK_EXT_device_fault.getDeviceFaultInfoEXT',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.getDeviceGroupPeerMemoryFeatures',
-- 'Vulkan.Extensions.VK_KHR_device_group.getDeviceGroupPeerMemoryFeaturesKHR',
-- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupPresentCapabilitiesKHR',
-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getDeviceGroupSurfacePresentModes2EXT',
-- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupSurfacePresentModesKHR',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageMemoryRequirements',
-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements',
-- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR',
-- 'Vulkan.Extensions.VK_KHR_maintenance5.getDeviceImageSubresourceLayoutKHR',
-- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress',
-- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddressKHR',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getDeviceMicromapCompatibilityEXT',
-- 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr',
-- 'Vulkan.Core10.Queue.getDeviceQueue',
-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2',
-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',
-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR>,
-- 'Vulkan.Core10.Event.getEventStatus',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineNodeIndexAMDX',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineScratchSizeAMDX',
-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.getFenceFdKHR',
-- 'Vulkan.Core10.Fence.getFenceStatus',
-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.getFenceWin32HandleKHR',
-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV',
-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.getImageDrmFormatModifierPropertiesEXT',
-- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2',
-- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageOpaqueCaptureDescriptorDataEXT',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.getImageSparseMemoryRequirements',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2',
-- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR',
-- 'Vulkan.Core10.Image.getImageSubresourceLayout',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT',
-- 'Vulkan.Extensions.VK_KHR_maintenance5.getImageSubresourceLayout2KHR',
-- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewAddressNVX',
-- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewHandleNVX',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageViewOpaqueCaptureDescriptorDataEXT',
-- 'Vulkan.Extensions.VK_NV_low_latency2.getLatencyTimingsNV',
-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getMemoryAndroidHardwareBufferANDROID',
-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR',
-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR',
-- 'Vulkan.Extensions.VK_EXT_external_memory_host.getMemoryHostPointerPropertiesEXT',
-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.getMemoryRemoteAddressNV',
-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandleKHR',
-- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV',
-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandleFUCHSIA',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getMicromapBuildSizesEXT',
-- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.getPerformanceParameterINTEL',
-- 'Vulkan.Core10.PipelineCache.getPipelineCacheData',
-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR',
-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutablePropertiesKHR',
-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectDeviceAddressNV',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV',
-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData',
-- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT',
-- 'Vulkan.Core10.Query.getQueryPoolResults',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingCaptureReplayShaderGroupHandlesKHR',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupHandlesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.getRayTracingShaderGroupHandlesNV',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupStackSizeKHR',
-- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getRefreshCycleDurationGOOGLE',
-- 'Vulkan.Core10.Pass.getRenderAreaGranularity',
-- 'Vulkan.Extensions.VK_KHR_maintenance5.getRenderingAreaGranularityKHR',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getSamplerOpaqueCaptureDescriptorDataEXT',
-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.getSemaphoreCounterValue',
-- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.getSemaphoreFdKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.getSemaphoreWin32HandleKHR',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.getSemaphoreZirconHandleFUCHSIA',
-- 'Vulkan.Extensions.VK_EXT_shader_object.getShaderBinaryDataEXT',
-- 'Vulkan.Extensions.VK_AMD_shader_info.getShaderInfoAMD',
-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleCreateInfoIdentifierEXT',
-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleIdentifierEXT',
-- 'Vulkan.Extensions.VK_EXT_display_control.getSwapchainCounterEXT',
-- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR',
-- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR',
-- 'Vulkan.Extensions.VK_EXT_validation_cache.getValidationCacheDataEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR>,
-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.importFenceFdKHR',
-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.importFenceWin32HandleKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.importSemaphoreFdKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.importSemaphoreWin32HandleKHR',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.importSemaphoreZirconHandleFUCHSIA',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.initializePerformanceApiINTEL',
-- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges',
-- 'Vulkan.Extensions.VK_NV_low_latency2.latencySleepNV',
-- 'Vulkan.Core10.Memory.mapMemory',
-- 'Vulkan.Extensions.VK_KHR_map_memory2.mapMemory2KHR',
-- 'Vulkan.Core10.PipelineCache.mergePipelineCaches',
-- 'Vulkan.Extensions.VK_EXT_validation_cache.mergeValidationCachesEXT',
-- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT',
-- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT',
-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.releasePerformanceConfigurationINTEL',
-- 'Vulkan.Extensions.VK_KHR_performance_query.releaseProfilingLockKHR',
-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.releaseSwapchainImagesEXT',
-- 'Vulkan.Core10.CommandPool.resetCommandPool',
-- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool',
-- 'Vulkan.Core10.Event.resetEvent', 'Vulkan.Core10.Fence.resetFences',
-- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.resetQueryPool',
-- 'Vulkan.Extensions.VK_EXT_host_query_reset.resetQueryPoolEXT',
-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.setBufferCollectionBufferConstraintsFUCHSIA',
-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.setBufferCollectionImageConstraintsFUCHSIA',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.setDebugUtilsObjectNameEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.setDebugUtilsObjectTagEXT',
-- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.setDeviceMemoryPriorityEXT',
-- 'Vulkan.Core10.Event.setEvent',
-- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT',
-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencyMarkerNV',
-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencySleepModeNV',
-- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData',
-- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore',
-- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.signalSemaphoreKHR',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.transitionImageLayoutEXT',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance1.trimCommandPool',
-- 'Vulkan.Extensions.VK_KHR_maintenance1.trimCommandPoolKHR',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.uninitializePerformanceApiINTEL',
-- 'Vulkan.Core10.Memory.unmapMemory',
-- 'Vulkan.Extensions.VK_KHR_map_memory2.unmapMemory2KHR',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplate',
-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR',
-- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR>,
-- 'Vulkan.Core10.Fence.waitForFences',
-- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores',
-- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.waitSemaphoresKHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.writeMicromapsPropertiesEXT'
data Device = Device
  { Device -> Ptr Device_T
deviceHandle :: Ptr Device_T
  , Device -> DeviceCmds
deviceCmds :: DeviceCmds
  }
  deriving stock (Device -> Device -> Bool
(Device -> Device -> Bool)
-> (Device -> Device -> Bool) -> Eq Device
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Device -> Device -> Bool
== :: Device -> Device -> Bool
$c/= :: Device -> Device -> Bool
/= :: Device -> Device -> Bool
Eq, Int -> Device -> ShowS
[Device] -> ShowS
Device -> String
(Int -> Device -> ShowS)
-> (Device -> String) -> ([Device] -> ShowS) -> Show Device
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Device -> ShowS
showsPrec :: Int -> Device -> ShowS
$cshow :: Device -> String
show :: Device -> String
$cshowList :: [Device] -> ShowS
showList :: [Device] -> ShowS
Show)
  deriving anyclass (Eq Device
Zero Device
(Eq Device, Zero Device) => IsHandle Device
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance Zero Device where
  zero :: Device
zero = Ptr Device_T -> DeviceCmds -> Device
Device Ptr Device_T
forall a. Zero a => a
zero DeviceCmds
forall a. Zero a => a
zero
instance HasObjectType Device where
  objectTypeAndHandle :: Device -> (ObjectType, Word64)
objectTypeAndHandle (Device (Ptr Device_T -> WordPtr
forall a. Ptr a -> WordPtr
ptrToWordPtr -> WordPtr Word
h) DeviceCmds
_) = ( ObjectType
OBJECT_TYPE_DEVICE
                                                               , Word -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
h )


-- | An opaque type for representing pointers to VkQueue handles
data Queue_T
-- | VkQueue - Opaque handle to a queue object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT',
-- 'Vulkan.Core10.Queue.getDeviceQueue',
-- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.getQueueCheckpointData2NV',
-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.getQueueCheckpointDataNV',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.queueBeginDebugUtilsLabelEXT',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.queueEndDebugUtilsLabelEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.queueInsertDebugUtilsLabelEXT',
-- 'Vulkan.Extensions.VK_NV_low_latency2.queueNotifyOutOfBandNV',
-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.queueSetPerformanceConfigurationINTEL',
-- 'Vulkan.Core10.Queue.queueSubmit',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR',
-- 'Vulkan.Core10.Queue.queueWaitIdle'
data Queue = Queue
  { Queue -> Ptr Queue_T
queueHandle :: Ptr Queue_T
  , Queue -> DeviceCmds
deviceCmds :: DeviceCmds
  }
  deriving stock (Queue -> Queue -> Bool
(Queue -> Queue -> Bool) -> (Queue -> Queue -> Bool) -> Eq Queue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Queue -> Queue -> Bool
== :: Queue -> Queue -> Bool
$c/= :: Queue -> Queue -> Bool
/= :: Queue -> Queue -> Bool
Eq, Int -> Queue -> ShowS
[Queue] -> ShowS
Queue -> String
(Int -> Queue -> ShowS)
-> (Queue -> String) -> ([Queue] -> ShowS) -> Show Queue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Queue -> ShowS
showsPrec :: Int -> Queue -> ShowS
$cshow :: Queue -> String
show :: Queue -> String
$cshowList :: [Queue] -> ShowS
showList :: [Queue] -> ShowS
Show)
  deriving anyclass (Eq Queue
Zero Queue
(Eq Queue, Zero Queue) => IsHandle Queue
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance Zero Queue where
  zero :: Queue
zero = Ptr Queue_T -> DeviceCmds -> Queue
Queue Ptr Queue_T
forall a. Zero a => a
zero DeviceCmds
forall a. Zero a => a
zero
instance HasObjectType Queue where
  objectTypeAndHandle :: Queue -> (ObjectType, Word64)
objectTypeAndHandle (Queue (Ptr Queue_T -> WordPtr
forall a. Ptr a -> WordPtr
ptrToWordPtr -> WordPtr Word
h) DeviceCmds
_) = ( ObjectType
OBJECT_TYPE_QUEUE
                                                              , Word -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
h )


-- | An opaque type for representing pointers to VkCommandBuffer handles
data CommandBuffer_T
-- | VkCommandBuffer - Opaque handle to a command buffer object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo',
-- 'Vulkan.Core10.Queue.SubmitInfo',
-- 'Vulkan.Core10.CommandBuffer.allocateCommandBuffers',
-- 'Vulkan.Core10.CommandBuffer.beginCommandBuffer',
-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdBeginDebugUtilsLabelEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2',
-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdBeginRenderingKHR',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>,
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBuffersEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR',
-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',
-- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT',
-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2',
-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresKHR',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdBuildMicromapsEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR>,
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdCopyAccelerationStructureNV',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureToMemoryKHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBuffer2',
-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBuffer2KHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2',
-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImage2',
-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImage2KHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2',
-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR',
-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryIndirectNV',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyMemoryToAccelerationStructureKHR',
-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMemoryToMicromapEXT',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMicromapEXT',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMicromapToMemoryEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
-- 'Vulkan.Extensions.VK_NVX_binary_import.cmdCuLaunchKernelNVX',
-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.cmdCudaLaunchKernelNV',
-- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerBeginEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerEndEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerInsertEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR>,
-- 'Vulkan.Extensions.VK_NV_memory_decompression.cmdDecompressMemoryIndirectCountNV',
-- 'Vulkan.Extensions.VK_NV_memory_decompression.cmdDecompressMemoryNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatch',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase',
-- 'Vulkan.Extensions.VK_KHR_device_group.cmdDispatchBaseKHR',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDraw',
-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterHUAWEI',
-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount',
-- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndexedIndirectCountAMD',
-- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCountKHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdDrawIndirectByteCountEXT',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount',
-- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndirectCountAMD',
-- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndirectCountKHR',
-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksEXT',
-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT',
-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',
-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT',
-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksNV',
-- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiEXT',
-- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiIndexedEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR>,
-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdEndConditionalRenderingEXT',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdEndDebugUtilsLabelEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdEndRenderPass2',
-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdEndRenderPass2KHR',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdEndRendering',
-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.cmdEndRenderingKHR',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR>,
-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX',
-- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdInsertDebugUtilsLabelEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdNextSubpass2',
-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdNextSubpass2KHR',
-- 'Vulkan.Extensions.VK_NV_optical_flow.cmdOpticalFlowExecuteNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants',
-- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR',
-- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdResolveImage2',
-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants',
-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV',
-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT',
-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',
-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdSetDeviceMask',
-- 'Vulkan.Extensions.VK_KHR_device_group.cmdSetDeviceMaskKHR',
-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT',
-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR',
-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV',
-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT',
-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.cmdSetFragmentShadingRateEnumNV',
-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT',
-- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL',
-- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV',
-- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT',
-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport',
-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV',
-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT',
-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD',
-- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR',
-- 'Vulkan.Core10.CommandBuffer.endCommandBuffer',
-- 'Vulkan.Core10.CommandBuffer.freeCommandBuffers',
-- 'Vulkan.Core10.CommandBuffer.resetCommandBuffer'
data CommandBuffer = CommandBuffer
  { CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle :: Ptr CommandBuffer_T
  , CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
  }
  deriving stock (CommandBuffer -> CommandBuffer -> Bool
(CommandBuffer -> CommandBuffer -> Bool)
-> (CommandBuffer -> CommandBuffer -> Bool) -> Eq CommandBuffer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CommandBuffer -> CommandBuffer -> Bool
== :: CommandBuffer -> CommandBuffer -> Bool
$c/= :: CommandBuffer -> CommandBuffer -> Bool
/= :: CommandBuffer -> CommandBuffer -> Bool
Eq, Int -> CommandBuffer -> ShowS
[CommandBuffer] -> ShowS
CommandBuffer -> String
(Int -> CommandBuffer -> ShowS)
-> (CommandBuffer -> String)
-> ([CommandBuffer] -> ShowS)
-> Show CommandBuffer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CommandBuffer -> ShowS
showsPrec :: Int -> CommandBuffer -> ShowS
$cshow :: CommandBuffer -> String
show :: CommandBuffer -> String
$cshowList :: [CommandBuffer] -> ShowS
showList :: [CommandBuffer] -> ShowS
Show)
  deriving anyclass (Eq CommandBuffer
Zero CommandBuffer
(Eq CommandBuffer, Zero CommandBuffer) => IsHandle CommandBuffer
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance Zero CommandBuffer where
  zero :: CommandBuffer
zero = Ptr CommandBuffer_T -> DeviceCmds -> CommandBuffer
CommandBuffer Ptr CommandBuffer_T
forall a. Zero a => a
zero DeviceCmds
forall a. Zero a => a
zero
instance HasObjectType CommandBuffer where
  objectTypeAndHandle :: CommandBuffer -> (ObjectType, Word64)
objectTypeAndHandle (CommandBuffer (Ptr CommandBuffer_T -> WordPtr
forall a. Ptr a -> WordPtr
ptrToWordPtr -> WordPtr Word
h) DeviceCmds
_) = ( ObjectType
OBJECT_TYPE_COMMAND_BUFFER
                                                                      , Word -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
h )


-- | VkDeviceMemory - Opaque handle to a device memory object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>,
-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.DeviceMemoryOpaqueCaptureAddressInfo',
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT',
-- 'Vulkan.Core10.Memory.MappedMemoryRange',
-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID',
-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',
-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV',
-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA',
-- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryMapInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryUnmapInfoKHR',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',
-- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',
-- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',
-- 'Vulkan.Core10.Memory.allocateMemory',
-- 'Vulkan.Core10.MemoryManagement.bindBufferMemory',
-- 'Vulkan.Core10.MemoryManagement.bindImageMemory',
-- 'Vulkan.Core10.Memory.freeMemory',
-- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment',
-- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV',
-- 'Vulkan.Core10.Memory.mapMemory',
-- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.setDeviceMemoryPriorityEXT',
-- 'Vulkan.Core10.Memory.unmapMemory'
newtype DeviceMemory = DeviceMemory Word64
  deriving newtype (DeviceMemory -> DeviceMemory -> Bool
(DeviceMemory -> DeviceMemory -> Bool)
-> (DeviceMemory -> DeviceMemory -> Bool) -> Eq DeviceMemory
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DeviceMemory -> DeviceMemory -> Bool
== :: DeviceMemory -> DeviceMemory -> Bool
$c/= :: DeviceMemory -> DeviceMemory -> Bool
/= :: DeviceMemory -> DeviceMemory -> Bool
Eq, Eq DeviceMemory
Eq DeviceMemory =>
(DeviceMemory -> DeviceMemory -> Ordering)
-> (DeviceMemory -> DeviceMemory -> Bool)
-> (DeviceMemory -> DeviceMemory -> Bool)
-> (DeviceMemory -> DeviceMemory -> Bool)
-> (DeviceMemory -> DeviceMemory -> Bool)
-> (DeviceMemory -> DeviceMemory -> DeviceMemory)
-> (DeviceMemory -> DeviceMemory -> DeviceMemory)
-> Ord DeviceMemory
DeviceMemory -> DeviceMemory -> Bool
DeviceMemory -> DeviceMemory -> Ordering
DeviceMemory -> DeviceMemory -> DeviceMemory
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DeviceMemory -> DeviceMemory -> Ordering
compare :: DeviceMemory -> DeviceMemory -> Ordering
$c< :: DeviceMemory -> DeviceMemory -> Bool
< :: DeviceMemory -> DeviceMemory -> Bool
$c<= :: DeviceMemory -> DeviceMemory -> Bool
<= :: DeviceMemory -> DeviceMemory -> Bool
$c> :: DeviceMemory -> DeviceMemory -> Bool
> :: DeviceMemory -> DeviceMemory -> Bool
$c>= :: DeviceMemory -> DeviceMemory -> Bool
>= :: DeviceMemory -> DeviceMemory -> Bool
$cmax :: DeviceMemory -> DeviceMemory -> DeviceMemory
max :: DeviceMemory -> DeviceMemory -> DeviceMemory
$cmin :: DeviceMemory -> DeviceMemory -> DeviceMemory
min :: DeviceMemory -> DeviceMemory -> DeviceMemory
Ord, Ptr DeviceMemory -> IO DeviceMemory
Ptr DeviceMemory -> Int -> IO DeviceMemory
Ptr DeviceMemory -> Int -> DeviceMemory -> IO ()
Ptr DeviceMemory -> DeviceMemory -> IO ()
DeviceMemory -> Int
(DeviceMemory -> Int)
-> (DeviceMemory -> Int)
-> (Ptr DeviceMemory -> Int -> IO DeviceMemory)
-> (Ptr DeviceMemory -> Int -> DeviceMemory -> IO ())
-> (forall b. Ptr b -> Int -> IO DeviceMemory)
-> (forall b. Ptr b -> Int -> DeviceMemory -> IO ())
-> (Ptr DeviceMemory -> IO DeviceMemory)
-> (Ptr DeviceMemory -> DeviceMemory -> IO ())
-> Storable DeviceMemory
forall b. Ptr b -> Int -> IO DeviceMemory
forall b. Ptr b -> Int -> DeviceMemory -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: DeviceMemory -> Int
sizeOf :: DeviceMemory -> Int
$calignment :: DeviceMemory -> Int
alignment :: DeviceMemory -> Int
$cpeekElemOff :: Ptr DeviceMemory -> Int -> IO DeviceMemory
peekElemOff :: Ptr DeviceMemory -> Int -> IO DeviceMemory
$cpokeElemOff :: Ptr DeviceMemory -> Int -> DeviceMemory -> IO ()
pokeElemOff :: Ptr DeviceMemory -> Int -> DeviceMemory -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO DeviceMemory
peekByteOff :: forall b. Ptr b -> Int -> IO DeviceMemory
$cpokeByteOff :: forall b. Ptr b -> Int -> DeviceMemory -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> DeviceMemory -> IO ()
$cpeek :: Ptr DeviceMemory -> IO DeviceMemory
peek :: Ptr DeviceMemory -> IO DeviceMemory
$cpoke :: Ptr DeviceMemory -> DeviceMemory -> IO ()
poke :: Ptr DeviceMemory -> DeviceMemory -> IO ()
Storable, DeviceMemory
DeviceMemory -> Zero DeviceMemory
forall a. a -> Zero a
$czero :: DeviceMemory
zero :: DeviceMemory
Zero)
  deriving anyclass (Eq DeviceMemory
Zero DeviceMemory
(Eq DeviceMemory, Zero DeviceMemory) => IsHandle DeviceMemory
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType DeviceMemory where
  objectTypeAndHandle :: DeviceMemory -> (ObjectType, Word64)
objectTypeAndHandle (DeviceMemory Word64
h) = (ObjectType
OBJECT_TYPE_DEVICE_MEMORY, Word64
h)
instance Show DeviceMemory where
  showsPrec :: Int -> DeviceMemory -> ShowS
showsPrec Int
p (DeviceMemory Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"DeviceMemory 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkCommandPool - Opaque handle to a command pool object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',
-- 'Vulkan.Core10.CommandPool.createCommandPool',
-- 'Vulkan.Core10.CommandPool.destroyCommandPool',
-- 'Vulkan.Core10.CommandBuffer.freeCommandBuffers',
-- 'Vulkan.Core10.CommandPool.resetCommandPool',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance1.trimCommandPool',
-- 'Vulkan.Extensions.VK_KHR_maintenance1.trimCommandPoolKHR'
newtype CommandPool = CommandPool Word64
  deriving newtype (CommandPool -> CommandPool -> Bool
(CommandPool -> CommandPool -> Bool)
-> (CommandPool -> CommandPool -> Bool) -> Eq CommandPool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CommandPool -> CommandPool -> Bool
== :: CommandPool -> CommandPool -> Bool
$c/= :: CommandPool -> CommandPool -> Bool
/= :: CommandPool -> CommandPool -> Bool
Eq, Eq CommandPool
Eq CommandPool =>
(CommandPool -> CommandPool -> Ordering)
-> (CommandPool -> CommandPool -> Bool)
-> (CommandPool -> CommandPool -> Bool)
-> (CommandPool -> CommandPool -> Bool)
-> (CommandPool -> CommandPool -> Bool)
-> (CommandPool -> CommandPool -> CommandPool)
-> (CommandPool -> CommandPool -> CommandPool)
-> Ord CommandPool
CommandPool -> CommandPool -> Bool
CommandPool -> CommandPool -> Ordering
CommandPool -> CommandPool -> CommandPool
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: CommandPool -> CommandPool -> Ordering
compare :: CommandPool -> CommandPool -> Ordering
$c< :: CommandPool -> CommandPool -> Bool
< :: CommandPool -> CommandPool -> Bool
$c<= :: CommandPool -> CommandPool -> Bool
<= :: CommandPool -> CommandPool -> Bool
$c> :: CommandPool -> CommandPool -> Bool
> :: CommandPool -> CommandPool -> Bool
$c>= :: CommandPool -> CommandPool -> Bool
>= :: CommandPool -> CommandPool -> Bool
$cmax :: CommandPool -> CommandPool -> CommandPool
max :: CommandPool -> CommandPool -> CommandPool
$cmin :: CommandPool -> CommandPool -> CommandPool
min :: CommandPool -> CommandPool -> CommandPool
Ord, Ptr CommandPool -> IO CommandPool
Ptr CommandPool -> Int -> IO CommandPool
Ptr CommandPool -> Int -> CommandPool -> IO ()
Ptr CommandPool -> CommandPool -> IO ()
CommandPool -> Int
(CommandPool -> Int)
-> (CommandPool -> Int)
-> (Ptr CommandPool -> Int -> IO CommandPool)
-> (Ptr CommandPool -> Int -> CommandPool -> IO ())
-> (forall b. Ptr b -> Int -> IO CommandPool)
-> (forall b. Ptr b -> Int -> CommandPool -> IO ())
-> (Ptr CommandPool -> IO CommandPool)
-> (Ptr CommandPool -> CommandPool -> IO ())
-> Storable CommandPool
forall b. Ptr b -> Int -> IO CommandPool
forall b. Ptr b -> Int -> CommandPool -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: CommandPool -> Int
sizeOf :: CommandPool -> Int
$calignment :: CommandPool -> Int
alignment :: CommandPool -> Int
$cpeekElemOff :: Ptr CommandPool -> Int -> IO CommandPool
peekElemOff :: Ptr CommandPool -> Int -> IO CommandPool
$cpokeElemOff :: Ptr CommandPool -> Int -> CommandPool -> IO ()
pokeElemOff :: Ptr CommandPool -> Int -> CommandPool -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CommandPool
peekByteOff :: forall b. Ptr b -> Int -> IO CommandPool
$cpokeByteOff :: forall b. Ptr b -> Int -> CommandPool -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> CommandPool -> IO ()
$cpeek :: Ptr CommandPool -> IO CommandPool
peek :: Ptr CommandPool -> IO CommandPool
$cpoke :: Ptr CommandPool -> CommandPool -> IO ()
poke :: Ptr CommandPool -> CommandPool -> IO ()
Storable, CommandPool
CommandPool -> Zero CommandPool
forall a. a -> Zero a
$czero :: CommandPool
zero :: CommandPool
Zero)
  deriving anyclass (Eq CommandPool
Zero CommandPool
(Eq CommandPool, Zero CommandPool) => IsHandle CommandPool
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType CommandPool where
  objectTypeAndHandle :: CommandPool -> (ObjectType, Word64)
objectTypeAndHandle (CommandPool Word64
h) = (ObjectType
OBJECT_TYPE_COMMAND_POOL, Word64
h)
instance Show CommandPool where
  showsPrec :: Int -> CommandPool -> ShowS
showsPrec Int
p (CommandPool Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"CommandPool 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkBuffer - Opaque handle to a buffer object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.BufferCaptureDescriptorDataInfoEXT',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo',
-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2',
-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferInfo2',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2',
-- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT',
-- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',
-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseBufferMemoryBindInfo',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,
-- 'Vulkan.Core10.MemoryManagement.bindBufferMemory',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',
-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers',
-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2',
-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect',
-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount',
-- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndexedIndirectCountAMD',
-- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCountKHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdDrawIndirectByteCountEXT',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndirectCount',
-- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndirectCountAMD',
-- 'Vulkan.Extensions.VK_KHR_draw_indirect_count.cmdDrawIndirectCountKHR',
-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT',
-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',
-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT',
-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD',
-- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',
-- 'Vulkan.Core10.Buffer.createBuffer',
-- 'Vulkan.Core10.Buffer.destroyBuffer',
-- 'Vulkan.Core10.MemoryManagement.getBufferMemoryRequirements'
newtype Buffer = Buffer Word64
  deriving newtype (Buffer -> Buffer -> Bool
(Buffer -> Buffer -> Bool)
-> (Buffer -> Buffer -> Bool) -> Eq Buffer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Buffer -> Buffer -> Bool
== :: Buffer -> Buffer -> Bool
$c/= :: Buffer -> Buffer -> Bool
/= :: Buffer -> Buffer -> Bool
Eq, Eq Buffer
Eq Buffer =>
(Buffer -> Buffer -> Ordering)
-> (Buffer -> Buffer -> Bool)
-> (Buffer -> Buffer -> Bool)
-> (Buffer -> Buffer -> Bool)
-> (Buffer -> Buffer -> Bool)
-> (Buffer -> Buffer -> Buffer)
-> (Buffer -> Buffer -> Buffer)
-> Ord Buffer
Buffer -> Buffer -> Bool
Buffer -> Buffer -> Ordering
Buffer -> Buffer -> Buffer
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Buffer -> Buffer -> Ordering
compare :: Buffer -> Buffer -> Ordering
$c< :: Buffer -> Buffer -> Bool
< :: Buffer -> Buffer -> Bool
$c<= :: Buffer -> Buffer -> Bool
<= :: Buffer -> Buffer -> Bool
$c> :: Buffer -> Buffer -> Bool
> :: Buffer -> Buffer -> Bool
$c>= :: Buffer -> Buffer -> Bool
>= :: Buffer -> Buffer -> Bool
$cmax :: Buffer -> Buffer -> Buffer
max :: Buffer -> Buffer -> Buffer
$cmin :: Buffer -> Buffer -> Buffer
min :: Buffer -> Buffer -> Buffer
Ord, Ptr Buffer -> IO Buffer
Ptr Buffer -> Int -> IO Buffer
Ptr Buffer -> Int -> Buffer -> IO ()
Ptr Buffer -> Buffer -> IO ()
Buffer -> Int
(Buffer -> Int)
-> (Buffer -> Int)
-> (Ptr Buffer -> Int -> IO Buffer)
-> (Ptr Buffer -> Int -> Buffer -> IO ())
-> (forall b. Ptr b -> Int -> IO Buffer)
-> (forall b. Ptr b -> Int -> Buffer -> IO ())
-> (Ptr Buffer -> IO Buffer)
-> (Ptr Buffer -> Buffer -> IO ())
-> Storable Buffer
forall b. Ptr b -> Int -> IO Buffer
forall b. Ptr b -> Int -> Buffer -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Buffer -> Int
sizeOf :: Buffer -> Int
$calignment :: Buffer -> Int
alignment :: Buffer -> Int
$cpeekElemOff :: Ptr Buffer -> Int -> IO Buffer
peekElemOff :: Ptr Buffer -> Int -> IO Buffer
$cpokeElemOff :: Ptr Buffer -> Int -> Buffer -> IO ()
pokeElemOff :: Ptr Buffer -> Int -> Buffer -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Buffer
peekByteOff :: forall b. Ptr b -> Int -> IO Buffer
$cpokeByteOff :: forall b. Ptr b -> Int -> Buffer -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Buffer -> IO ()
$cpeek :: Ptr Buffer -> IO Buffer
peek :: Ptr Buffer -> IO Buffer
$cpoke :: Ptr Buffer -> Buffer -> IO ()
poke :: Ptr Buffer -> Buffer -> IO ()
Storable, Buffer
Buffer -> Zero Buffer
forall a. a -> Zero a
$czero :: Buffer
zero :: Buffer
Zero)
  deriving anyclass (Eq Buffer
Zero Buffer
(Eq Buffer, Zero Buffer) => IsHandle Buffer
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Buffer where
  objectTypeAndHandle :: Buffer -> (ObjectType, Word64)
objectTypeAndHandle (Buffer Word64
h) = (ObjectType
OBJECT_TYPE_BUFFER, Word64
h)
instance Show Buffer where
  showsPrec :: Int -> Buffer -> ShowS
showsPrec Int
p (Buffer Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Buffer 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkBufferView - Opaque handle to a buffer view object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
-- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',
-- 'Vulkan.Core10.BufferView.createBufferView',
-- 'Vulkan.Core10.BufferView.destroyBufferView'
newtype BufferView = BufferView Word64
  deriving newtype (BufferView -> BufferView -> Bool
(BufferView -> BufferView -> Bool)
-> (BufferView -> BufferView -> Bool) -> Eq BufferView
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BufferView -> BufferView -> Bool
== :: BufferView -> BufferView -> Bool
$c/= :: BufferView -> BufferView -> Bool
/= :: BufferView -> BufferView -> Bool
Eq, Eq BufferView
Eq BufferView =>
(BufferView -> BufferView -> Ordering)
-> (BufferView -> BufferView -> Bool)
-> (BufferView -> BufferView -> Bool)
-> (BufferView -> BufferView -> Bool)
-> (BufferView -> BufferView -> Bool)
-> (BufferView -> BufferView -> BufferView)
-> (BufferView -> BufferView -> BufferView)
-> Ord BufferView
BufferView -> BufferView -> Bool
BufferView -> BufferView -> Ordering
BufferView -> BufferView -> BufferView
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: BufferView -> BufferView -> Ordering
compare :: BufferView -> BufferView -> Ordering
$c< :: BufferView -> BufferView -> Bool
< :: BufferView -> BufferView -> Bool
$c<= :: BufferView -> BufferView -> Bool
<= :: BufferView -> BufferView -> Bool
$c> :: BufferView -> BufferView -> Bool
> :: BufferView -> BufferView -> Bool
$c>= :: BufferView -> BufferView -> Bool
>= :: BufferView -> BufferView -> Bool
$cmax :: BufferView -> BufferView -> BufferView
max :: BufferView -> BufferView -> BufferView
$cmin :: BufferView -> BufferView -> BufferView
min :: BufferView -> BufferView -> BufferView
Ord, Ptr BufferView -> IO BufferView
Ptr BufferView -> Int -> IO BufferView
Ptr BufferView -> Int -> BufferView -> IO ()
Ptr BufferView -> BufferView -> IO ()
BufferView -> Int
(BufferView -> Int)
-> (BufferView -> Int)
-> (Ptr BufferView -> Int -> IO BufferView)
-> (Ptr BufferView -> Int -> BufferView -> IO ())
-> (forall b. Ptr b -> Int -> IO BufferView)
-> (forall b. Ptr b -> Int -> BufferView -> IO ())
-> (Ptr BufferView -> IO BufferView)
-> (Ptr BufferView -> BufferView -> IO ())
-> Storable BufferView
forall b. Ptr b -> Int -> IO BufferView
forall b. Ptr b -> Int -> BufferView -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: BufferView -> Int
sizeOf :: BufferView -> Int
$calignment :: BufferView -> Int
alignment :: BufferView -> Int
$cpeekElemOff :: Ptr BufferView -> Int -> IO BufferView
peekElemOff :: Ptr BufferView -> Int -> IO BufferView
$cpokeElemOff :: Ptr BufferView -> Int -> BufferView -> IO ()
pokeElemOff :: Ptr BufferView -> Int -> BufferView -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BufferView
peekByteOff :: forall b. Ptr b -> Int -> IO BufferView
$cpokeByteOff :: forall b. Ptr b -> Int -> BufferView -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BufferView -> IO ()
$cpeek :: Ptr BufferView -> IO BufferView
peek :: Ptr BufferView -> IO BufferView
$cpoke :: Ptr BufferView -> BufferView -> IO ()
poke :: Ptr BufferView -> BufferView -> IO ()
Storable, BufferView
BufferView -> Zero BufferView
forall a. a -> Zero a
$czero :: BufferView
zero :: BufferView
Zero)
  deriving anyclass (Eq BufferView
Zero BufferView
(Eq BufferView, Zero BufferView) => IsHandle BufferView
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType BufferView where
  objectTypeAndHandle :: BufferView -> (ObjectType, Word64)
objectTypeAndHandle (BufferView Word64
h) = (ObjectType
OBJECT_TYPE_BUFFER_VIEW, Word64
h)
instance Show BufferView where
  showsPrec :: Int -> BufferView -> ShowS
showsPrec Int
p (BufferView Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"BufferView 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkImage - Opaque handle to an image object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT',
-- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT',
-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2',
-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBindInfo',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageOpaqueMemoryBindInfo',
-- 'Vulkan.Core10.MemoryManagement.bindImageMemory',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer',
-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage',
-- 'Vulkan.Core10.Image.createImage', 'Vulkan.Core10.Image.destroyImage',
-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.getImageDrmFormatModifierPropertiesEXT',
-- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.getImageSparseMemoryRequirements',
-- 'Vulkan.Core10.Image.getImageSubresourceLayout',
-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT',
-- 'Vulkan.Extensions.VK_KHR_maintenance5.getImageSubresourceLayout2KHR',
-- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR'
newtype Image = Image Word64
  deriving newtype (Image -> Image -> Bool
(Image -> Image -> Bool) -> (Image -> Image -> Bool) -> Eq Image
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Image -> Image -> Bool
== :: Image -> Image -> Bool
$c/= :: Image -> Image -> Bool
/= :: Image -> Image -> Bool
Eq, Eq Image
Eq Image =>
(Image -> Image -> Ordering)
-> (Image -> Image -> Bool)
-> (Image -> Image -> Bool)
-> (Image -> Image -> Bool)
-> (Image -> Image -> Bool)
-> (Image -> Image -> Image)
-> (Image -> Image -> Image)
-> Ord Image
Image -> Image -> Bool
Image -> Image -> Ordering
Image -> Image -> Image
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Image -> Image -> Ordering
compare :: Image -> Image -> Ordering
$c< :: Image -> Image -> Bool
< :: Image -> Image -> Bool
$c<= :: Image -> Image -> Bool
<= :: Image -> Image -> Bool
$c> :: Image -> Image -> Bool
> :: Image -> Image -> Bool
$c>= :: Image -> Image -> Bool
>= :: Image -> Image -> Bool
$cmax :: Image -> Image -> Image
max :: Image -> Image -> Image
$cmin :: Image -> Image -> Image
min :: Image -> Image -> Image
Ord, Ptr Image -> IO Image
Ptr Image -> Int -> IO Image
Ptr Image -> Int -> Image -> IO ()
Ptr Image -> Image -> IO ()
Image -> Int
(Image -> Int)
-> (Image -> Int)
-> (Ptr Image -> Int -> IO Image)
-> (Ptr Image -> Int -> Image -> IO ())
-> (forall b. Ptr b -> Int -> IO Image)
-> (forall b. Ptr b -> Int -> Image -> IO ())
-> (Ptr Image -> IO Image)
-> (Ptr Image -> Image -> IO ())
-> Storable Image
forall b. Ptr b -> Int -> IO Image
forall b. Ptr b -> Int -> Image -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Image -> Int
sizeOf :: Image -> Int
$calignment :: Image -> Int
alignment :: Image -> Int
$cpeekElemOff :: Ptr Image -> Int -> IO Image
peekElemOff :: Ptr Image -> Int -> IO Image
$cpokeElemOff :: Ptr Image -> Int -> Image -> IO ()
pokeElemOff :: Ptr Image -> Int -> Image -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Image
peekByteOff :: forall b. Ptr b -> Int -> IO Image
$cpokeByteOff :: forall b. Ptr b -> Int -> Image -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Image -> IO ()
$cpeek :: Ptr Image -> IO Image
peek :: Ptr Image -> IO Image
$cpoke :: Ptr Image -> Image -> IO ()
poke :: Ptr Image -> Image -> IO ()
Storable, Image
Image -> Zero Image
forall a. a -> Zero a
$czero :: Image
zero :: Image
Zero)
  deriving anyclass (Eq Image
Zero Image
(Eq Image, Zero Image) => IsHandle Image
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Image where
  objectTypeAndHandle :: Image -> (ObjectType, Word64)
objectTypeAndHandle (Image Word64
h) = (ObjectType
OBJECT_TYPE_IMAGE, Word64
h)
instance Show Image where
  showsPrec :: Int -> Image -> ShowS
showsPrec Int
p (Image Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Image 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkImageView - Opaque handle to an image view object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',
-- 'Vulkan.Core10.Pass.FramebufferCreateInfo',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageViewCaptureDescriptorDataInfoEXT',
-- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',
-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,
-- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV',
-- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI',
-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV',
-- 'Vulkan.Core10.ImageView.createImageView',
-- 'Vulkan.Core10.ImageView.destroyImageView',
-- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewAddressNVX'
newtype ImageView = ImageView Word64
  deriving newtype (ImageView -> ImageView -> Bool
(ImageView -> ImageView -> Bool)
-> (ImageView -> ImageView -> Bool) -> Eq ImageView
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ImageView -> ImageView -> Bool
== :: ImageView -> ImageView -> Bool
$c/= :: ImageView -> ImageView -> Bool
/= :: ImageView -> ImageView -> Bool
Eq, Eq ImageView
Eq ImageView =>
(ImageView -> ImageView -> Ordering)
-> (ImageView -> ImageView -> Bool)
-> (ImageView -> ImageView -> Bool)
-> (ImageView -> ImageView -> Bool)
-> (ImageView -> ImageView -> Bool)
-> (ImageView -> ImageView -> ImageView)
-> (ImageView -> ImageView -> ImageView)
-> Ord ImageView
ImageView -> ImageView -> Bool
ImageView -> ImageView -> Ordering
ImageView -> ImageView -> ImageView
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ImageView -> ImageView -> Ordering
compare :: ImageView -> ImageView -> Ordering
$c< :: ImageView -> ImageView -> Bool
< :: ImageView -> ImageView -> Bool
$c<= :: ImageView -> ImageView -> Bool
<= :: ImageView -> ImageView -> Bool
$c> :: ImageView -> ImageView -> Bool
> :: ImageView -> ImageView -> Bool
$c>= :: ImageView -> ImageView -> Bool
>= :: ImageView -> ImageView -> Bool
$cmax :: ImageView -> ImageView -> ImageView
max :: ImageView -> ImageView -> ImageView
$cmin :: ImageView -> ImageView -> ImageView
min :: ImageView -> ImageView -> ImageView
Ord, Ptr ImageView -> IO ImageView
Ptr ImageView -> Int -> IO ImageView
Ptr ImageView -> Int -> ImageView -> IO ()
Ptr ImageView -> ImageView -> IO ()
ImageView -> Int
(ImageView -> Int)
-> (ImageView -> Int)
-> (Ptr ImageView -> Int -> IO ImageView)
-> (Ptr ImageView -> Int -> ImageView -> IO ())
-> (forall b. Ptr b -> Int -> IO ImageView)
-> (forall b. Ptr b -> Int -> ImageView -> IO ())
-> (Ptr ImageView -> IO ImageView)
-> (Ptr ImageView -> ImageView -> IO ())
-> Storable ImageView
forall b. Ptr b -> Int -> IO ImageView
forall b. Ptr b -> Int -> ImageView -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: ImageView -> Int
sizeOf :: ImageView -> Int
$calignment :: ImageView -> Int
alignment :: ImageView -> Int
$cpeekElemOff :: Ptr ImageView -> Int -> IO ImageView
peekElemOff :: Ptr ImageView -> Int -> IO ImageView
$cpokeElemOff :: Ptr ImageView -> Int -> ImageView -> IO ()
pokeElemOff :: Ptr ImageView -> Int -> ImageView -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ImageView
peekByteOff :: forall b. Ptr b -> Int -> IO ImageView
$cpokeByteOff :: forall b. Ptr b -> Int -> ImageView -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> ImageView -> IO ()
$cpeek :: Ptr ImageView -> IO ImageView
peek :: Ptr ImageView -> IO ImageView
$cpoke :: Ptr ImageView -> ImageView -> IO ()
poke :: Ptr ImageView -> ImageView -> IO ()
Storable, ImageView
ImageView -> Zero ImageView
forall a. a -> Zero a
$czero :: ImageView
zero :: ImageView
Zero)
  deriving anyclass (Eq ImageView
Zero ImageView
(Eq ImageView, Zero ImageView) => IsHandle ImageView
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType ImageView where
  objectTypeAndHandle :: ImageView -> (ObjectType, Word64)
objectTypeAndHandle (ImageView Word64
h) = (ObjectType
OBJECT_TYPE_IMAGE_VIEW, Word64
h)
instance Show ImageView where
  showsPrec :: Int -> ImageView -> ShowS
showsPrec Int
p (ImageView Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"ImageView 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkShaderModule - Opaque handle to a shader module object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',
-- 'Vulkan.Core10.Shader.createShaderModule',
-- 'Vulkan.Core10.Shader.destroyShaderModule',
-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.getShaderModuleIdentifierEXT'
newtype ShaderModule = ShaderModule Word64
  deriving newtype (ShaderModule -> ShaderModule -> Bool
(ShaderModule -> ShaderModule -> Bool)
-> (ShaderModule -> ShaderModule -> Bool) -> Eq ShaderModule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ShaderModule -> ShaderModule -> Bool
== :: ShaderModule -> ShaderModule -> Bool
$c/= :: ShaderModule -> ShaderModule -> Bool
/= :: ShaderModule -> ShaderModule -> Bool
Eq, Eq ShaderModule
Eq ShaderModule =>
(ShaderModule -> ShaderModule -> Ordering)
-> (ShaderModule -> ShaderModule -> Bool)
-> (ShaderModule -> ShaderModule -> Bool)
-> (ShaderModule -> ShaderModule -> Bool)
-> (ShaderModule -> ShaderModule -> Bool)
-> (ShaderModule -> ShaderModule -> ShaderModule)
-> (ShaderModule -> ShaderModule -> ShaderModule)
-> Ord ShaderModule
ShaderModule -> ShaderModule -> Bool
ShaderModule -> ShaderModule -> Ordering
ShaderModule -> ShaderModule -> ShaderModule
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ShaderModule -> ShaderModule -> Ordering
compare :: ShaderModule -> ShaderModule -> Ordering
$c< :: ShaderModule -> ShaderModule -> Bool
< :: ShaderModule -> ShaderModule -> Bool
$c<= :: ShaderModule -> ShaderModule -> Bool
<= :: ShaderModule -> ShaderModule -> Bool
$c> :: ShaderModule -> ShaderModule -> Bool
> :: ShaderModule -> ShaderModule -> Bool
$c>= :: ShaderModule -> ShaderModule -> Bool
>= :: ShaderModule -> ShaderModule -> Bool
$cmax :: ShaderModule -> ShaderModule -> ShaderModule
max :: ShaderModule -> ShaderModule -> ShaderModule
$cmin :: ShaderModule -> ShaderModule -> ShaderModule
min :: ShaderModule -> ShaderModule -> ShaderModule
Ord, Ptr ShaderModule -> IO ShaderModule
Ptr ShaderModule -> Int -> IO ShaderModule
Ptr ShaderModule -> Int -> ShaderModule -> IO ()
Ptr ShaderModule -> ShaderModule -> IO ()
ShaderModule -> Int
(ShaderModule -> Int)
-> (ShaderModule -> Int)
-> (Ptr ShaderModule -> Int -> IO ShaderModule)
-> (Ptr ShaderModule -> Int -> ShaderModule -> IO ())
-> (forall b. Ptr b -> Int -> IO ShaderModule)
-> (forall b. Ptr b -> Int -> ShaderModule -> IO ())
-> (Ptr ShaderModule -> IO ShaderModule)
-> (Ptr ShaderModule -> ShaderModule -> IO ())
-> Storable ShaderModule
forall b. Ptr b -> Int -> IO ShaderModule
forall b. Ptr b -> Int -> ShaderModule -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: ShaderModule -> Int
sizeOf :: ShaderModule -> Int
$calignment :: ShaderModule -> Int
alignment :: ShaderModule -> Int
$cpeekElemOff :: Ptr ShaderModule -> Int -> IO ShaderModule
peekElemOff :: Ptr ShaderModule -> Int -> IO ShaderModule
$cpokeElemOff :: Ptr ShaderModule -> Int -> ShaderModule -> IO ()
pokeElemOff :: Ptr ShaderModule -> Int -> ShaderModule -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ShaderModule
peekByteOff :: forall b. Ptr b -> Int -> IO ShaderModule
$cpokeByteOff :: forall b. Ptr b -> Int -> ShaderModule -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> ShaderModule -> IO ()
$cpeek :: Ptr ShaderModule -> IO ShaderModule
peek :: Ptr ShaderModule -> IO ShaderModule
$cpoke :: Ptr ShaderModule -> ShaderModule -> IO ()
poke :: Ptr ShaderModule -> ShaderModule -> IO ()
Storable, ShaderModule
ShaderModule -> Zero ShaderModule
forall a. a -> Zero a
$czero :: ShaderModule
zero :: ShaderModule
Zero)
  deriving anyclass (Eq ShaderModule
Zero ShaderModule
(Eq ShaderModule, Zero ShaderModule) => IsHandle ShaderModule
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType ShaderModule where
  objectTypeAndHandle :: ShaderModule -> (ObjectType, Word64)
objectTypeAndHandle (ShaderModule Word64
h) = (ObjectType
OBJECT_TYPE_SHADER_MODULE, Word64
h)
instance Show ShaderModule where
  showsPrec :: Int -> ShaderModule -> ShowS
showsPrec Int
p (ShaderModule Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"ShaderModule 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkPipeline - Opaque handle to a pipeline object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',
-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',
-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV',
-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV',
-- 'Vulkan.Core10.Pipeline.createComputePipelines',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
-- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV',
-- 'Vulkan.Core10.Pipeline.destroyPipeline',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineNodeIndexAMDX',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineScratchSizeAMDX',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingCaptureReplayShaderGroupHandlesKHR',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupHandlesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.getRayTracingShaderGroupHandlesNV',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupStackSizeKHR',
-- 'Vulkan.Extensions.VK_AMD_shader_info.getShaderInfoAMD'
newtype Pipeline = Pipeline Word64
  deriving newtype (Pipeline -> Pipeline -> Bool
(Pipeline -> Pipeline -> Bool)
-> (Pipeline -> Pipeline -> Bool) -> Eq Pipeline
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Pipeline -> Pipeline -> Bool
== :: Pipeline -> Pipeline -> Bool
$c/= :: Pipeline -> Pipeline -> Bool
/= :: Pipeline -> Pipeline -> Bool
Eq, Eq Pipeline
Eq Pipeline =>
(Pipeline -> Pipeline -> Ordering)
-> (Pipeline -> Pipeline -> Bool)
-> (Pipeline -> Pipeline -> Bool)
-> (Pipeline -> Pipeline -> Bool)
-> (Pipeline -> Pipeline -> Bool)
-> (Pipeline -> Pipeline -> Pipeline)
-> (Pipeline -> Pipeline -> Pipeline)
-> Ord Pipeline
Pipeline -> Pipeline -> Bool
Pipeline -> Pipeline -> Ordering
Pipeline -> Pipeline -> Pipeline
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Pipeline -> Pipeline -> Ordering
compare :: Pipeline -> Pipeline -> Ordering
$c< :: Pipeline -> Pipeline -> Bool
< :: Pipeline -> Pipeline -> Bool
$c<= :: Pipeline -> Pipeline -> Bool
<= :: Pipeline -> Pipeline -> Bool
$c> :: Pipeline -> Pipeline -> Bool
> :: Pipeline -> Pipeline -> Bool
$c>= :: Pipeline -> Pipeline -> Bool
>= :: Pipeline -> Pipeline -> Bool
$cmax :: Pipeline -> Pipeline -> Pipeline
max :: Pipeline -> Pipeline -> Pipeline
$cmin :: Pipeline -> Pipeline -> Pipeline
min :: Pipeline -> Pipeline -> Pipeline
Ord, Ptr Pipeline -> IO Pipeline
Ptr Pipeline -> Int -> IO Pipeline
Ptr Pipeline -> Int -> Pipeline -> IO ()
Ptr Pipeline -> Pipeline -> IO ()
Pipeline -> Int
(Pipeline -> Int)
-> (Pipeline -> Int)
-> (Ptr Pipeline -> Int -> IO Pipeline)
-> (Ptr Pipeline -> Int -> Pipeline -> IO ())
-> (forall b. Ptr b -> Int -> IO Pipeline)
-> (forall b. Ptr b -> Int -> Pipeline -> IO ())
-> (Ptr Pipeline -> IO Pipeline)
-> (Ptr Pipeline -> Pipeline -> IO ())
-> Storable Pipeline
forall b. Ptr b -> Int -> IO Pipeline
forall b. Ptr b -> Int -> Pipeline -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Pipeline -> Int
sizeOf :: Pipeline -> Int
$calignment :: Pipeline -> Int
alignment :: Pipeline -> Int
$cpeekElemOff :: Ptr Pipeline -> Int -> IO Pipeline
peekElemOff :: Ptr Pipeline -> Int -> IO Pipeline
$cpokeElemOff :: Ptr Pipeline -> Int -> Pipeline -> IO ()
pokeElemOff :: Ptr Pipeline -> Int -> Pipeline -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Pipeline
peekByteOff :: forall b. Ptr b -> Int -> IO Pipeline
$cpokeByteOff :: forall b. Ptr b -> Int -> Pipeline -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Pipeline -> IO ()
$cpeek :: Ptr Pipeline -> IO Pipeline
peek :: Ptr Pipeline -> IO Pipeline
$cpoke :: Ptr Pipeline -> Pipeline -> IO ()
poke :: Ptr Pipeline -> Pipeline -> IO ()
Storable, Pipeline
Pipeline -> Zero Pipeline
forall a. a -> Zero a
$czero :: Pipeline
zero :: Pipeline
Zero)
  deriving anyclass (Eq Pipeline
Zero Pipeline
(Eq Pipeline, Zero Pipeline) => IsHandle Pipeline
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Pipeline where
  objectTypeAndHandle :: Pipeline -> (ObjectType, Word64)
objectTypeAndHandle (Pipeline Word64
h) = (ObjectType
OBJECT_TYPE_PIPELINE, Word64
h)
instance Show Pipeline where
  showsPrec :: Int -> Pipeline -> ShowS
showsPrec Int
p (Pipeline Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Pipeline 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkPipelineLayout - Opaque handle to a pipeline layout object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX',
-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdPushConstants',
-- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR',
-- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetWithTemplateKHR',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',
-- 'Vulkan.Core10.PipelineLayout.createPipelineLayout',
-- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout'
newtype PipelineLayout = PipelineLayout Word64
  deriving newtype (PipelineLayout -> PipelineLayout -> Bool
(PipelineLayout -> PipelineLayout -> Bool)
-> (PipelineLayout -> PipelineLayout -> Bool) -> Eq PipelineLayout
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PipelineLayout -> PipelineLayout -> Bool
== :: PipelineLayout -> PipelineLayout -> Bool
$c/= :: PipelineLayout -> PipelineLayout -> Bool
/= :: PipelineLayout -> PipelineLayout -> Bool
Eq, Eq PipelineLayout
Eq PipelineLayout =>
(PipelineLayout -> PipelineLayout -> Ordering)
-> (PipelineLayout -> PipelineLayout -> Bool)
-> (PipelineLayout -> PipelineLayout -> Bool)
-> (PipelineLayout -> PipelineLayout -> Bool)
-> (PipelineLayout -> PipelineLayout -> Bool)
-> (PipelineLayout -> PipelineLayout -> PipelineLayout)
-> (PipelineLayout -> PipelineLayout -> PipelineLayout)
-> Ord PipelineLayout
PipelineLayout -> PipelineLayout -> Bool
PipelineLayout -> PipelineLayout -> Ordering
PipelineLayout -> PipelineLayout -> PipelineLayout
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PipelineLayout -> PipelineLayout -> Ordering
compare :: PipelineLayout -> PipelineLayout -> Ordering
$c< :: PipelineLayout -> PipelineLayout -> Bool
< :: PipelineLayout -> PipelineLayout -> Bool
$c<= :: PipelineLayout -> PipelineLayout -> Bool
<= :: PipelineLayout -> PipelineLayout -> Bool
$c> :: PipelineLayout -> PipelineLayout -> Bool
> :: PipelineLayout -> PipelineLayout -> Bool
$c>= :: PipelineLayout -> PipelineLayout -> Bool
>= :: PipelineLayout -> PipelineLayout -> Bool
$cmax :: PipelineLayout -> PipelineLayout -> PipelineLayout
max :: PipelineLayout -> PipelineLayout -> PipelineLayout
$cmin :: PipelineLayout -> PipelineLayout -> PipelineLayout
min :: PipelineLayout -> PipelineLayout -> PipelineLayout
Ord, Ptr PipelineLayout -> IO PipelineLayout
Ptr PipelineLayout -> Int -> IO PipelineLayout
Ptr PipelineLayout -> Int -> PipelineLayout -> IO ()
Ptr PipelineLayout -> PipelineLayout -> IO ()
PipelineLayout -> Int
(PipelineLayout -> Int)
-> (PipelineLayout -> Int)
-> (Ptr PipelineLayout -> Int -> IO PipelineLayout)
-> (Ptr PipelineLayout -> Int -> PipelineLayout -> IO ())
-> (forall b. Ptr b -> Int -> IO PipelineLayout)
-> (forall b. Ptr b -> Int -> PipelineLayout -> IO ())
-> (Ptr PipelineLayout -> IO PipelineLayout)
-> (Ptr PipelineLayout -> PipelineLayout -> IO ())
-> Storable PipelineLayout
forall b. Ptr b -> Int -> IO PipelineLayout
forall b. Ptr b -> Int -> PipelineLayout -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: PipelineLayout -> Int
sizeOf :: PipelineLayout -> Int
$calignment :: PipelineLayout -> Int
alignment :: PipelineLayout -> Int
$cpeekElemOff :: Ptr PipelineLayout -> Int -> IO PipelineLayout
peekElemOff :: Ptr PipelineLayout -> Int -> IO PipelineLayout
$cpokeElemOff :: Ptr PipelineLayout -> Int -> PipelineLayout -> IO ()
pokeElemOff :: Ptr PipelineLayout -> Int -> PipelineLayout -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PipelineLayout
peekByteOff :: forall b. Ptr b -> Int -> IO PipelineLayout
$cpokeByteOff :: forall b. Ptr b -> Int -> PipelineLayout -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> PipelineLayout -> IO ()
$cpeek :: Ptr PipelineLayout -> IO PipelineLayout
peek :: Ptr PipelineLayout -> IO PipelineLayout
$cpoke :: Ptr PipelineLayout -> PipelineLayout -> IO ()
poke :: Ptr PipelineLayout -> PipelineLayout -> IO ()
Storable, PipelineLayout
PipelineLayout -> Zero PipelineLayout
forall a. a -> Zero a
$czero :: PipelineLayout
zero :: PipelineLayout
Zero)
  deriving anyclass (Eq PipelineLayout
Zero PipelineLayout
(Eq PipelineLayout, Zero PipelineLayout) => IsHandle PipelineLayout
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType PipelineLayout where
  objectTypeAndHandle :: PipelineLayout -> (ObjectType, Word64)
objectTypeAndHandle (PipelineLayout Word64
h) = (ObjectType
OBJECT_TYPE_PIPELINE_LAYOUT, Word64
h)
instance Show PipelineLayout where
  showsPrec :: Int -> PipelineLayout -> ShowS
showsPrec Int
p (PipelineLayout Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"PipelineLayout 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkSampler - Opaque handle to a sampler object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT',
-- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo',
-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding',
-- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.SamplerCaptureDescriptorDataInfoEXT',
-- 'Vulkan.Core10.Sampler.createSampler',
-- 'Vulkan.Core10.Sampler.destroySampler'
newtype Sampler = Sampler Word64
  deriving newtype (Sampler -> Sampler -> Bool
(Sampler -> Sampler -> Bool)
-> (Sampler -> Sampler -> Bool) -> Eq Sampler
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Sampler -> Sampler -> Bool
== :: Sampler -> Sampler -> Bool
$c/= :: Sampler -> Sampler -> Bool
/= :: Sampler -> Sampler -> Bool
Eq, Eq Sampler
Eq Sampler =>
(Sampler -> Sampler -> Ordering)
-> (Sampler -> Sampler -> Bool)
-> (Sampler -> Sampler -> Bool)
-> (Sampler -> Sampler -> Bool)
-> (Sampler -> Sampler -> Bool)
-> (Sampler -> Sampler -> Sampler)
-> (Sampler -> Sampler -> Sampler)
-> Ord Sampler
Sampler -> Sampler -> Bool
Sampler -> Sampler -> Ordering
Sampler -> Sampler -> Sampler
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Sampler -> Sampler -> Ordering
compare :: Sampler -> Sampler -> Ordering
$c< :: Sampler -> Sampler -> Bool
< :: Sampler -> Sampler -> Bool
$c<= :: Sampler -> Sampler -> Bool
<= :: Sampler -> Sampler -> Bool
$c> :: Sampler -> Sampler -> Bool
> :: Sampler -> Sampler -> Bool
$c>= :: Sampler -> Sampler -> Bool
>= :: Sampler -> Sampler -> Bool
$cmax :: Sampler -> Sampler -> Sampler
max :: Sampler -> Sampler -> Sampler
$cmin :: Sampler -> Sampler -> Sampler
min :: Sampler -> Sampler -> Sampler
Ord, Ptr Sampler -> IO Sampler
Ptr Sampler -> Int -> IO Sampler
Ptr Sampler -> Int -> Sampler -> IO ()
Ptr Sampler -> Sampler -> IO ()
Sampler -> Int
(Sampler -> Int)
-> (Sampler -> Int)
-> (Ptr Sampler -> Int -> IO Sampler)
-> (Ptr Sampler -> Int -> Sampler -> IO ())
-> (forall b. Ptr b -> Int -> IO Sampler)
-> (forall b. Ptr b -> Int -> Sampler -> IO ())
-> (Ptr Sampler -> IO Sampler)
-> (Ptr Sampler -> Sampler -> IO ())
-> Storable Sampler
forall b. Ptr b -> Int -> IO Sampler
forall b. Ptr b -> Int -> Sampler -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Sampler -> Int
sizeOf :: Sampler -> Int
$calignment :: Sampler -> Int
alignment :: Sampler -> Int
$cpeekElemOff :: Ptr Sampler -> Int -> IO Sampler
peekElemOff :: Ptr Sampler -> Int -> IO Sampler
$cpokeElemOff :: Ptr Sampler -> Int -> Sampler -> IO ()
pokeElemOff :: Ptr Sampler -> Int -> Sampler -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Sampler
peekByteOff :: forall b. Ptr b -> Int -> IO Sampler
$cpokeByteOff :: forall b. Ptr b -> Int -> Sampler -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Sampler -> IO ()
$cpeek :: Ptr Sampler -> IO Sampler
peek :: Ptr Sampler -> IO Sampler
$cpoke :: Ptr Sampler -> Sampler -> IO ()
poke :: Ptr Sampler -> Sampler -> IO ()
Storable, Sampler
Sampler -> Zero Sampler
forall a. a -> Zero a
$czero :: Sampler
zero :: Sampler
Zero)
  deriving anyclass (Eq Sampler
Zero Sampler
(Eq Sampler, Zero Sampler) => IsHandle Sampler
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Sampler where
  objectTypeAndHandle :: Sampler -> (ObjectType, Word64)
objectTypeAndHandle (Sampler Word64
h) = (ObjectType
OBJECT_TYPE_SAMPLER, Word64
h)
instance Show Sampler where
  showsPrec :: Int -> Sampler -> ShowS
showsPrec Int
p (Sampler Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Sampler 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkDescriptorSet - Opaque handle to a descriptor set object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet',
-- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',
-- 'Vulkan.Core10.DescriptorSet.allocateDescriptorSets',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets',
-- 'Vulkan.Core10.DescriptorSet.freeDescriptorSets',
-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.getDescriptorSetHostMappingVALVE',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplate',
-- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR'
newtype DescriptorSet = DescriptorSet Word64
  deriving newtype (DescriptorSet -> DescriptorSet -> Bool
(DescriptorSet -> DescriptorSet -> Bool)
-> (DescriptorSet -> DescriptorSet -> Bool) -> Eq DescriptorSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorSet -> DescriptorSet -> Bool
== :: DescriptorSet -> DescriptorSet -> Bool
$c/= :: DescriptorSet -> DescriptorSet -> Bool
/= :: DescriptorSet -> DescriptorSet -> Bool
Eq, Eq DescriptorSet
Eq DescriptorSet =>
(DescriptorSet -> DescriptorSet -> Ordering)
-> (DescriptorSet -> DescriptorSet -> Bool)
-> (DescriptorSet -> DescriptorSet -> Bool)
-> (DescriptorSet -> DescriptorSet -> Bool)
-> (DescriptorSet -> DescriptorSet -> Bool)
-> (DescriptorSet -> DescriptorSet -> DescriptorSet)
-> (DescriptorSet -> DescriptorSet -> DescriptorSet)
-> Ord DescriptorSet
DescriptorSet -> DescriptorSet -> Bool
DescriptorSet -> DescriptorSet -> Ordering
DescriptorSet -> DescriptorSet -> DescriptorSet
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DescriptorSet -> DescriptorSet -> Ordering
compare :: DescriptorSet -> DescriptorSet -> Ordering
$c< :: DescriptorSet -> DescriptorSet -> Bool
< :: DescriptorSet -> DescriptorSet -> Bool
$c<= :: DescriptorSet -> DescriptorSet -> Bool
<= :: DescriptorSet -> DescriptorSet -> Bool
$c> :: DescriptorSet -> DescriptorSet -> Bool
> :: DescriptorSet -> DescriptorSet -> Bool
$c>= :: DescriptorSet -> DescriptorSet -> Bool
>= :: DescriptorSet -> DescriptorSet -> Bool
$cmax :: DescriptorSet -> DescriptorSet -> DescriptorSet
max :: DescriptorSet -> DescriptorSet -> DescriptorSet
$cmin :: DescriptorSet -> DescriptorSet -> DescriptorSet
min :: DescriptorSet -> DescriptorSet -> DescriptorSet
Ord, Ptr DescriptorSet -> IO DescriptorSet
Ptr DescriptorSet -> Int -> IO DescriptorSet
Ptr DescriptorSet -> Int -> DescriptorSet -> IO ()
Ptr DescriptorSet -> DescriptorSet -> IO ()
DescriptorSet -> Int
(DescriptorSet -> Int)
-> (DescriptorSet -> Int)
-> (Ptr DescriptorSet -> Int -> IO DescriptorSet)
-> (Ptr DescriptorSet -> Int -> DescriptorSet -> IO ())
-> (forall b. Ptr b -> Int -> IO DescriptorSet)
-> (forall b. Ptr b -> Int -> DescriptorSet -> IO ())
-> (Ptr DescriptorSet -> IO DescriptorSet)
-> (Ptr DescriptorSet -> DescriptorSet -> IO ())
-> Storable DescriptorSet
forall b. Ptr b -> Int -> IO DescriptorSet
forall b. Ptr b -> Int -> DescriptorSet -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: DescriptorSet -> Int
sizeOf :: DescriptorSet -> Int
$calignment :: DescriptorSet -> Int
alignment :: DescriptorSet -> Int
$cpeekElemOff :: Ptr DescriptorSet -> Int -> IO DescriptorSet
peekElemOff :: Ptr DescriptorSet -> Int -> IO DescriptorSet
$cpokeElemOff :: Ptr DescriptorSet -> Int -> DescriptorSet -> IO ()
pokeElemOff :: Ptr DescriptorSet -> Int -> DescriptorSet -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO DescriptorSet
peekByteOff :: forall b. Ptr b -> Int -> IO DescriptorSet
$cpokeByteOff :: forall b. Ptr b -> Int -> DescriptorSet -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> DescriptorSet -> IO ()
$cpeek :: Ptr DescriptorSet -> IO DescriptorSet
peek :: Ptr DescriptorSet -> IO DescriptorSet
$cpoke :: Ptr DescriptorSet -> DescriptorSet -> IO ()
poke :: Ptr DescriptorSet -> DescriptorSet -> IO ()
Storable, DescriptorSet
DescriptorSet -> Zero DescriptorSet
forall a. a -> Zero a
$czero :: DescriptorSet
zero :: DescriptorSet
Zero)
  deriving anyclass (Eq DescriptorSet
Zero DescriptorSet
(Eq DescriptorSet, Zero DescriptorSet) => IsHandle DescriptorSet
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType DescriptorSet where
  objectTypeAndHandle :: DescriptorSet -> (ObjectType, Word64)
objectTypeAndHandle (DescriptorSet Word64
h) = (ObjectType
OBJECT_TYPE_DESCRIPTOR_SET, Word64
h)
instance Show DescriptorSet where
  showsPrec :: Int -> DescriptorSet -> ShowS
showsPrec Int
p (DescriptorSet Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"DescriptorSet 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkDescriptorSetLayout - Opaque handle to a descriptor set layout object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',
-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetBindingReferenceVALVE',
-- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo',
-- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo',
-- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT',
-- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',
-- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutBindingOffsetEXT',
-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorSetLayoutSizeEXT'
newtype DescriptorSetLayout = DescriptorSetLayout Word64
  deriving newtype (DescriptorSetLayout -> DescriptorSetLayout -> Bool
(DescriptorSetLayout -> DescriptorSetLayout -> Bool)
-> (DescriptorSetLayout -> DescriptorSetLayout -> Bool)
-> Eq DescriptorSetLayout
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
== :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
$c/= :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
/= :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
Eq, Eq DescriptorSetLayout
Eq DescriptorSetLayout =>
(DescriptorSetLayout -> DescriptorSetLayout -> Ordering)
-> (DescriptorSetLayout -> DescriptorSetLayout -> Bool)
-> (DescriptorSetLayout -> DescriptorSetLayout -> Bool)
-> (DescriptorSetLayout -> DescriptorSetLayout -> Bool)
-> (DescriptorSetLayout -> DescriptorSetLayout -> Bool)
-> (DescriptorSetLayout
    -> DescriptorSetLayout -> DescriptorSetLayout)
-> (DescriptorSetLayout
    -> DescriptorSetLayout -> DescriptorSetLayout)
-> Ord DescriptorSetLayout
DescriptorSetLayout -> DescriptorSetLayout -> Bool
DescriptorSetLayout -> DescriptorSetLayout -> Ordering
DescriptorSetLayout -> DescriptorSetLayout -> DescriptorSetLayout
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DescriptorSetLayout -> DescriptorSetLayout -> Ordering
compare :: DescriptorSetLayout -> DescriptorSetLayout -> Ordering
$c< :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
< :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
$c<= :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
<= :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
$c> :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
> :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
$c>= :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
>= :: DescriptorSetLayout -> DescriptorSetLayout -> Bool
$cmax :: DescriptorSetLayout -> DescriptorSetLayout -> DescriptorSetLayout
max :: DescriptorSetLayout -> DescriptorSetLayout -> DescriptorSetLayout
$cmin :: DescriptorSetLayout -> DescriptorSetLayout -> DescriptorSetLayout
min :: DescriptorSetLayout -> DescriptorSetLayout -> DescriptorSetLayout
Ord, Ptr DescriptorSetLayout -> IO DescriptorSetLayout
Ptr DescriptorSetLayout -> Int -> IO DescriptorSetLayout
Ptr DescriptorSetLayout -> Int -> DescriptorSetLayout -> IO ()
Ptr DescriptorSetLayout -> DescriptorSetLayout -> IO ()
DescriptorSetLayout -> Int
(DescriptorSetLayout -> Int)
-> (DescriptorSetLayout -> Int)
-> (Ptr DescriptorSetLayout -> Int -> IO DescriptorSetLayout)
-> (Ptr DescriptorSetLayout -> Int -> DescriptorSetLayout -> IO ())
-> (forall b. Ptr b -> Int -> IO DescriptorSetLayout)
-> (forall b. Ptr b -> Int -> DescriptorSetLayout -> IO ())
-> (Ptr DescriptorSetLayout -> IO DescriptorSetLayout)
-> (Ptr DescriptorSetLayout -> DescriptorSetLayout -> IO ())
-> Storable DescriptorSetLayout
forall b. Ptr b -> Int -> IO DescriptorSetLayout
forall b. Ptr b -> Int -> DescriptorSetLayout -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: DescriptorSetLayout -> Int
sizeOf :: DescriptorSetLayout -> Int
$calignment :: DescriptorSetLayout -> Int
alignment :: DescriptorSetLayout -> Int
$cpeekElemOff :: Ptr DescriptorSetLayout -> Int -> IO DescriptorSetLayout
peekElemOff :: Ptr DescriptorSetLayout -> Int -> IO DescriptorSetLayout
$cpokeElemOff :: Ptr DescriptorSetLayout -> Int -> DescriptorSetLayout -> IO ()
pokeElemOff :: Ptr DescriptorSetLayout -> Int -> DescriptorSetLayout -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO DescriptorSetLayout
peekByteOff :: forall b. Ptr b -> Int -> IO DescriptorSetLayout
$cpokeByteOff :: forall b. Ptr b -> Int -> DescriptorSetLayout -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> DescriptorSetLayout -> IO ()
$cpeek :: Ptr DescriptorSetLayout -> IO DescriptorSetLayout
peek :: Ptr DescriptorSetLayout -> IO DescriptorSetLayout
$cpoke :: Ptr DescriptorSetLayout -> DescriptorSetLayout -> IO ()
poke :: Ptr DescriptorSetLayout -> DescriptorSetLayout -> IO ()
Storable, DescriptorSetLayout
DescriptorSetLayout -> Zero DescriptorSetLayout
forall a. a -> Zero a
$czero :: DescriptorSetLayout
zero :: DescriptorSetLayout
Zero)
  deriving anyclass (Eq DescriptorSetLayout
Zero DescriptorSetLayout
(Eq DescriptorSetLayout, Zero DescriptorSetLayout) =>
IsHandle DescriptorSetLayout
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType DescriptorSetLayout where
  objectTypeAndHandle :: DescriptorSetLayout -> (ObjectType, Word64)
objectTypeAndHandle (DescriptorSetLayout Word64
h) = ( ObjectType
OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT
                                                , Word64
h )
instance Show DescriptorSetLayout where
  showsPrec :: Int -> DescriptorSetLayout -> ShowS
showsPrec Int
p (DescriptorSetLayout Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"DescriptorSetLayout 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkDescriptorPool - Opaque handle to a descriptor pool object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',
-- 'Vulkan.Core10.DescriptorSet.createDescriptorPool',
-- 'Vulkan.Core10.DescriptorSet.destroyDescriptorPool',
-- 'Vulkan.Core10.DescriptorSet.freeDescriptorSets',
-- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool'
newtype DescriptorPool = DescriptorPool Word64
  deriving newtype (DescriptorPool -> DescriptorPool -> Bool
(DescriptorPool -> DescriptorPool -> Bool)
-> (DescriptorPool -> DescriptorPool -> Bool) -> Eq DescriptorPool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DescriptorPool -> DescriptorPool -> Bool
== :: DescriptorPool -> DescriptorPool -> Bool
$c/= :: DescriptorPool -> DescriptorPool -> Bool
/= :: DescriptorPool -> DescriptorPool -> Bool
Eq, Eq DescriptorPool
Eq DescriptorPool =>
(DescriptorPool -> DescriptorPool -> Ordering)
-> (DescriptorPool -> DescriptorPool -> Bool)
-> (DescriptorPool -> DescriptorPool -> Bool)
-> (DescriptorPool -> DescriptorPool -> Bool)
-> (DescriptorPool -> DescriptorPool -> Bool)
-> (DescriptorPool -> DescriptorPool -> DescriptorPool)
-> (DescriptorPool -> DescriptorPool -> DescriptorPool)
-> Ord DescriptorPool
DescriptorPool -> DescriptorPool -> Bool
DescriptorPool -> DescriptorPool -> Ordering
DescriptorPool -> DescriptorPool -> DescriptorPool
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DescriptorPool -> DescriptorPool -> Ordering
compare :: DescriptorPool -> DescriptorPool -> Ordering
$c< :: DescriptorPool -> DescriptorPool -> Bool
< :: DescriptorPool -> DescriptorPool -> Bool
$c<= :: DescriptorPool -> DescriptorPool -> Bool
<= :: DescriptorPool -> DescriptorPool -> Bool
$c> :: DescriptorPool -> DescriptorPool -> Bool
> :: DescriptorPool -> DescriptorPool -> Bool
$c>= :: DescriptorPool -> DescriptorPool -> Bool
>= :: DescriptorPool -> DescriptorPool -> Bool
$cmax :: DescriptorPool -> DescriptorPool -> DescriptorPool
max :: DescriptorPool -> DescriptorPool -> DescriptorPool
$cmin :: DescriptorPool -> DescriptorPool -> DescriptorPool
min :: DescriptorPool -> DescriptorPool -> DescriptorPool
Ord, Ptr DescriptorPool -> IO DescriptorPool
Ptr DescriptorPool -> Int -> IO DescriptorPool
Ptr DescriptorPool -> Int -> DescriptorPool -> IO ()
Ptr DescriptorPool -> DescriptorPool -> IO ()
DescriptorPool -> Int
(DescriptorPool -> Int)
-> (DescriptorPool -> Int)
-> (Ptr DescriptorPool -> Int -> IO DescriptorPool)
-> (Ptr DescriptorPool -> Int -> DescriptorPool -> IO ())
-> (forall b. Ptr b -> Int -> IO DescriptorPool)
-> (forall b. Ptr b -> Int -> DescriptorPool -> IO ())
-> (Ptr DescriptorPool -> IO DescriptorPool)
-> (Ptr DescriptorPool -> DescriptorPool -> IO ())
-> Storable DescriptorPool
forall b. Ptr b -> Int -> IO DescriptorPool
forall b. Ptr b -> Int -> DescriptorPool -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: DescriptorPool -> Int
sizeOf :: DescriptorPool -> Int
$calignment :: DescriptorPool -> Int
alignment :: DescriptorPool -> Int
$cpeekElemOff :: Ptr DescriptorPool -> Int -> IO DescriptorPool
peekElemOff :: Ptr DescriptorPool -> Int -> IO DescriptorPool
$cpokeElemOff :: Ptr DescriptorPool -> Int -> DescriptorPool -> IO ()
pokeElemOff :: Ptr DescriptorPool -> Int -> DescriptorPool -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO DescriptorPool
peekByteOff :: forall b. Ptr b -> Int -> IO DescriptorPool
$cpokeByteOff :: forall b. Ptr b -> Int -> DescriptorPool -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> DescriptorPool -> IO ()
$cpeek :: Ptr DescriptorPool -> IO DescriptorPool
peek :: Ptr DescriptorPool -> IO DescriptorPool
$cpoke :: Ptr DescriptorPool -> DescriptorPool -> IO ()
poke :: Ptr DescriptorPool -> DescriptorPool -> IO ()
Storable, DescriptorPool
DescriptorPool -> Zero DescriptorPool
forall a. a -> Zero a
$czero :: DescriptorPool
zero :: DescriptorPool
Zero)
  deriving anyclass (Eq DescriptorPool
Zero DescriptorPool
(Eq DescriptorPool, Zero DescriptorPool) => IsHandle DescriptorPool
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType DescriptorPool where
  objectTypeAndHandle :: DescriptorPool -> (ObjectType, Word64)
objectTypeAndHandle (DescriptorPool Word64
h) = (ObjectType
OBJECT_TYPE_DESCRIPTOR_POOL, Word64
h)
instance Show DescriptorPool where
  showsPrec :: Int -> DescriptorPool -> ShowS
showsPrec Int
p (DescriptorPool Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"DescriptorPool 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkFence - Opaque handle to a fence object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.FenceGetFdInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ImportFenceWin32HandleInfoKHR',
-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT',
-- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR',
-- 'Vulkan.Core10.Fence.createFence', 'Vulkan.Core10.Fence.destroyFence',
-- 'Vulkan.Core10.Fence.getFenceStatus',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse',
-- 'Vulkan.Core10.Queue.queueSubmit',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.queueSubmit2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.queueSubmit2KHR',
-- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT',
-- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT',
-- 'Vulkan.Core10.Fence.resetFences', 'Vulkan.Core10.Fence.waitForFences'
newtype Fence = Fence Word64
  deriving newtype (Fence -> Fence -> Bool
(Fence -> Fence -> Bool) -> (Fence -> Fence -> Bool) -> Eq Fence
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Fence -> Fence -> Bool
== :: Fence -> Fence -> Bool
$c/= :: Fence -> Fence -> Bool
/= :: Fence -> Fence -> Bool
Eq, Eq Fence
Eq Fence =>
(Fence -> Fence -> Ordering)
-> (Fence -> Fence -> Bool)
-> (Fence -> Fence -> Bool)
-> (Fence -> Fence -> Bool)
-> (Fence -> Fence -> Bool)
-> (Fence -> Fence -> Fence)
-> (Fence -> Fence -> Fence)
-> Ord Fence
Fence -> Fence -> Bool
Fence -> Fence -> Ordering
Fence -> Fence -> Fence
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Fence -> Fence -> Ordering
compare :: Fence -> Fence -> Ordering
$c< :: Fence -> Fence -> Bool
< :: Fence -> Fence -> Bool
$c<= :: Fence -> Fence -> Bool
<= :: Fence -> Fence -> Bool
$c> :: Fence -> Fence -> Bool
> :: Fence -> Fence -> Bool
$c>= :: Fence -> Fence -> Bool
>= :: Fence -> Fence -> Bool
$cmax :: Fence -> Fence -> Fence
max :: Fence -> Fence -> Fence
$cmin :: Fence -> Fence -> Fence
min :: Fence -> Fence -> Fence
Ord, Ptr Fence -> IO Fence
Ptr Fence -> Int -> IO Fence
Ptr Fence -> Int -> Fence -> IO ()
Ptr Fence -> Fence -> IO ()
Fence -> Int
(Fence -> Int)
-> (Fence -> Int)
-> (Ptr Fence -> Int -> IO Fence)
-> (Ptr Fence -> Int -> Fence -> IO ())
-> (forall b. Ptr b -> Int -> IO Fence)
-> (forall b. Ptr b -> Int -> Fence -> IO ())
-> (Ptr Fence -> IO Fence)
-> (Ptr Fence -> Fence -> IO ())
-> Storable Fence
forall b. Ptr b -> Int -> IO Fence
forall b. Ptr b -> Int -> Fence -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Fence -> Int
sizeOf :: Fence -> Int
$calignment :: Fence -> Int
alignment :: Fence -> Int
$cpeekElemOff :: Ptr Fence -> Int -> IO Fence
peekElemOff :: Ptr Fence -> Int -> IO Fence
$cpokeElemOff :: Ptr Fence -> Int -> Fence -> IO ()
pokeElemOff :: Ptr Fence -> Int -> Fence -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Fence
peekByteOff :: forall b. Ptr b -> Int -> IO Fence
$cpokeByteOff :: forall b. Ptr b -> Int -> Fence -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Fence -> IO ()
$cpeek :: Ptr Fence -> IO Fence
peek :: Ptr Fence -> IO Fence
$cpoke :: Ptr Fence -> Fence -> IO ()
poke :: Ptr Fence -> Fence -> IO ()
Storable, Fence
Fence -> Zero Fence
forall a. a -> Zero a
$czero :: Fence
zero :: Fence
Zero)
  deriving anyclass (Eq Fence
Zero Fence
(Eq Fence, Zero Fence) => IsHandle Fence
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Fence where
  objectTypeAndHandle :: Fence -> (ObjectType, Word64)
objectTypeAndHandle (Fence Word64
h) = (ObjectType
OBJECT_TYPE_FENCE, Word64
h)
instance Show Fence where
  showsPrec :: Int -> Fence -> ShowS
showsPrec Int
p (Fence Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Fence 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkSemaphore - Opaque handle to a semaphore object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',
-- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',
-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepInfoNV',
-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',
-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',
-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo',
-- 'Vulkan.Core10.Queue.SubmitInfo',
-- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR',
-- 'Vulkan.Core10.QueueSemaphore.createSemaphore',
-- 'Vulkan.Core10.QueueSemaphore.destroySemaphore',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.getSemaphoreCounterValue',
-- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR'
newtype Semaphore = Semaphore Word64
  deriving newtype (Semaphore -> Semaphore -> Bool
(Semaphore -> Semaphore -> Bool)
-> (Semaphore -> Semaphore -> Bool) -> Eq Semaphore
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Semaphore -> Semaphore -> Bool
== :: Semaphore -> Semaphore -> Bool
$c/= :: Semaphore -> Semaphore -> Bool
/= :: Semaphore -> Semaphore -> Bool
Eq, Eq Semaphore
Eq Semaphore =>
(Semaphore -> Semaphore -> Ordering)
-> (Semaphore -> Semaphore -> Bool)
-> (Semaphore -> Semaphore -> Bool)
-> (Semaphore -> Semaphore -> Bool)
-> (Semaphore -> Semaphore -> Bool)
-> (Semaphore -> Semaphore -> Semaphore)
-> (Semaphore -> Semaphore -> Semaphore)
-> Ord Semaphore
Semaphore -> Semaphore -> Bool
Semaphore -> Semaphore -> Ordering
Semaphore -> Semaphore -> Semaphore
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Semaphore -> Semaphore -> Ordering
compare :: Semaphore -> Semaphore -> Ordering
$c< :: Semaphore -> Semaphore -> Bool
< :: Semaphore -> Semaphore -> Bool
$c<= :: Semaphore -> Semaphore -> Bool
<= :: Semaphore -> Semaphore -> Bool
$c> :: Semaphore -> Semaphore -> Bool
> :: Semaphore -> Semaphore -> Bool
$c>= :: Semaphore -> Semaphore -> Bool
>= :: Semaphore -> Semaphore -> Bool
$cmax :: Semaphore -> Semaphore -> Semaphore
max :: Semaphore -> Semaphore -> Semaphore
$cmin :: Semaphore -> Semaphore -> Semaphore
min :: Semaphore -> Semaphore -> Semaphore
Ord, Ptr Semaphore -> IO Semaphore
Ptr Semaphore -> Int -> IO Semaphore
Ptr Semaphore -> Int -> Semaphore -> IO ()
Ptr Semaphore -> Semaphore -> IO ()
Semaphore -> Int
(Semaphore -> Int)
-> (Semaphore -> Int)
-> (Ptr Semaphore -> Int -> IO Semaphore)
-> (Ptr Semaphore -> Int -> Semaphore -> IO ())
-> (forall b. Ptr b -> Int -> IO Semaphore)
-> (forall b. Ptr b -> Int -> Semaphore -> IO ())
-> (Ptr Semaphore -> IO Semaphore)
-> (Ptr Semaphore -> Semaphore -> IO ())
-> Storable Semaphore
forall b. Ptr b -> Int -> IO Semaphore
forall b. Ptr b -> Int -> Semaphore -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Semaphore -> Int
sizeOf :: Semaphore -> Int
$calignment :: Semaphore -> Int
alignment :: Semaphore -> Int
$cpeekElemOff :: Ptr Semaphore -> Int -> IO Semaphore
peekElemOff :: Ptr Semaphore -> Int -> IO Semaphore
$cpokeElemOff :: Ptr Semaphore -> Int -> Semaphore -> IO ()
pokeElemOff :: Ptr Semaphore -> Int -> Semaphore -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Semaphore
peekByteOff :: forall b. Ptr b -> Int -> IO Semaphore
$cpokeByteOff :: forall b. Ptr b -> Int -> Semaphore -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Semaphore -> IO ()
$cpeek :: Ptr Semaphore -> IO Semaphore
peek :: Ptr Semaphore -> IO Semaphore
$cpoke :: Ptr Semaphore -> Semaphore -> IO ()
poke :: Ptr Semaphore -> Semaphore -> IO ()
Storable, Semaphore
Semaphore -> Zero Semaphore
forall a. a -> Zero a
$czero :: Semaphore
zero :: Semaphore
Zero)
  deriving anyclass (Eq Semaphore
Zero Semaphore
(Eq Semaphore, Zero Semaphore) => IsHandle Semaphore
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Semaphore where
  objectTypeAndHandle :: Semaphore -> (ObjectType, Word64)
objectTypeAndHandle (Semaphore Word64
h) = (ObjectType
OBJECT_TYPE_SEMAPHORE, Word64
h)
instance Show Semaphore where
  showsPrec :: Int -> Semaphore -> ShowS
showsPrec Int
p (Semaphore Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Semaphore 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkEvent - Opaque handle to an event object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdResetEvent2KHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR',
-- 'Vulkan.Core10.Event.createEvent', 'Vulkan.Core10.Event.destroyEvent',
-- 'Vulkan.Core10.Event.getEventStatus', 'Vulkan.Core10.Event.resetEvent',
-- 'Vulkan.Core10.Event.setEvent'
newtype Event = Event Word64
  deriving newtype (Event -> Event -> Bool
(Event -> Event -> Bool) -> (Event -> Event -> Bool) -> Eq Event
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Event -> Event -> Bool
== :: Event -> Event -> Bool
$c/= :: Event -> Event -> Bool
/= :: Event -> Event -> Bool
Eq, Eq Event
Eq Event =>
(Event -> Event -> Ordering)
-> (Event -> Event -> Bool)
-> (Event -> Event -> Bool)
-> (Event -> Event -> Bool)
-> (Event -> Event -> Bool)
-> (Event -> Event -> Event)
-> (Event -> Event -> Event)
-> Ord Event
Event -> Event -> Bool
Event -> Event -> Ordering
Event -> Event -> Event
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Event -> Event -> Ordering
compare :: Event -> Event -> Ordering
$c< :: Event -> Event -> Bool
< :: Event -> Event -> Bool
$c<= :: Event -> Event -> Bool
<= :: Event -> Event -> Bool
$c> :: Event -> Event -> Bool
> :: Event -> Event -> Bool
$c>= :: Event -> Event -> Bool
>= :: Event -> Event -> Bool
$cmax :: Event -> Event -> Event
max :: Event -> Event -> Event
$cmin :: Event -> Event -> Event
min :: Event -> Event -> Event
Ord, Ptr Event -> IO Event
Ptr Event -> Int -> IO Event
Ptr Event -> Int -> Event -> IO ()
Ptr Event -> Event -> IO ()
Event -> Int
(Event -> Int)
-> (Event -> Int)
-> (Ptr Event -> Int -> IO Event)
-> (Ptr Event -> Int -> Event -> IO ())
-> (forall b. Ptr b -> Int -> IO Event)
-> (forall b. Ptr b -> Int -> Event -> IO ())
-> (Ptr Event -> IO Event)
-> (Ptr Event -> Event -> IO ())
-> Storable Event
forall b. Ptr b -> Int -> IO Event
forall b. Ptr b -> Int -> Event -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Event -> Int
sizeOf :: Event -> Int
$calignment :: Event -> Int
alignment :: Event -> Int
$cpeekElemOff :: Ptr Event -> Int -> IO Event
peekElemOff :: Ptr Event -> Int -> IO Event
$cpokeElemOff :: Ptr Event -> Int -> Event -> IO ()
pokeElemOff :: Ptr Event -> Int -> Event -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Event
peekByteOff :: forall b. Ptr b -> Int -> IO Event
$cpokeByteOff :: forall b. Ptr b -> Int -> Event -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Event -> IO ()
$cpeek :: Ptr Event -> IO Event
peek :: Ptr Event -> IO Event
$cpoke :: Ptr Event -> Event -> IO ()
poke :: Ptr Event -> Event -> IO ()
Storable, Event
Event -> Zero Event
forall a. a -> Zero a
$czero :: Event
zero :: Event
Zero)
  deriving anyclass (Eq Event
Zero Event
(Eq Event, Zero Event) => IsHandle Event
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Event where
  objectTypeAndHandle :: Event -> (ObjectType, Word64)
objectTypeAndHandle (Event Word64
h) = (ObjectType
OBJECT_TYPE_EVENT, Word64
h)
instance Show Event where
  showsPrec :: Int -> Event -> ShowS
showsPrec Int
p (Event Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Event 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkQueryPool - Opaque handle to a query pool object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool',
-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV',
-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT',
-- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp',
-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',
-- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR',
-- 'Vulkan.Core10.Query.createQueryPool',
-- 'Vulkan.Core10.Query.destroyQueryPool',
-- 'Vulkan.Core10.Query.getQueryPoolResults',
-- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.resetQueryPool',
-- 'Vulkan.Extensions.VK_EXT_host_query_reset.resetQueryPoolEXT'
newtype QueryPool = QueryPool Word64
  deriving newtype (QueryPool -> QueryPool -> Bool
(QueryPool -> QueryPool -> Bool)
-> (QueryPool -> QueryPool -> Bool) -> Eq QueryPool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: QueryPool -> QueryPool -> Bool
== :: QueryPool -> QueryPool -> Bool
$c/= :: QueryPool -> QueryPool -> Bool
/= :: QueryPool -> QueryPool -> Bool
Eq, Eq QueryPool
Eq QueryPool =>
(QueryPool -> QueryPool -> Ordering)
-> (QueryPool -> QueryPool -> Bool)
-> (QueryPool -> QueryPool -> Bool)
-> (QueryPool -> QueryPool -> Bool)
-> (QueryPool -> QueryPool -> Bool)
-> (QueryPool -> QueryPool -> QueryPool)
-> (QueryPool -> QueryPool -> QueryPool)
-> Ord QueryPool
QueryPool -> QueryPool -> Bool
QueryPool -> QueryPool -> Ordering
QueryPool -> QueryPool -> QueryPool
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: QueryPool -> QueryPool -> Ordering
compare :: QueryPool -> QueryPool -> Ordering
$c< :: QueryPool -> QueryPool -> Bool
< :: QueryPool -> QueryPool -> Bool
$c<= :: QueryPool -> QueryPool -> Bool
<= :: QueryPool -> QueryPool -> Bool
$c> :: QueryPool -> QueryPool -> Bool
> :: QueryPool -> QueryPool -> Bool
$c>= :: QueryPool -> QueryPool -> Bool
>= :: QueryPool -> QueryPool -> Bool
$cmax :: QueryPool -> QueryPool -> QueryPool
max :: QueryPool -> QueryPool -> QueryPool
$cmin :: QueryPool -> QueryPool -> QueryPool
min :: QueryPool -> QueryPool -> QueryPool
Ord, Ptr QueryPool -> IO QueryPool
Ptr QueryPool -> Int -> IO QueryPool
Ptr QueryPool -> Int -> QueryPool -> IO ()
Ptr QueryPool -> QueryPool -> IO ()
QueryPool -> Int
(QueryPool -> Int)
-> (QueryPool -> Int)
-> (Ptr QueryPool -> Int -> IO QueryPool)
-> (Ptr QueryPool -> Int -> QueryPool -> IO ())
-> (forall b. Ptr b -> Int -> IO QueryPool)
-> (forall b. Ptr b -> Int -> QueryPool -> IO ())
-> (Ptr QueryPool -> IO QueryPool)
-> (Ptr QueryPool -> QueryPool -> IO ())
-> Storable QueryPool
forall b. Ptr b -> Int -> IO QueryPool
forall b. Ptr b -> Int -> QueryPool -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: QueryPool -> Int
sizeOf :: QueryPool -> Int
$calignment :: QueryPool -> Int
alignment :: QueryPool -> Int
$cpeekElemOff :: Ptr QueryPool -> Int -> IO QueryPool
peekElemOff :: Ptr QueryPool -> Int -> IO QueryPool
$cpokeElemOff :: Ptr QueryPool -> Int -> QueryPool -> IO ()
pokeElemOff :: Ptr QueryPool -> Int -> QueryPool -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO QueryPool
peekByteOff :: forall b. Ptr b -> Int -> IO QueryPool
$cpokeByteOff :: forall b. Ptr b -> Int -> QueryPool -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> QueryPool -> IO ()
$cpeek :: Ptr QueryPool -> IO QueryPool
peek :: Ptr QueryPool -> IO QueryPool
$cpoke :: Ptr QueryPool -> QueryPool -> IO ()
poke :: Ptr QueryPool -> QueryPool -> IO ()
Storable, QueryPool
QueryPool -> Zero QueryPool
forall a. a -> Zero a
$czero :: QueryPool
zero :: QueryPool
Zero)
  deriving anyclass (Eq QueryPool
Zero QueryPool
(Eq QueryPool, Zero QueryPool) => IsHandle QueryPool
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType QueryPool where
  objectTypeAndHandle :: QueryPool -> (ObjectType, Word64)
objectTypeAndHandle (QueryPool Word64
h) = (ObjectType
OBJECT_TYPE_QUERY_POOL, Word64
h)
instance Show QueryPool where
  showsPrec :: Int -> QueryPool -> ShowS
showsPrec Int
p (QueryPool Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"QueryPool 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkFramebuffer - Opaque handle to a framebuffer object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',
-- 'Vulkan.Core10.Pass.createFramebuffer',
-- 'Vulkan.Core10.Pass.destroyFramebuffer',
-- 'Vulkan.Extensions.VK_QCOM_tile_properties.getFramebufferTilePropertiesQCOM'
newtype Framebuffer = Framebuffer Word64
  deriving newtype (Framebuffer -> Framebuffer -> Bool
(Framebuffer -> Framebuffer -> Bool)
-> (Framebuffer -> Framebuffer -> Bool) -> Eq Framebuffer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Framebuffer -> Framebuffer -> Bool
== :: Framebuffer -> Framebuffer -> Bool
$c/= :: Framebuffer -> Framebuffer -> Bool
/= :: Framebuffer -> Framebuffer -> Bool
Eq, Eq Framebuffer
Eq Framebuffer =>
(Framebuffer -> Framebuffer -> Ordering)
-> (Framebuffer -> Framebuffer -> Bool)
-> (Framebuffer -> Framebuffer -> Bool)
-> (Framebuffer -> Framebuffer -> Bool)
-> (Framebuffer -> Framebuffer -> Bool)
-> (Framebuffer -> Framebuffer -> Framebuffer)
-> (Framebuffer -> Framebuffer -> Framebuffer)
-> Ord Framebuffer
Framebuffer -> Framebuffer -> Bool
Framebuffer -> Framebuffer -> Ordering
Framebuffer -> Framebuffer -> Framebuffer
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Framebuffer -> Framebuffer -> Ordering
compare :: Framebuffer -> Framebuffer -> Ordering
$c< :: Framebuffer -> Framebuffer -> Bool
< :: Framebuffer -> Framebuffer -> Bool
$c<= :: Framebuffer -> Framebuffer -> Bool
<= :: Framebuffer -> Framebuffer -> Bool
$c> :: Framebuffer -> Framebuffer -> Bool
> :: Framebuffer -> Framebuffer -> Bool
$c>= :: Framebuffer -> Framebuffer -> Bool
>= :: Framebuffer -> Framebuffer -> Bool
$cmax :: Framebuffer -> Framebuffer -> Framebuffer
max :: Framebuffer -> Framebuffer -> Framebuffer
$cmin :: Framebuffer -> Framebuffer -> Framebuffer
min :: Framebuffer -> Framebuffer -> Framebuffer
Ord, Ptr Framebuffer -> IO Framebuffer
Ptr Framebuffer -> Int -> IO Framebuffer
Ptr Framebuffer -> Int -> Framebuffer -> IO ()
Ptr Framebuffer -> Framebuffer -> IO ()
Framebuffer -> Int
(Framebuffer -> Int)
-> (Framebuffer -> Int)
-> (Ptr Framebuffer -> Int -> IO Framebuffer)
-> (Ptr Framebuffer -> Int -> Framebuffer -> IO ())
-> (forall b. Ptr b -> Int -> IO Framebuffer)
-> (forall b. Ptr b -> Int -> Framebuffer -> IO ())
-> (Ptr Framebuffer -> IO Framebuffer)
-> (Ptr Framebuffer -> Framebuffer -> IO ())
-> Storable Framebuffer
forall b. Ptr b -> Int -> IO Framebuffer
forall b. Ptr b -> Int -> Framebuffer -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: Framebuffer -> Int
sizeOf :: Framebuffer -> Int
$calignment :: Framebuffer -> Int
alignment :: Framebuffer -> Int
$cpeekElemOff :: Ptr Framebuffer -> Int -> IO Framebuffer
peekElemOff :: Ptr Framebuffer -> Int -> IO Framebuffer
$cpokeElemOff :: Ptr Framebuffer -> Int -> Framebuffer -> IO ()
pokeElemOff :: Ptr Framebuffer -> Int -> Framebuffer -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO Framebuffer
peekByteOff :: forall b. Ptr b -> Int -> IO Framebuffer
$cpokeByteOff :: forall b. Ptr b -> Int -> Framebuffer -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Framebuffer -> IO ()
$cpeek :: Ptr Framebuffer -> IO Framebuffer
peek :: Ptr Framebuffer -> IO Framebuffer
$cpoke :: Ptr Framebuffer -> Framebuffer -> IO ()
poke :: Ptr Framebuffer -> Framebuffer -> IO ()
Storable, Framebuffer
Framebuffer -> Zero Framebuffer
forall a. a -> Zero a
$czero :: Framebuffer
zero :: Framebuffer
Zero)
  deriving anyclass (Eq Framebuffer
Zero Framebuffer
(Eq Framebuffer, Zero Framebuffer) => IsHandle Framebuffer
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType Framebuffer where
  objectTypeAndHandle :: Framebuffer -> (ObjectType, Word64)
objectTypeAndHandle (Framebuffer Word64
h) = (ObjectType
OBJECT_TYPE_FRAMEBUFFER, Word64
h)
instance Show Framebuffer where
  showsPrec :: Int -> Framebuffer -> ShowS
showsPrec Int
p (Framebuffer Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"Framebuffer 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkRenderPass - Opaque handle to a render pass object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',
-- 'Vulkan.Core10.Pass.FramebufferCreateInfo',
-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',
-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',
-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI',
-- 'Vulkan.Core10.Pass.createRenderPass',
-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.createRenderPass2',
-- 'Vulkan.Extensions.VK_KHR_create_renderpass2.createRenderPass2KHR',
-- 'Vulkan.Core10.Pass.destroyRenderPass',
-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',
-- 'Vulkan.Core10.Pass.getRenderAreaGranularity'
newtype RenderPass = RenderPass Word64
  deriving newtype (RenderPass -> RenderPass -> Bool
(RenderPass -> RenderPass -> Bool)
-> (RenderPass -> RenderPass -> Bool) -> Eq RenderPass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RenderPass -> RenderPass -> Bool
== :: RenderPass -> RenderPass -> Bool
$c/= :: RenderPass -> RenderPass -> Bool
/= :: RenderPass -> RenderPass -> Bool
Eq, Eq RenderPass
Eq RenderPass =>
(RenderPass -> RenderPass -> Ordering)
-> (RenderPass -> RenderPass -> Bool)
-> (RenderPass -> RenderPass -> Bool)
-> (RenderPass -> RenderPass -> Bool)
-> (RenderPass -> RenderPass -> Bool)
-> (RenderPass -> RenderPass -> RenderPass)
-> (RenderPass -> RenderPass -> RenderPass)
-> Ord RenderPass
RenderPass -> RenderPass -> Bool
RenderPass -> RenderPass -> Ordering
RenderPass -> RenderPass -> RenderPass
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: RenderPass -> RenderPass -> Ordering
compare :: RenderPass -> RenderPass -> Ordering
$c< :: RenderPass -> RenderPass -> Bool
< :: RenderPass -> RenderPass -> Bool
$c<= :: RenderPass -> RenderPass -> Bool
<= :: RenderPass -> RenderPass -> Bool
$c> :: RenderPass -> RenderPass -> Bool
> :: RenderPass -> RenderPass -> Bool
$c>= :: RenderPass -> RenderPass -> Bool
>= :: RenderPass -> RenderPass -> Bool
$cmax :: RenderPass -> RenderPass -> RenderPass
max :: RenderPass -> RenderPass -> RenderPass
$cmin :: RenderPass -> RenderPass -> RenderPass
min :: RenderPass -> RenderPass -> RenderPass
Ord, Ptr RenderPass -> IO RenderPass
Ptr RenderPass -> Int -> IO RenderPass
Ptr RenderPass -> Int -> RenderPass -> IO ()
Ptr RenderPass -> RenderPass -> IO ()
RenderPass -> Int
(RenderPass -> Int)
-> (RenderPass -> Int)
-> (Ptr RenderPass -> Int -> IO RenderPass)
-> (Ptr RenderPass -> Int -> RenderPass -> IO ())
-> (forall b. Ptr b -> Int -> IO RenderPass)
-> (forall b. Ptr b -> Int -> RenderPass -> IO ())
-> (Ptr RenderPass -> IO RenderPass)
-> (Ptr RenderPass -> RenderPass -> IO ())
-> Storable RenderPass
forall b. Ptr b -> Int -> IO RenderPass
forall b. Ptr b -> Int -> RenderPass -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: RenderPass -> Int
sizeOf :: RenderPass -> Int
$calignment :: RenderPass -> Int
alignment :: RenderPass -> Int
$cpeekElemOff :: Ptr RenderPass -> Int -> IO RenderPass
peekElemOff :: Ptr RenderPass -> Int -> IO RenderPass
$cpokeElemOff :: Ptr RenderPass -> Int -> RenderPass -> IO ()
pokeElemOff :: Ptr RenderPass -> Int -> RenderPass -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO RenderPass
peekByteOff :: forall b. Ptr b -> Int -> IO RenderPass
$cpokeByteOff :: forall b. Ptr b -> Int -> RenderPass -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> RenderPass -> IO ()
$cpeek :: Ptr RenderPass -> IO RenderPass
peek :: Ptr RenderPass -> IO RenderPass
$cpoke :: Ptr RenderPass -> RenderPass -> IO ()
poke :: Ptr RenderPass -> RenderPass -> IO ()
Storable, RenderPass
RenderPass -> Zero RenderPass
forall a. a -> Zero a
$czero :: RenderPass
zero :: RenderPass
Zero)
  deriving anyclass (Eq RenderPass
Zero RenderPass
(Eq RenderPass, Zero RenderPass) => IsHandle RenderPass
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType RenderPass where
  objectTypeAndHandle :: RenderPass -> (ObjectType, Word64)
objectTypeAndHandle (RenderPass Word64
h) = (ObjectType
OBJECT_TYPE_RENDER_PASS, Word64
h)
instance Show RenderPass where
  showsPrec :: Int -> RenderPass -> ShowS
showsPrec Int
p (RenderPass Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"RenderPass 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)


-- | VkPipelineCache - Opaque handle to a pipeline cache object
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'Vulkan.Core10.Pipeline.createComputePipelines',
-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX',
-- 'Vulkan.Core10.Pipeline.createGraphicsPipelines',
-- 'Vulkan.Core10.PipelineCache.createPipelineCache',
-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR',
-- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV',
-- 'Vulkan.Core10.PipelineCache.destroyPipelineCache',
-- 'Vulkan.Core10.PipelineCache.getPipelineCacheData',
-- 'Vulkan.Core10.PipelineCache.mergePipelineCaches'
newtype PipelineCache = PipelineCache Word64
  deriving newtype (PipelineCache -> PipelineCache -> Bool
(PipelineCache -> PipelineCache -> Bool)
-> (PipelineCache -> PipelineCache -> Bool) -> Eq PipelineCache
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PipelineCache -> PipelineCache -> Bool
== :: PipelineCache -> PipelineCache -> Bool
$c/= :: PipelineCache -> PipelineCache -> Bool
/= :: PipelineCache -> PipelineCache -> Bool
Eq, Eq PipelineCache
Eq PipelineCache =>
(PipelineCache -> PipelineCache -> Ordering)
-> (PipelineCache -> PipelineCache -> Bool)
-> (PipelineCache -> PipelineCache -> Bool)
-> (PipelineCache -> PipelineCache -> Bool)
-> (PipelineCache -> PipelineCache -> Bool)
-> (PipelineCache -> PipelineCache -> PipelineCache)
-> (PipelineCache -> PipelineCache -> PipelineCache)
-> Ord PipelineCache
PipelineCache -> PipelineCache -> Bool
PipelineCache -> PipelineCache -> Ordering
PipelineCache -> PipelineCache -> PipelineCache
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PipelineCache -> PipelineCache -> Ordering
compare :: PipelineCache -> PipelineCache -> Ordering
$c< :: PipelineCache -> PipelineCache -> Bool
< :: PipelineCache -> PipelineCache -> Bool
$c<= :: PipelineCache -> PipelineCache -> Bool
<= :: PipelineCache -> PipelineCache -> Bool
$c> :: PipelineCache -> PipelineCache -> Bool
> :: PipelineCache -> PipelineCache -> Bool
$c>= :: PipelineCache -> PipelineCache -> Bool
>= :: PipelineCache -> PipelineCache -> Bool
$cmax :: PipelineCache -> PipelineCache -> PipelineCache
max :: PipelineCache -> PipelineCache -> PipelineCache
$cmin :: PipelineCache -> PipelineCache -> PipelineCache
min :: PipelineCache -> PipelineCache -> PipelineCache
Ord, Ptr PipelineCache -> IO PipelineCache
Ptr PipelineCache -> Int -> IO PipelineCache
Ptr PipelineCache -> Int -> PipelineCache -> IO ()
Ptr PipelineCache -> PipelineCache -> IO ()
PipelineCache -> Int
(PipelineCache -> Int)
-> (PipelineCache -> Int)
-> (Ptr PipelineCache -> Int -> IO PipelineCache)
-> (Ptr PipelineCache -> Int -> PipelineCache -> IO ())
-> (forall b. Ptr b -> Int -> IO PipelineCache)
-> (forall b. Ptr b -> Int -> PipelineCache -> IO ())
-> (Ptr PipelineCache -> IO PipelineCache)
-> (Ptr PipelineCache -> PipelineCache -> IO ())
-> Storable PipelineCache
forall b. Ptr b -> Int -> IO PipelineCache
forall b. Ptr b -> Int -> PipelineCache -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: PipelineCache -> Int
sizeOf :: PipelineCache -> Int
$calignment :: PipelineCache -> Int
alignment :: PipelineCache -> Int
$cpeekElemOff :: Ptr PipelineCache -> Int -> IO PipelineCache
peekElemOff :: Ptr PipelineCache -> Int -> IO PipelineCache
$cpokeElemOff :: Ptr PipelineCache -> Int -> PipelineCache -> IO ()
pokeElemOff :: Ptr PipelineCache -> Int -> PipelineCache -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PipelineCache
peekByteOff :: forall b. Ptr b -> Int -> IO PipelineCache
$cpokeByteOff :: forall b. Ptr b -> Int -> PipelineCache -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> PipelineCache -> IO ()
$cpeek :: Ptr PipelineCache -> IO PipelineCache
peek :: Ptr PipelineCache -> IO PipelineCache
$cpoke :: Ptr PipelineCache -> PipelineCache -> IO ()
poke :: Ptr PipelineCache -> PipelineCache -> IO ()
Storable, PipelineCache
PipelineCache -> Zero PipelineCache
forall a. a -> Zero a
$czero :: PipelineCache
zero :: PipelineCache
Zero)
  deriving anyclass (Eq PipelineCache
Zero PipelineCache
(Eq PipelineCache, Zero PipelineCache) => IsHandle PipelineCache
forall a. (Eq a, Zero a) => IsHandle a
IsHandle)
instance HasObjectType PipelineCache where
  objectTypeAndHandle :: PipelineCache -> (ObjectType, Word64)
objectTypeAndHandle (PipelineCache Word64
h) = (ObjectType
OBJECT_TYPE_PIPELINE_CACHE, Word64
h)
instance Show PipelineCache where
  showsPrec :: Int -> PipelineCache -> ShowS
showsPrec Int
p (PipelineCache Word64
x) = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"PipelineCache 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)