{-# language CPP #-}
module Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 ( getPhysicalDeviceFeatures2
, getPhysicalDeviceProperties2
, getPhysicalDeviceFormatProperties2
, getPhysicalDeviceImageFormatProperties2
, getPhysicalDeviceQueueFamilyProperties2
, getPhysicalDeviceMemoryProperties2
, getPhysicalDeviceSparseImageFormatProperties2
, PhysicalDeviceFeatures2(..)
, PhysicalDeviceProperties2(..)
, FormatProperties2(..)
, ImageFormatProperties2(..)
, PhysicalDeviceImageFormatInfo2(..)
, QueueFamilyProperties2(..)
, PhysicalDeviceMemoryProperties2(..)
, SparseImageFormatProperties2(..)
, PhysicalDeviceSparseImageFormatInfo2(..)
, StructureType(..)
) where
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.Type.Equality ((:~:)(Refl))
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.NamedType ((:::))
import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferUsageANDROID)
import Vulkan.CStruct.Extends (Chain)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesList2EXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesListEXT)
import Vulkan.CStruct.Extends (Extends)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.CStruct.Extends (Extensible(..))
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalImageFormatProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (FilterCubicImageViewImageFormatPropertiesEXT)
import Vulkan.Core10.Enums.Format (Format)
import Vulkan.Core10.Enums.Format (Format(..))
import Vulkan.Core10.DeviceInitialization (FormatProperties)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT)
import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo)
import Vulkan.Core10.DeviceInitialization (ImageFormatProperties)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo)
import Vulkan.Core10.Enums.ImageTiling (ImageTiling)
import Vulkan.Core10.Enums.ImageType (ImageType)
import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceFeatures2))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceFormatProperties2))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceImageFormatProperties2))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceMemoryProperties2))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceProperties2))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceQueueFamilyProperties2))
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSparseImageFormatProperties2))
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV)
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_4444_formats (PhysicalDevice4444FormatsFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage (PhysicalDevice8BitStorageFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (PhysicalDeviceDepthStencilResolveProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_displacement_micromap (PhysicalDeviceDisplacementMicromapFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_displacement_micromap (PhysicalDeviceDisplacementMicromapPropertiesNV)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT)
import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2PropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d (PhysicalDeviceImageSlicedViewOf3DFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_view_min_lod (PhysicalDeviceImageViewMinLodFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)
import Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (PhysicalDeviceMultiDrawPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas (PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryPropertiesKHR)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_library_group_handles (PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_protected_access (PhysicalDevicePipelineProtectedAccessFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_id (PhysicalDevicePresentIdFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_present_wait (PhysicalDevicePresentWaitFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitive_topology_list_restart (PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_primitives_generated_query (PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PhysicalDevicePrivateDataFeatures)
import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rgba10x6_formats (PhysicalDeviceRGBA10X6FormatsFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access (PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (PhysicalDeviceRayTracingInvocationReorderPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2PropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PhysicalDeviceSampleLocationsPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (PhysicalDeviceSamplerFilterMinmaxProperties)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_shader_core_builtins (PhysicalDeviceShaderCoreBuiltinsFeaturesARM)
import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_shader_core_builtins (PhysicalDeviceShaderCoreBuiltinsPropertiesARM)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties (PhysicalDeviceShaderCorePropertiesAMD)
import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_shader_core_properties (PhysicalDeviceShaderCorePropertiesARM)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeatures)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PhysicalDeviceShaderModuleIdentifierPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (PhysicalDeviceShaderObjectPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_tile_image (PhysicalDeviceShaderTileImageFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_tile_image (PhysicalDeviceShaderTileImagePropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV)
import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeatures)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (PhysicalDeviceSubpassMergeFeedbackFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingFeaturesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (PhysicalDeviceSubpassShadingPropertiesHUAWEI)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (PhysicalDeviceSwapchainMaintenance1FeaturesEXT)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (PhysicalDeviceSynchronization2Features)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (PhysicalDeviceTilePropertiesFeaturesQCOM)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreFeatures)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (PhysicalDeviceTimelineSemaphoreProperties)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)
import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties)
import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features)
import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties)
import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)
import Vulkan.Core10.Handles (PhysicalDevice_T)
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (QueueFamilyCheckpointProperties2NV)
import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (QueueFamilyCheckpointPropertiesNV)
import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (QueueFamilyGlobalPriorityPropertiesKHR)
import Vulkan.Core10.DeviceInitialization (QueueFamilyProperties)
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)
import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionImageFormatProperties)
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.SparseResourceMemoryManagement (SparseImageFormatProperties)
import Vulkan.Core10.Enums.StructureType (StructureType)
import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (SubpassResolvePerformanceQueryEXT)
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FORMAT_PROPERTIES_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Core10.Enums.StructureType (StructureType(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceFeatures2
:: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceFeatures2) -> IO ()) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceFeatures2) -> IO ()
getPhysicalDeviceFeatures2 :: forall a io
. ( Extendss PhysicalDeviceFeatures2 a
, PokeChain a
, PeekChain a
, MonadIO io )
=>
PhysicalDevice
-> io (PhysicalDeviceFeatures2 a)
getPhysicalDeviceFeatures2 :: forall (a :: [*]) (io :: * -> *).
(Extendss PhysicalDeviceFeatures2 a, PokeChain a, PeekChain a,
MonadIO io) =>
PhysicalDevice -> io (PhysicalDeviceFeatures2 a)
getPhysicalDeviceFeatures2 PhysicalDevice
physicalDevice = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceFeatures2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ())
vkGetPhysicalDeviceFeatures2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ())
pVkGetPhysicalDeviceFeatures2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds :: InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ())
vkGetPhysicalDeviceFeatures2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceFeatures2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceFeatures2' :: Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ()
vkGetPhysicalDeviceFeatures2' = FunPtr
(Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ())
-> Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ()
mkVkGetPhysicalDeviceFeatures2 FunPtr
(Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ())
vkGetPhysicalDeviceFeatures2Ptr
Ptr (PhysicalDeviceFeatures2 a)
pPFeatures <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @(PhysicalDeviceFeatures2 _))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceFeatures2" (Ptr PhysicalDevice_T
-> ("pFeatures" ::: Ptr (SomeStruct PhysicalDeviceFeatures2))
-> IO ()
vkGetPhysicalDeviceFeatures2'
(PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice))
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (PhysicalDeviceFeatures2 a)
pPFeatures)))
PhysicalDeviceFeatures2 a
pFeatures <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(PhysicalDeviceFeatures2 _) Ptr (PhysicalDeviceFeatures2 a)
pPFeatures
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (PhysicalDeviceFeatures2 a
pFeatures)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceProperties2
:: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceProperties2) -> IO ()) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceProperties2) -> IO ()
getPhysicalDeviceProperties2 :: forall a io
. ( Extendss PhysicalDeviceProperties2 a
, PokeChain a
, PeekChain a
, MonadIO io )
=>
PhysicalDevice
-> io (PhysicalDeviceProperties2 a)
getPhysicalDeviceProperties2 :: forall (a :: [*]) (io :: * -> *).
(Extendss PhysicalDeviceProperties2 a, PokeChain a, PeekChain a,
MonadIO io) =>
PhysicalDevice -> io (PhysicalDeviceProperties2 a)
getPhysicalDeviceProperties2 PhysicalDevice
physicalDevice = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceProperties2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ())
vkGetPhysicalDeviceProperties2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ())
pVkGetPhysicalDeviceProperties2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ())
vkGetPhysicalDeviceProperties2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceProperties2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceProperties2' :: Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ()
vkGetPhysicalDeviceProperties2' = FunPtr
(Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ())
-> Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ()
mkVkGetPhysicalDeviceProperties2 FunPtr
(Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ())
vkGetPhysicalDeviceProperties2Ptr
Ptr (PhysicalDeviceProperties2 a)
pPProperties <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @(PhysicalDeviceProperties2 _))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceProperties2" (Ptr PhysicalDevice_T
-> ("pProperties" ::: Ptr (SomeStruct PhysicalDeviceProperties2))
-> IO ()
vkGetPhysicalDeviceProperties2'
(PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice))
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (PhysicalDeviceProperties2 a)
pPProperties)))
PhysicalDeviceProperties2 a
pProperties <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(PhysicalDeviceProperties2 _) Ptr (PhysicalDeviceProperties2 a)
pPProperties
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (PhysicalDeviceProperties2 a
pProperties)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceFormatProperties2
:: FunPtr (Ptr PhysicalDevice_T -> Format -> Ptr (SomeStruct FormatProperties2) -> IO ()) -> Ptr PhysicalDevice_T -> Format -> Ptr (SomeStruct FormatProperties2) -> IO ()
getPhysicalDeviceFormatProperties2 :: forall a io
. ( Extendss FormatProperties2 a
, PokeChain a
, PeekChain a
, MonadIO io )
=>
PhysicalDevice
->
Format
-> io (FormatProperties2 a)
getPhysicalDeviceFormatProperties2 :: forall (a :: [*]) (io :: * -> *).
(Extendss FormatProperties2 a, PokeChain a, PeekChain a,
MonadIO io) =>
PhysicalDevice -> Format -> io (FormatProperties2 a)
getPhysicalDeviceFormatProperties2 PhysicalDevice
physicalDevice
Format
format = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceFormatProperties2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ())
vkGetPhysicalDeviceFormatProperties2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ())
pVkGetPhysicalDeviceFormatProperties2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ())
vkGetPhysicalDeviceFormatProperties2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceFormatProperties2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceFormatProperties2' :: Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ()
vkGetPhysicalDeviceFormatProperties2' = FunPtr
(Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ())
-> Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ()
mkVkGetPhysicalDeviceFormatProperties2 FunPtr
(Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ())
vkGetPhysicalDeviceFormatProperties2Ptr
Ptr (FormatProperties2 a)
pPFormatProperties <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @(FormatProperties2 _))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceFormatProperties2" (Ptr PhysicalDevice_T
-> Format
-> ("pFormatProperties" ::: Ptr (SomeStruct FormatProperties2))
-> IO ()
vkGetPhysicalDeviceFormatProperties2'
(PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice))
(Format
format)
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (FormatProperties2 a)
pPFormatProperties)))
FormatProperties2 a
pFormatProperties <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(FormatProperties2 _) Ptr (FormatProperties2 a)
pPFormatProperties
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (FormatProperties2 a
pFormatProperties)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceImageFormatProperties2
:: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceImageFormatInfo2) -> Ptr (SomeStruct ImageFormatProperties2) -> IO Result) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceImageFormatInfo2) -> Ptr (SomeStruct ImageFormatProperties2) -> IO Result
getPhysicalDeviceImageFormatProperties2 :: forall a b io
. ( Extendss PhysicalDeviceImageFormatInfo2 a
, PokeChain a
, Extendss ImageFormatProperties2 b
, PokeChain b
, PeekChain b
, MonadIO io )
=>
PhysicalDevice
->
(PhysicalDeviceImageFormatInfo2 a)
-> io (ImageFormatProperties2 b)
getPhysicalDeviceImageFormatProperties2 :: forall (a :: [*]) (b :: [*]) (io :: * -> *).
(Extendss PhysicalDeviceImageFormatInfo2 a, PokeChain a,
Extendss ImageFormatProperties2 b, PokeChain b, PeekChain b,
MonadIO io) =>
PhysicalDevice
-> PhysicalDeviceImageFormatInfo2 a
-> io (ImageFormatProperties2 b)
getPhysicalDeviceImageFormatProperties2 PhysicalDevice
physicalDevice
PhysicalDeviceImageFormatInfo2 a
imageFormatInfo = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceImageFormatProperties2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result)
vkGetPhysicalDeviceImageFormatProperties2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result)
pVkGetPhysicalDeviceImageFormatProperties2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result)
vkGetPhysicalDeviceImageFormatProperties2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceImageFormatProperties2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceImageFormatProperties2' :: Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result
vkGetPhysicalDeviceImageFormatProperties2' = FunPtr
(Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result)
-> Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result
mkVkGetPhysicalDeviceImageFormatProperties2 FunPtr
(Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result)
vkGetPhysicalDeviceImageFormatProperties2Ptr
Ptr (PhysicalDeviceImageFormatInfo2 a)
pImageFormatInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (PhysicalDeviceImageFormatInfo2 a
imageFormatInfo)
Ptr (ImageFormatProperties2 b)
pPImageFormatProperties <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @(ImageFormatProperties2 _))
Result
r <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceImageFormatProperties2" (Ptr PhysicalDevice_T
-> ("pImageFormatInfo"
::: Ptr (SomeStruct PhysicalDeviceImageFormatInfo2))
-> ("pImageFormatProperties"
::: Ptr (SomeStruct ImageFormatProperties2))
-> IO Result
vkGetPhysicalDeviceImageFormatProperties2'
(PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice))
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions Ptr (PhysicalDeviceImageFormatInfo2 a)
pImageFormatInfo)
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (ImageFormatProperties2 b)
pPImageFormatProperties)))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
ImageFormatProperties2 b
pImageFormatProperties <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(ImageFormatProperties2 _) Ptr (ImageFormatProperties2 b)
pPImageFormatProperties
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (ImageFormatProperties2 b
pImageFormatProperties)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceQueueFamilyProperties2
:: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr (SomeStruct QueueFamilyProperties2) -> IO ()) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr (SomeStruct QueueFamilyProperties2) -> IO ()
getPhysicalDeviceQueueFamilyProperties2 :: forall a io
. ( Extendss QueueFamilyProperties2 a
, PokeChain a
, PeekChain a
, MonadIO io )
=>
PhysicalDevice
-> io (("queueFamilyProperties" ::: Vector (QueueFamilyProperties2 a)))
getPhysicalDeviceQueueFamilyProperties2 :: forall (a :: [*]) (io :: * -> *).
(Extendss QueueFamilyProperties2 a, PokeChain a, PeekChain a,
MonadIO io) =>
PhysicalDevice
-> io
("queueFamilyProperties" ::: Vector (QueueFamilyProperties2 a))
getPhysicalDeviceQueueFamilyProperties2 PhysicalDevice
physicalDevice = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceQueueFamilyProperties2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ())
vkGetPhysicalDeviceQueueFamilyProperties2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ())
pVkGetPhysicalDeviceQueueFamilyProperties2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ())
vkGetPhysicalDeviceQueueFamilyProperties2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceQueueFamilyProperties2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceQueueFamilyProperties2' :: Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ()
vkGetPhysicalDeviceQueueFamilyProperties2' = FunPtr
(Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ())
-> Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ()
mkVkGetPhysicalDeviceQueueFamilyProperties2 FunPtr
(Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ())
vkGetPhysicalDeviceQueueFamilyProperties2Ptr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
"pQueueFamilyPropertyCount" ::: Ptr Word32
pPQueueFamilyPropertyCount <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) forall a. Ptr a -> IO ()
free
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceQueueFamilyProperties2" (Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ()
vkGetPhysicalDeviceQueueFamilyProperties2'
Ptr PhysicalDevice_T
physicalDevice'
("pQueueFamilyPropertyCount" ::: Ptr Word32
pPQueueFamilyPropertyCount)
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (forall a. Ptr a
nullPtr)))
Word32
pQueueFamilyPropertyCount <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 "pQueueFamilyPropertyCount" ::: Ptr Word32
pPQueueFamilyPropertyCount
Ptr (QueueFamilyProperties2 a)
pPQueueFamilyProperties <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @(QueueFamilyProperties2 _) ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pQueueFamilyPropertyCount)) forall a. Num a => a -> a -> a
* Int
40)) forall a. Ptr a -> IO ()
free
[()]
_ <- forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
traverse (\Int
i -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr (QueueFamilyProperties2 a)
pPQueueFamilyProperties forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i forall a. Num a => a -> a -> a
* Int
40) :: Ptr (QueueFamilyProperties2 _)) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())) [Int
0..(forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pQueueFamilyPropertyCount)) forall a. Num a => a -> a -> a
- Int
1]
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceQueueFamilyProperties2" (Ptr PhysicalDevice_T
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pQueueFamilyProperties"
::: Ptr (SomeStruct QueueFamilyProperties2))
-> IO ()
vkGetPhysicalDeviceQueueFamilyProperties2'
Ptr PhysicalDevice_T
physicalDevice'
("pQueueFamilyPropertyCount" ::: Ptr Word32
pPQueueFamilyPropertyCount)
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions ((Ptr (QueueFamilyProperties2 a)
pPQueueFamilyProperties))))
Word32
pQueueFamilyPropertyCount' <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 "pQueueFamilyPropertyCount" ::: Ptr Word32
pPQueueFamilyPropertyCount
"queueFamilyProperties" ::: Vector (QueueFamilyProperties2 a)
pQueueFamilyProperties' <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pQueueFamilyPropertyCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(QueueFamilyProperties2 _) (((Ptr (QueueFamilyProperties2 a)
pPQueueFamilyProperties) forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
40 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (QueueFamilyProperties2 _))))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ ("queueFamilyProperties" ::: Vector (QueueFamilyProperties2 a)
pQueueFamilyProperties')
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceMemoryProperties2
:: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceMemoryProperties2) -> IO ()) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceMemoryProperties2) -> IO ()
getPhysicalDeviceMemoryProperties2 :: forall a io
. ( Extendss PhysicalDeviceMemoryProperties2 a
, PokeChain a
, PeekChain a
, MonadIO io )
=>
PhysicalDevice
-> io (PhysicalDeviceMemoryProperties2 a)
getPhysicalDeviceMemoryProperties2 :: forall (a :: [*]) (io :: * -> *).
(Extendss PhysicalDeviceMemoryProperties2 a, PokeChain a,
PeekChain a, MonadIO io) =>
PhysicalDevice -> io (PhysicalDeviceMemoryProperties2 a)
getPhysicalDeviceMemoryProperties2 PhysicalDevice
physicalDevice = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceMemoryProperties2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ())
vkGetPhysicalDeviceMemoryProperties2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ())
pVkGetPhysicalDeviceMemoryProperties2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ())
vkGetPhysicalDeviceMemoryProperties2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceMemoryProperties2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceMemoryProperties2' :: Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ()
vkGetPhysicalDeviceMemoryProperties2' = FunPtr
(Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ())
-> Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ()
mkVkGetPhysicalDeviceMemoryProperties2 FunPtr
(Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ())
vkGetPhysicalDeviceMemoryProperties2Ptr
Ptr (PhysicalDeviceMemoryProperties2 a)
pPMemoryProperties <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @(PhysicalDeviceMemoryProperties2 _))
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceMemoryProperties2" (Ptr PhysicalDevice_T
-> ("pMemoryProperties"
::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2))
-> IO ()
vkGetPhysicalDeviceMemoryProperties2'
(PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice))
(forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (PhysicalDeviceMemoryProperties2 a)
pPMemoryProperties)))
PhysicalDeviceMemoryProperties2 a
pMemoryProperties <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @(PhysicalDeviceMemoryProperties2 _) Ptr (PhysicalDeviceMemoryProperties2 a)
pPMemoryProperties
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ (PhysicalDeviceMemoryProperties2 a
pMemoryProperties)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceSparseImageFormatProperties2
:: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceSparseImageFormatInfo2 -> Ptr Word32 -> Ptr SparseImageFormatProperties2 -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceSparseImageFormatInfo2 -> Ptr Word32 -> Ptr SparseImageFormatProperties2 -> IO ()
getPhysicalDeviceSparseImageFormatProperties2 :: forall io
. (MonadIO io)
=>
PhysicalDevice
->
PhysicalDeviceSparseImageFormatInfo2
-> io (("properties" ::: Vector SparseImageFormatProperties2))
getPhysicalDeviceSparseImageFormatProperties2 :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> PhysicalDeviceSparseImageFormatInfo2
-> io ("properties" ::: Vector SparseImageFormatProperties2)
getPhysicalDeviceSparseImageFormatProperties2 PhysicalDevice
physicalDevice
PhysicalDeviceSparseImageFormatInfo2
formatInfo = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceSparseImageFormatProperties2Ptr :: FunPtr
(Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ())
vkGetPhysicalDeviceSparseImageFormatProperties2Ptr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ())
pVkGetPhysicalDeviceSparseImageFormatProperties2 (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ())
vkGetPhysicalDeviceSparseImageFormatProperties2Ptr forall a. Eq a => a -> a -> Bool
/= forall a. FunPtr a
nullFunPtr) forall a b. (a -> b) -> a -> b
$
forall e a. Exception e => e -> IO a
throwIO forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetPhysicalDeviceSparseImageFormatProperties2 is null" forall a. Maybe a
Nothing forall a. Maybe a
Nothing
let vkGetPhysicalDeviceSparseImageFormatProperties2' :: Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ()
vkGetPhysicalDeviceSparseImageFormatProperties2' = FunPtr
(Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ())
-> Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ()
mkVkGetPhysicalDeviceSparseImageFormatProperties2 FunPtr
(Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ())
vkGetPhysicalDeviceSparseImageFormatProperties2Ptr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
"pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
pFormatInfo <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
withCStruct (PhysicalDeviceSparseImageFormatInfo2
formatInfo)
"pQueueFamilyPropertyCount" ::: Ptr Word32
pPPropertyCount <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) forall a. Ptr a -> IO ()
free
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceSparseImageFormatProperties2" (Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ()
vkGetPhysicalDeviceSparseImageFormatProperties2'
Ptr PhysicalDevice_T
physicalDevice'
"pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
pFormatInfo
("pQueueFamilyPropertyCount" ::: Ptr Word32
pPPropertyCount)
(forall a. Ptr a
nullPtr))
Word32
pPropertyCount <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 "pQueueFamilyPropertyCount" ::: Ptr Word32
pPPropertyCount
"pProperties" ::: Ptr SparseImageFormatProperties2
pPProperties <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @SparseImageFormatProperties2 ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pPropertyCount)) forall a. Num a => a -> a -> a
* Int
40)) forall a. Ptr a -> IO ()
free
[()]
_ <- forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
traverse (\Int
i -> forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct ("pProperties" ::: Ptr SparseImageFormatProperties2
pPProperties forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i forall a. Num a => a -> a -> a
* Int
40) :: Ptr SparseImageFormatProperties2) forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a b. (a -> b) -> a -> b
$ ())) [Int
0..(forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pPropertyCount)) forall a. Num a => a -> a -> a
- Int
1]
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceSparseImageFormatProperties2" (Ptr PhysicalDevice_T
-> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> ("pQueueFamilyPropertyCount" ::: Ptr Word32)
-> ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO ()
vkGetPhysicalDeviceSparseImageFormatProperties2'
Ptr PhysicalDevice_T
physicalDevice'
"pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
pFormatInfo
("pQueueFamilyPropertyCount" ::: Ptr Word32
pPPropertyCount)
(("pProperties" ::: Ptr SparseImageFormatProperties2
pPProperties)))
Word32
pPropertyCount' <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 "pQueueFamilyPropertyCount" ::: Ptr Word32
pPPropertyCount
"properties" ::: Vector SparseImageFormatProperties2
pProperties' <- forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pPropertyCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @SparseImageFormatProperties2 ((("pProperties" ::: Ptr SparseImageFormatProperties2
pPProperties) forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
40 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr SparseImageFormatProperties2)))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ ("properties" ::: Vector SparseImageFormatProperties2
pProperties')
data PhysicalDeviceFeatures2 (es :: [Type]) = PhysicalDeviceFeatures2
{
forall (es :: [*]). PhysicalDeviceFeatures2 es -> Chain es
next :: Chain es
,
forall (es :: [*]).
PhysicalDeviceFeatures2 es -> PhysicalDeviceFeatures
features :: PhysicalDeviceFeatures
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFeatures2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (PhysicalDeviceFeatures2 es)
instance Extensible PhysicalDeviceFeatures2 where
extensibleTypeName :: String
extensibleTypeName = String
"PhysicalDeviceFeatures2"
setNext :: forall (ds :: [*]) (es :: [*]).
PhysicalDeviceFeatures2 ds
-> Chain es -> PhysicalDeviceFeatures2 es
setNext PhysicalDeviceFeatures2{Chain ds
PhysicalDeviceFeatures
features :: PhysicalDeviceFeatures
next :: Chain ds
$sel:features:PhysicalDeviceFeatures2 :: forall (es :: [*]).
PhysicalDeviceFeatures2 es -> PhysicalDeviceFeatures
$sel:next:PhysicalDeviceFeatures2 :: forall (es :: [*]). PhysicalDeviceFeatures2 es -> Chain es
..} Chain es
next' = PhysicalDeviceFeatures2{$sel:next:PhysicalDeviceFeatures2 :: Chain es
next = Chain es
next', PhysicalDeviceFeatures
features :: PhysicalDeviceFeatures
$sel:features:PhysicalDeviceFeatures2 :: PhysicalDeviceFeatures
..}
getNext :: forall (es :: [*]). PhysicalDeviceFeatures2 es -> Chain es
getNext PhysicalDeviceFeatures2{Chain es
PhysicalDeviceFeatures
features :: PhysicalDeviceFeatures
next :: Chain es
$sel:features:PhysicalDeviceFeatures2 :: forall (es :: [*]).
PhysicalDeviceFeatures2 es -> PhysicalDeviceFeatures
$sel:next:PhysicalDeviceFeatures2 :: forall (es :: [*]). PhysicalDeviceFeatures2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b
extends proxy e
_ Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderTileImageFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderTileImageFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderObjectFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderObjectFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRayTracingInvocationReorderFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSwapchainMaintenance1FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderCoreBuiltinsFeaturesARM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFaultFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFaultFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceOpticalFlowFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceOpticalFlowFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceAddressBindingReportFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceAddressBindingReportFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDepthClampZeroOneFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDepthClampZeroOneFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceAmigoProfilingFeaturesSEC
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceAmigoProfilingFeaturesSEC = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceTilePropertiesFeaturesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTilePropertiesFeaturesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImageProcessingFeaturesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageProcessingFeaturesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePipelineRobustnessFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelineRobustnessFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePipelinePropertiesFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelinePropertiesFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDisplacementMicromapFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDisplacementMicromapFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceOpacityMicromapFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceOpacityMicromapFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImageCompressionControlFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderModuleIdentifierFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceLinearColorAttachmentFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImageViewMinLodFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDynamicRenderingFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDynamicRenderingFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRGBA10X6FormatsFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRGBA10X6FormatsFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRayTracingMotionBlurFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingMotionBlurFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShaderBarycentricFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderIntegerDotProductFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderIntegerDotProductFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDescriptorBufferFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDescriptorBufferFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceProvokingVertexFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceInheritedViewportScissorFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePipelineProtectedAccessFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelineProtectedAccessFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceLegacyDitheringFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSynchronization2Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSynchronization2Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceColorWriteEnableFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceExternalMemoryRDMAFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVertexInputDynamicStateFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDepthClipControlFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMutableDescriptorTypeFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImage2DViewOf3DFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderTerminateInvocationFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentShadingRateFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSubpassShadingFeaturesHUAWEI
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevice4444FormatsFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevice4444FormatsFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePortabilitySubsetFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImageRobustnessFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageRobustnessFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRobustness2FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRobustness2FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDiagnosticsConfigFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceExtendedDynamicState3FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExtendedDynamicState3FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceExtendedDynamicState2FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceExtendedDynamicStateFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceBorderColorSwizzleFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceCustomBorderColorFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceCoherentMemoryFeaturesAMD
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVulkan13Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkan13Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVulkan12Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkan12Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVulkan11Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkan11Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePipelineCreationCacheControlFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelineCreationCacheControlFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceLineRasterizationFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceLineRasterizationFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSubgroupSizeControlFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSubgroupSizeControlFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceTexelBufferAlignmentFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTexelBufferAlignmentFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderDemoteToHelperInvocationFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderDemoteToHelperInvocationFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSeparateDepthStencilLayoutsFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSeparateDepthStencilLayoutsFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentShaderInterlockFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShaderInterlockFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderSMBuiltinsFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderSMBuiltinsFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceIndexTypeUint8FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceIndexTypeUint8FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderClockFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderClockFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceCoverageReductionModeFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCoverageReductionModeFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePerformanceQueryFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePresentBarrierFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePresentBarrierFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceYcbcrImageArraysFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceCooperativeMatrixFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceTextureCompressionASTCHDRFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceImagelessFramebufferFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImagelessFramebufferFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceBufferDeviceAddressFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceBufferDeviceAddressFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceBufferDeviceAddressFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceBufferDeviceAddressFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMemoryPriorityFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMemoryPriorityFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDepthClipEnableFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDepthClipEnableFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceUniformBufferStandardLayoutFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceUniformBufferStandardLayoutFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceScalarBlockLayoutFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceScalarBlockLayoutFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentDensityMap2FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceFragmentDensityMapFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRayTracingMaintenance1FeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingMaintenance1FeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRayQueryFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayQueryFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRayTracingPipelineFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingPipelineFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceAccelerationStructureFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceAccelerationStructureFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMeshShaderFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMeshShaderFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMeshShaderFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMeshShaderFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceInvocationMaskFeaturesHUAWEI
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceInvocationMaskFeaturesHUAWEI = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShadingRateImageFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShadingRateImageFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMemoryDecompressionFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMemoryDecompressionFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceCopyMemoryIndirectFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCopyMemoryIndirectFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderImageFootprintFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderImageFootprintFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceComputeShaderDerivativesFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceComputeShaderDerivativesFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceCornerSampledImageFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCornerSampledImageFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceExclusiveScissorFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExclusiveScissorFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceRepresentativeFragmentTestFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceTransformFeedbackFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceASTCDecodeFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVertexAttributeDivisorFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderAtomicFloat2FeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderAtomicFloatFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderAtomicInt64Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderAtomicInt64Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVulkanMemoryModelFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceConditionalRenderingFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceConditionalRenderingFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevice8BitStorageFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevice8BitStorageFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceTimelineSemaphoreFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTimelineSemaphoreFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDescriptorIndexingFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDescriptorIndexingFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDeviceMemoryReportFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDeviceMemoryReportFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceGlobalPriorityQueryFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceGlobalPriorityQueryFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceHostQueryResetFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceHostQueryResetFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderFloat16Int8Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderFloat16Int8Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderDrawParametersFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderDrawParametersFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMaintenance4Features
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMaintenance4Features = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceInlineUniformBlockFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceInlineUniformBlockFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMultiDrawFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceBlendOperationAdvancedFeaturesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceBlendOperationAdvancedFeaturesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceProtectedMemoryFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceProtectedMemoryFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceSamplerYcbcrConversionFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSamplerYcbcrConversionFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceShaderSubgroupExtendedTypesFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderSubgroupExtendedTypesFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevice16BitStorageFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevice16BitStorageFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePresentWaitFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePresentWaitFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePresentIdFeaturesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePresentIdFeaturesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceMultiviewFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiviewFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceVariablePointersFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVariablePointersFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDevicePrivateDataFeatures
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePrivateDataFeatures = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Just e :~: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceFeatures2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss PhysicalDeviceFeatures2 es
, PokeChain es ) => ToCStruct (PhysicalDeviceFeatures2 es) where
withCStruct :: forall b.
PhysicalDeviceFeatures2 es
-> (Ptr (PhysicalDeviceFeatures2 es) -> IO b) -> IO b
withCStruct PhysicalDeviceFeatures2 es
x Ptr (PhysicalDeviceFeatures2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
240 forall a b. (a -> b) -> a -> b
$ \Ptr (PhysicalDeviceFeatures2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceFeatures2 es)
p PhysicalDeviceFeatures2 es
x (Ptr (PhysicalDeviceFeatures2 es) -> IO b
f Ptr (PhysicalDeviceFeatures2 es)
p)
pokeCStruct :: forall b.
Ptr (PhysicalDeviceFeatures2 es)
-> PhysicalDeviceFeatures2 es -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceFeatures2 es)
p PhysicalDeviceFeatures2{Chain es
PhysicalDeviceFeatures
features :: PhysicalDeviceFeatures
next :: Chain es
$sel:features:PhysicalDeviceFeatures2 :: forall (es :: [*]).
PhysicalDeviceFeatures2 es -> PhysicalDeviceFeatures
$sel:next:PhysicalDeviceFeatures2 :: forall (es :: [*]). PhysicalDeviceFeatures2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceFeatures)) (PhysicalDeviceFeatures
features)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
240
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (PhysicalDeviceFeatures2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (PhysicalDeviceFeatures2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceFeatures)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss PhysicalDeviceFeatures2 es
, PeekChain es ) => FromCStruct (PhysicalDeviceFeatures2 es) where
peekCStruct :: Ptr (PhysicalDeviceFeatures2 es) -> IO (PhysicalDeviceFeatures2 es)
peekCStruct Ptr (PhysicalDeviceFeatures2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
PhysicalDeviceFeatures
features <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @PhysicalDeviceFeatures ((Ptr (PhysicalDeviceFeatures2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceFeatures))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es -> PhysicalDeviceFeatures -> PhysicalDeviceFeatures2 es
PhysicalDeviceFeatures2
Chain es
next PhysicalDeviceFeatures
features
instance es ~ '[] => Zero (PhysicalDeviceFeatures2 es) where
zero :: PhysicalDeviceFeatures2 es
zero = forall (es :: [*]).
Chain es -> PhysicalDeviceFeatures -> PhysicalDeviceFeatures2 es
PhysicalDeviceFeatures2
()
forall a. Zero a => a
zero
data PhysicalDeviceProperties2 (es :: [Type]) = PhysicalDeviceProperties2
{
forall (es :: [*]). PhysicalDeviceProperties2 es -> Chain es
next :: Chain es
,
forall (es :: [*]).
PhysicalDeviceProperties2 es -> PhysicalDeviceProperties
properties :: PhysicalDeviceProperties
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceProperties2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (PhysicalDeviceProperties2 es)
instance Extensible PhysicalDeviceProperties2 where
extensibleTypeName :: String
extensibleTypeName = String
"PhysicalDeviceProperties2"
setNext :: forall (ds :: [*]) (es :: [*]).
PhysicalDeviceProperties2 ds
-> Chain es -> PhysicalDeviceProperties2 es
setNext PhysicalDeviceProperties2{Chain ds
PhysicalDeviceProperties
properties :: PhysicalDeviceProperties
next :: Chain ds
$sel:properties:PhysicalDeviceProperties2 :: forall (es :: [*]).
PhysicalDeviceProperties2 es -> PhysicalDeviceProperties
$sel:next:PhysicalDeviceProperties2 :: forall (es :: [*]). PhysicalDeviceProperties2 es -> Chain es
..} Chain es
next' = PhysicalDeviceProperties2{$sel:next:PhysicalDeviceProperties2 :: Chain es
next = Chain es
next', PhysicalDeviceProperties
properties :: PhysicalDeviceProperties
$sel:properties:PhysicalDeviceProperties2 :: PhysicalDeviceProperties
..}
getNext :: forall (es :: [*]). PhysicalDeviceProperties2 es -> Chain es
getNext PhysicalDeviceProperties2{Chain es
PhysicalDeviceProperties
properties :: PhysicalDeviceProperties
next :: Chain es
$sel:properties:PhysicalDeviceProperties2 :: forall (es :: [*]).
PhysicalDeviceProperties2 es -> PhysicalDeviceProperties
$sel:next:PhysicalDeviceProperties2 :: forall (es :: [*]). PhysicalDeviceProperties2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b
extends proxy e
_ Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderTileImagePropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderTileImagePropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderObjectPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderObjectPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderCorePropertiesARM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderCorePropertiesARM = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceRayTracingInvocationReorderPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingInvocationReorderPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderCoreBuiltinsPropertiesARM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderCoreBuiltinsPropertiesARM = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceOpticalFlowPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceOpticalFlowPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceImageProcessingPropertiesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageProcessingPropertiesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDevicePipelineRobustnessPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePipelineRobustnessPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDisplacementMicromapPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDisplacementMicromapPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceOpacityMicromapPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceOpacityMicromapPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderModuleIdentifierPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderModuleIdentifierPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDrmPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDrmPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderIntegerDotProductProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderIntegerDotProductProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDescriptorBufferPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDescriptorBufferPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceProvokingVertexPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFragmentShadingRatePropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDevicePortabilitySubsetPropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceRobustness2PropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRobustness2PropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceExtendedDynamicState3PropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExtendedDynamicState3PropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceCustomBorderColorPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCustomBorderColorPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceVulkan13Properties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkan13Properties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceVulkan12Properties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkan12Properties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceVulkan11Properties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVulkan11Properties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceLineRasterizationPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceLineRasterizationPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceClusterCullingShaderPropertiesHUAWEI = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceSubpassShadingPropertiesHUAWEI
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSubpassShadingPropertiesHUAWEI = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceSubgroupSizeControlProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSubgroupSizeControlProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceTexelBufferAlignmentProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTexelBufferAlignmentProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderSMBuiltinsPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderSMBuiltinsPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDevicePerformanceQueryPropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePerformanceQueryPropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceCooperativeMatrixPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCooperativeMatrixPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFragmentDensityMap2PropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentDensityMap2PropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFragmentDensityMapPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFragmentDensityMapPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceRayTracingPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceRayTracingPipelinePropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceRayTracingPipelinePropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceAccelerationStructurePropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceAccelerationStructurePropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMeshShaderPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMeshShaderPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMeshShaderPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMeshShaderPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShadingRateImagePropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShadingRateImagePropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMemoryDecompressionPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMemoryDecompressionPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceCopyMemoryIndirectPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceCopyMemoryIndirectPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceTransformFeedbackPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTransformFeedbackPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDepthStencilResolveProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDepthStencilResolveProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDevicePCIBusInfoPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePCIBusInfoPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceVertexAttributeDivisorPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceVertexAttributeDivisorPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceTimelineSemaphoreProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceTimelineSemaphoreProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDescriptorIndexingProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDescriptorIndexingProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderCoreProperties2AMD
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderCoreProperties2AMD = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceShaderCorePropertiesAMD
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceShaderCorePropertiesAMD = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceConservativeRasterizationPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceConservativeRasterizationPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceExternalMemoryHostPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExternalMemoryHostPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceFloatControlsProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceFloatControlsProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMaintenance4Properties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMaintenance4Properties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMaintenance3Properties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMaintenance3Properties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceInlineUniformBlockProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceInlineUniformBlockProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceBlendOperationAdvancedPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceBlendOperationAdvancedPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceSampleLocationsPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSampleLocationsPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceSamplerFilterMinmaxProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSamplerFilterMinmaxProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceProtectedMemoryProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceProtectedMemoryProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDevicePointClippingProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePointClippingProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceSubgroupProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceSubgroupProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDiscardRectanglePropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDiscardRectanglePropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMultiviewProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiviewProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceIDProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceIDProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDriverProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDriverProperties = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDevicePushDescriptorPropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDevicePushDescriptorPropertiesKHR = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceMultiDrawPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMultiDrawPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Just e :~: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceProperties2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss PhysicalDeviceProperties2 es
, PokeChain es ) => ToCStruct (PhysicalDeviceProperties2 es) where
withCStruct :: forall b.
PhysicalDeviceProperties2 es
-> (Ptr (PhysicalDeviceProperties2 es) -> IO b) -> IO b
withCStruct PhysicalDeviceProperties2 es
x Ptr (PhysicalDeviceProperties2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
840 forall a b. (a -> b) -> a -> b
$ \Ptr (PhysicalDeviceProperties2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceProperties2 es)
p PhysicalDeviceProperties2 es
x (Ptr (PhysicalDeviceProperties2 es) -> IO b
f Ptr (PhysicalDeviceProperties2 es)
p)
pokeCStruct :: forall b.
Ptr (PhysicalDeviceProperties2 es)
-> PhysicalDeviceProperties2 es -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceProperties2 es)
p PhysicalDeviceProperties2{Chain es
PhysicalDeviceProperties
properties :: PhysicalDeviceProperties
next :: Chain es
$sel:properties:PhysicalDeviceProperties2 :: forall (es :: [*]).
PhysicalDeviceProperties2 es -> PhysicalDeviceProperties
$sel:next:PhysicalDeviceProperties2 :: forall (es :: [*]). PhysicalDeviceProperties2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceProperties)) (PhysicalDeviceProperties
properties)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
840
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (PhysicalDeviceProperties2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (PhysicalDeviceProperties2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceProperties)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss PhysicalDeviceProperties2 es
, PeekChain es ) => FromCStruct (PhysicalDeviceProperties2 es) where
peekCStruct :: Ptr (PhysicalDeviceProperties2 es)
-> IO (PhysicalDeviceProperties2 es)
peekCStruct Ptr (PhysicalDeviceProperties2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
PhysicalDeviceProperties
properties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @PhysicalDeviceProperties ((Ptr (PhysicalDeviceProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceProperties))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es
-> PhysicalDeviceProperties -> PhysicalDeviceProperties2 es
PhysicalDeviceProperties2
Chain es
next PhysicalDeviceProperties
properties
instance es ~ '[] => Zero (PhysicalDeviceProperties2 es) where
zero :: PhysicalDeviceProperties2 es
zero = forall (es :: [*]).
Chain es
-> PhysicalDeviceProperties -> PhysicalDeviceProperties2 es
PhysicalDeviceProperties2
()
forall a. Zero a => a
zero
data FormatProperties2 (es :: [Type]) = FormatProperties2
{
forall (es :: [*]). FormatProperties2 es -> Chain es
next :: Chain es
,
forall (es :: [*]). FormatProperties2 es -> FormatProperties
formatProperties :: FormatProperties
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (FormatProperties2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (FormatProperties2 es)
instance Extensible FormatProperties2 where
extensibleTypeName :: String
extensibleTypeName = String
"FormatProperties2"
setNext :: forall (ds :: [*]) (es :: [*]).
FormatProperties2 ds -> Chain es -> FormatProperties2 es
setNext FormatProperties2{Chain ds
FormatProperties
formatProperties :: FormatProperties
next :: Chain ds
$sel:formatProperties:FormatProperties2 :: forall (es :: [*]). FormatProperties2 es -> FormatProperties
$sel:next:FormatProperties2 :: forall (es :: [*]). FormatProperties2 es -> Chain es
..} Chain es
next' = FormatProperties2{$sel:next:FormatProperties2 :: Chain es
next = Chain es
next', FormatProperties
formatProperties :: FormatProperties
$sel:formatProperties:FormatProperties2 :: FormatProperties
..}
getNext :: forall (es :: [*]). FormatProperties2 es -> Chain es
getNext FormatProperties2{Chain es
FormatProperties
formatProperties :: FormatProperties
next :: Chain es
$sel:formatProperties:FormatProperties2 :: forall (es :: [*]). FormatProperties2 es -> FormatProperties
$sel:next:FormatProperties2 :: forall (es :: [*]). FormatProperties2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends FormatProperties2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends FormatProperties2 e => b) -> Maybe b
extends proxy e
_ Extends FormatProperties2 e => b
f
| Just e :~: DrmFormatModifierPropertiesList2EXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @DrmFormatModifierPropertiesList2EXT = forall a. a -> Maybe a
Just Extends FormatProperties2 e => b
f
| Just e :~: FormatProperties3
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @FormatProperties3 = forall a. a -> Maybe a
Just Extends FormatProperties2 e => b
f
| Just e :~: SubpassResolvePerformanceQueryEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @SubpassResolvePerformanceQueryEXT = forall a. a -> Maybe a
Just Extends FormatProperties2 e => b
f
| Just e :~: DrmFormatModifierPropertiesListEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @DrmFormatModifierPropertiesListEXT = forall a. a -> Maybe a
Just Extends FormatProperties2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss FormatProperties2 es
, PokeChain es ) => ToCStruct (FormatProperties2 es) where
withCStruct :: forall b.
FormatProperties2 es
-> (Ptr (FormatProperties2 es) -> IO b) -> IO b
withCStruct FormatProperties2 es
x Ptr (FormatProperties2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 forall a b. (a -> b) -> a -> b
$ \Ptr (FormatProperties2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (FormatProperties2 es)
p FormatProperties2 es
x (Ptr (FormatProperties2 es) -> IO b
f Ptr (FormatProperties2 es)
p)
pokeCStruct :: forall b.
Ptr (FormatProperties2 es) -> FormatProperties2 es -> IO b -> IO b
pokeCStruct Ptr (FormatProperties2 es)
p FormatProperties2{Chain es
FormatProperties
formatProperties :: FormatProperties
next :: Chain es
$sel:formatProperties:FormatProperties2 :: forall (es :: [*]). FormatProperties2 es -> FormatProperties
$sel:next:FormatProperties2 :: forall (es :: [*]). FormatProperties2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_FORMAT_PROPERTIES_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr FormatProperties)) (FormatProperties
formatProperties)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (FormatProperties2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (FormatProperties2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_FORMAT_PROPERTIES_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr FormatProperties)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss FormatProperties2 es
, PeekChain es ) => FromCStruct (FormatProperties2 es) where
peekCStruct :: Ptr (FormatProperties2 es) -> IO (FormatProperties2 es)
peekCStruct Ptr (FormatProperties2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
FormatProperties
formatProperties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @FormatProperties ((Ptr (FormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr FormatProperties))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es -> FormatProperties -> FormatProperties2 es
FormatProperties2
Chain es
next FormatProperties
formatProperties
instance es ~ '[] => Zero (FormatProperties2 es) where
zero :: FormatProperties2 es
zero = forall (es :: [*]).
Chain es -> FormatProperties -> FormatProperties2 es
FormatProperties2
()
forall a. Zero a => a
zero
data ImageFormatProperties2 (es :: [Type]) = ImageFormatProperties2
{
forall (es :: [*]). ImageFormatProperties2 es -> Chain es
next :: Chain es
,
forall (es :: [*]).
ImageFormatProperties2 es -> ImageFormatProperties
imageFormatProperties :: ImageFormatProperties
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageFormatProperties2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (ImageFormatProperties2 es)
instance Extensible ImageFormatProperties2 where
extensibleTypeName :: String
extensibleTypeName = String
"ImageFormatProperties2"
setNext :: forall (ds :: [*]) (es :: [*]).
ImageFormatProperties2 ds -> Chain es -> ImageFormatProperties2 es
setNext ImageFormatProperties2{Chain ds
ImageFormatProperties
imageFormatProperties :: ImageFormatProperties
next :: Chain ds
$sel:imageFormatProperties:ImageFormatProperties2 :: forall (es :: [*]).
ImageFormatProperties2 es -> ImageFormatProperties
$sel:next:ImageFormatProperties2 :: forall (es :: [*]). ImageFormatProperties2 es -> Chain es
..} Chain es
next' = ImageFormatProperties2{$sel:next:ImageFormatProperties2 :: Chain es
next = Chain es
next', ImageFormatProperties
imageFormatProperties :: ImageFormatProperties
$sel:imageFormatProperties:ImageFormatProperties2 :: ImageFormatProperties
..}
getNext :: forall (es :: [*]). ImageFormatProperties2 es -> Chain es
getNext ImageFormatProperties2{Chain es
ImageFormatProperties
imageFormatProperties :: ImageFormatProperties
next :: Chain es
$sel:imageFormatProperties:ImageFormatProperties2 :: forall (es :: [*]).
ImageFormatProperties2 es -> ImageFormatProperties
$sel:next:ImageFormatProperties2 :: forall (es :: [*]). ImageFormatProperties2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageFormatProperties2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends ImageFormatProperties2 e => b) -> Maybe b
extends proxy e
_ Extends ImageFormatProperties2 e => b
f
| Just e :~: ImageCompressionPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @ImageCompressionPropertiesEXT = forall a. a -> Maybe a
Just Extends ImageFormatProperties2 e => b
f
| Just e :~: FilterCubicImageViewImageFormatPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @FilterCubicImageViewImageFormatPropertiesEXT = forall a. a -> Maybe a
Just Extends ImageFormatProperties2 e => b
f
| Just e :~: AndroidHardwareBufferUsageANDROID
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @AndroidHardwareBufferUsageANDROID = forall a. a -> Maybe a
Just Extends ImageFormatProperties2 e => b
f
| Just e :~: TextureLODGatherFormatPropertiesAMD
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @TextureLODGatherFormatPropertiesAMD = forall a. a -> Maybe a
Just Extends ImageFormatProperties2 e => b
f
| Just e :~: SamplerYcbcrConversionImageFormatProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @SamplerYcbcrConversionImageFormatProperties = forall a. a -> Maybe a
Just Extends ImageFormatProperties2 e => b
f
| Just e :~: ExternalImageFormatProperties
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @ExternalImageFormatProperties = forall a. a -> Maybe a
Just Extends ImageFormatProperties2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss ImageFormatProperties2 es
, PokeChain es ) => ToCStruct (ImageFormatProperties2 es) where
withCStruct :: forall b.
ImageFormatProperties2 es
-> (Ptr (ImageFormatProperties2 es) -> IO b) -> IO b
withCStruct ImageFormatProperties2 es
x Ptr (ImageFormatProperties2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 forall a b. (a -> b) -> a -> b
$ \Ptr (ImageFormatProperties2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (ImageFormatProperties2 es)
p ImageFormatProperties2 es
x (Ptr (ImageFormatProperties2 es) -> IO b
f Ptr (ImageFormatProperties2 es)
p)
pokeCStruct :: forall b.
Ptr (ImageFormatProperties2 es)
-> ImageFormatProperties2 es -> IO b -> IO b
pokeCStruct Ptr (ImageFormatProperties2 es)
p ImageFormatProperties2{Chain es
ImageFormatProperties
imageFormatProperties :: ImageFormatProperties
next :: Chain es
$sel:imageFormatProperties:ImageFormatProperties2 :: forall (es :: [*]).
ImageFormatProperties2 es -> ImageFormatProperties
$sel:next:ImageFormatProperties2 :: forall (es :: [*]). ImageFormatProperties2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageFormatProperties)) (ImageFormatProperties
imageFormatProperties)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (ImageFormatProperties2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (ImageFormatProperties2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageFormatProperties)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss ImageFormatProperties2 es
, PeekChain es ) => FromCStruct (ImageFormatProperties2 es) where
peekCStruct :: Ptr (ImageFormatProperties2 es) -> IO (ImageFormatProperties2 es)
peekCStruct Ptr (ImageFormatProperties2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
ImageFormatProperties
imageFormatProperties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ImageFormatProperties ((Ptr (ImageFormatProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ImageFormatProperties))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es -> ImageFormatProperties -> ImageFormatProperties2 es
ImageFormatProperties2
Chain es
next ImageFormatProperties
imageFormatProperties
instance es ~ '[] => Zero (ImageFormatProperties2 es) where
zero :: ImageFormatProperties2 es
zero = forall (es :: [*]).
Chain es -> ImageFormatProperties -> ImageFormatProperties2 es
ImageFormatProperties2
()
forall a. Zero a => a
zero
data PhysicalDeviceImageFormatInfo2 (es :: [Type]) = PhysicalDeviceImageFormatInfo2
{
forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Chain es
next :: Chain es
,
forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Format
format :: Format
,
forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> ImageType
type' :: ImageType
,
forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageTiling
tiling :: ImageTiling
,
forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageUsageFlags
usage :: ImageUsageFlags
,
forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageCreateFlags
flags :: ImageCreateFlags
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceImageFormatInfo2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (PhysicalDeviceImageFormatInfo2 es)
instance Extensible PhysicalDeviceImageFormatInfo2 where
extensibleTypeName :: String
extensibleTypeName = String
"PhysicalDeviceImageFormatInfo2"
setNext :: forall (ds :: [*]) (es :: [*]).
PhysicalDeviceImageFormatInfo2 ds
-> Chain es -> PhysicalDeviceImageFormatInfo2 es
setNext PhysicalDeviceImageFormatInfo2{Chain ds
Format
ImageCreateFlags
ImageTiling
ImageType
ImageUsageFlags
flags :: ImageCreateFlags
usage :: ImageUsageFlags
tiling :: ImageTiling
type' :: ImageType
format :: Format
next :: Chain ds
$sel:flags:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageCreateFlags
$sel:usage:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageUsageFlags
$sel:tiling:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageTiling
$sel:type':PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> ImageType
$sel:format:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Format
$sel:next:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Chain es
..} Chain es
next' = PhysicalDeviceImageFormatInfo2{$sel:next:PhysicalDeviceImageFormatInfo2 :: Chain es
next = Chain es
next', Format
ImageCreateFlags
ImageTiling
ImageType
ImageUsageFlags
flags :: ImageCreateFlags
usage :: ImageUsageFlags
tiling :: ImageTiling
type' :: ImageType
format :: Format
$sel:flags:PhysicalDeviceImageFormatInfo2 :: ImageCreateFlags
$sel:usage:PhysicalDeviceImageFormatInfo2 :: ImageUsageFlags
$sel:tiling:PhysicalDeviceImageFormatInfo2 :: ImageTiling
$sel:type':PhysicalDeviceImageFormatInfo2 :: ImageType
$sel:format:PhysicalDeviceImageFormatInfo2 :: Format
..}
getNext :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Chain es
getNext PhysicalDeviceImageFormatInfo2{Chain es
Format
ImageCreateFlags
ImageTiling
ImageType
ImageUsageFlags
flags :: ImageCreateFlags
usage :: ImageUsageFlags
tiling :: ImageTiling
type' :: ImageType
format :: Format
next :: Chain es
$sel:flags:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageCreateFlags
$sel:usage:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageUsageFlags
$sel:tiling:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageTiling
$sel:type':PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> ImageType
$sel:format:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Format
$sel:next:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceImageFormatInfo2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e
-> (Extends PhysicalDeviceImageFormatInfo2 e => b) -> Maybe b
extends proxy e
_ Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: OpticalFlowImageFormatInfoNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @OpticalFlowImageFormatInfoNV = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: ImageCompressionControlEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @ImageCompressionControlEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: PhysicalDeviceImageViewImageFormatInfoEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageViewImageFormatInfoEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: ImageStencilUsageCreateInfo
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @ImageStencilUsageCreateInfo = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: PhysicalDeviceImageDrmFormatModifierInfoEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceImageDrmFormatModifierInfoEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: ImageFormatListCreateInfo
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @ImageFormatListCreateInfo = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Just e :~: PhysicalDeviceExternalImageFormatInfo
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceExternalImageFormatInfo = forall a. a -> Maybe a
Just Extends PhysicalDeviceImageFormatInfo2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss PhysicalDeviceImageFormatInfo2 es
, PokeChain es ) => ToCStruct (PhysicalDeviceImageFormatInfo2 es) where
withCStruct :: forall b.
PhysicalDeviceImageFormatInfo2 es
-> (Ptr (PhysicalDeviceImageFormatInfo2 es) -> IO b) -> IO b
withCStruct PhysicalDeviceImageFormatInfo2 es
x Ptr (PhysicalDeviceImageFormatInfo2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \Ptr (PhysicalDeviceImageFormatInfo2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceImageFormatInfo2 es)
p PhysicalDeviceImageFormatInfo2 es
x (Ptr (PhysicalDeviceImageFormatInfo2 es) -> IO b
f Ptr (PhysicalDeviceImageFormatInfo2 es)
p)
pokeCStruct :: forall b.
Ptr (PhysicalDeviceImageFormatInfo2 es)
-> PhysicalDeviceImageFormatInfo2 es -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceImageFormatInfo2 es)
p PhysicalDeviceImageFormatInfo2{Chain es
Format
ImageCreateFlags
ImageTiling
ImageType
ImageUsageFlags
flags :: ImageCreateFlags
usage :: ImageUsageFlags
tiling :: ImageTiling
type' :: ImageType
format :: Format
next :: Chain es
$sel:flags:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageCreateFlags
$sel:usage:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageUsageFlags
$sel:tiling:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]).
PhysicalDeviceImageFormatInfo2 es -> ImageTiling
$sel:type':PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> ImageType
$sel:format:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Format
$sel:next:PhysicalDeviceImageFormatInfo2 :: forall (es :: [*]). PhysicalDeviceImageFormatInfo2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (Format
format)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr ImageType)) (ImageType
type')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageTiling)) (ImageTiling
tiling)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ImageUsageFlags)) (ImageUsageFlags
usage)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageCreateFlags)) (ImageCreateFlags
flags)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (PhysicalDeviceImageFormatInfo2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (PhysicalDeviceImageFormatInfo2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr ImageType)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageTiling)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ImageUsageFlags)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss PhysicalDeviceImageFormatInfo2 es
, PeekChain es ) => FromCStruct (PhysicalDeviceImageFormatInfo2 es) where
peekCStruct :: Ptr (PhysicalDeviceImageFormatInfo2 es)
-> IO (PhysicalDeviceImageFormatInfo2 es)
peekCStruct Ptr (PhysicalDeviceImageFormatInfo2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
Format
format <- forall a. Storable a => Ptr a -> IO a
peek @Format ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format))
ImageType
type' <- forall a. Storable a => Ptr a -> IO a
peek @ImageType ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr ImageType))
ImageTiling
tiling <- forall a. Storable a => Ptr a -> IO a
peek @ImageTiling ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr ImageTiling))
ImageUsageFlags
usage <- forall a. Storable a => Ptr a -> IO a
peek @ImageUsageFlags ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ImageUsageFlags))
ImageCreateFlags
flags <- forall a. Storable a => Ptr a -> IO a
peek @ImageCreateFlags ((Ptr (PhysicalDeviceImageFormatInfo2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageCreateFlags))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es
-> Format
-> ImageType
-> ImageTiling
-> ImageUsageFlags
-> ImageCreateFlags
-> PhysicalDeviceImageFormatInfo2 es
PhysicalDeviceImageFormatInfo2
Chain es
next Format
format ImageType
type' ImageTiling
tiling ImageUsageFlags
usage ImageCreateFlags
flags
instance es ~ '[] => Zero (PhysicalDeviceImageFormatInfo2 es) where
zero :: PhysicalDeviceImageFormatInfo2 es
zero = forall (es :: [*]).
Chain es
-> Format
-> ImageType
-> ImageTiling
-> ImageUsageFlags
-> ImageCreateFlags
-> PhysicalDeviceImageFormatInfo2 es
PhysicalDeviceImageFormatInfo2
()
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
data QueueFamilyProperties2 (es :: [Type]) = QueueFamilyProperties2
{
forall (es :: [*]). QueueFamilyProperties2 es -> Chain es
next :: Chain es
,
forall (es :: [*]).
QueueFamilyProperties2 es -> QueueFamilyProperties
queueFamilyProperties :: QueueFamilyProperties
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (QueueFamilyProperties2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (QueueFamilyProperties2 es)
instance Extensible QueueFamilyProperties2 where
extensibleTypeName :: String
extensibleTypeName = String
"QueueFamilyProperties2"
setNext :: forall (ds :: [*]) (es :: [*]).
QueueFamilyProperties2 ds -> Chain es -> QueueFamilyProperties2 es
setNext QueueFamilyProperties2{Chain ds
QueueFamilyProperties
queueFamilyProperties :: QueueFamilyProperties
next :: Chain ds
$sel:queueFamilyProperties:QueueFamilyProperties2 :: forall (es :: [*]).
QueueFamilyProperties2 es -> QueueFamilyProperties
$sel:next:QueueFamilyProperties2 :: forall (es :: [*]). QueueFamilyProperties2 es -> Chain es
..} Chain es
next' = QueueFamilyProperties2{$sel:next:QueueFamilyProperties2 :: Chain es
next = Chain es
next', QueueFamilyProperties
queueFamilyProperties :: QueueFamilyProperties
$sel:queueFamilyProperties:QueueFamilyProperties2 :: QueueFamilyProperties
..}
getNext :: forall (es :: [*]). QueueFamilyProperties2 es -> Chain es
getNext QueueFamilyProperties2{Chain es
QueueFamilyProperties
queueFamilyProperties :: QueueFamilyProperties
next :: Chain es
$sel:queueFamilyProperties:QueueFamilyProperties2 :: forall (es :: [*]).
QueueFamilyProperties2 es -> QueueFamilyProperties
$sel:next:QueueFamilyProperties2 :: forall (es :: [*]). QueueFamilyProperties2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends QueueFamilyProperties2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e -> (Extends QueueFamilyProperties2 e => b) -> Maybe b
extends proxy e
_ Extends QueueFamilyProperties2 e => b
f
| Just e :~: QueueFamilyCheckpointProperties2NV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @QueueFamilyCheckpointProperties2NV = forall a. a -> Maybe a
Just Extends QueueFamilyProperties2 e => b
f
| Just e :~: QueueFamilyCheckpointPropertiesNV
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @QueueFamilyCheckpointPropertiesNV = forall a. a -> Maybe a
Just Extends QueueFamilyProperties2 e => b
f
| Just e :~: QueueFamilyGlobalPriorityPropertiesKHR
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @QueueFamilyGlobalPriorityPropertiesKHR = forall a. a -> Maybe a
Just Extends QueueFamilyProperties2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss QueueFamilyProperties2 es
, PokeChain es ) => ToCStruct (QueueFamilyProperties2 es) where
withCStruct :: forall b.
QueueFamilyProperties2 es
-> (Ptr (QueueFamilyProperties2 es) -> IO b) -> IO b
withCStruct QueueFamilyProperties2 es
x Ptr (QueueFamilyProperties2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \Ptr (QueueFamilyProperties2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (QueueFamilyProperties2 es)
p QueueFamilyProperties2 es
x (Ptr (QueueFamilyProperties2 es) -> IO b
f Ptr (QueueFamilyProperties2 es)
p)
pokeCStruct :: forall b.
Ptr (QueueFamilyProperties2 es)
-> QueueFamilyProperties2 es -> IO b -> IO b
pokeCStruct Ptr (QueueFamilyProperties2 es)
p QueueFamilyProperties2{Chain es
QueueFamilyProperties
queueFamilyProperties :: QueueFamilyProperties
next :: Chain es
$sel:queueFamilyProperties:QueueFamilyProperties2 :: forall (es :: [*]).
QueueFamilyProperties2 es -> QueueFamilyProperties
$sel:next:QueueFamilyProperties2 :: forall (es :: [*]). QueueFamilyProperties2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr QueueFamilyProperties)) (QueueFamilyProperties
queueFamilyProperties)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (QueueFamilyProperties2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (QueueFamilyProperties2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr QueueFamilyProperties)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss QueueFamilyProperties2 es
, PeekChain es ) => FromCStruct (QueueFamilyProperties2 es) where
peekCStruct :: Ptr (QueueFamilyProperties2 es) -> IO (QueueFamilyProperties2 es)
peekCStruct Ptr (QueueFamilyProperties2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
QueueFamilyProperties
queueFamilyProperties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @QueueFamilyProperties ((Ptr (QueueFamilyProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr QueueFamilyProperties))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es -> QueueFamilyProperties -> QueueFamilyProperties2 es
QueueFamilyProperties2
Chain es
next QueueFamilyProperties
queueFamilyProperties
instance es ~ '[] => Zero (QueueFamilyProperties2 es) where
zero :: QueueFamilyProperties2 es
zero = forall (es :: [*]).
Chain es -> QueueFamilyProperties -> QueueFamilyProperties2 es
QueueFamilyProperties2
()
forall a. Zero a => a
zero
data PhysicalDeviceMemoryProperties2 (es :: [Type]) = PhysicalDeviceMemoryProperties2
{
forall (es :: [*]). PhysicalDeviceMemoryProperties2 es -> Chain es
next :: Chain es
,
forall (es :: [*]).
PhysicalDeviceMemoryProperties2 es
-> PhysicalDeviceMemoryProperties
memoryProperties :: PhysicalDeviceMemoryProperties
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceMemoryProperties2 (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (PhysicalDeviceMemoryProperties2 es)
instance Extensible PhysicalDeviceMemoryProperties2 where
extensibleTypeName :: String
extensibleTypeName = String
"PhysicalDeviceMemoryProperties2"
setNext :: forall (ds :: [*]) (es :: [*]).
PhysicalDeviceMemoryProperties2 ds
-> Chain es -> PhysicalDeviceMemoryProperties2 es
setNext PhysicalDeviceMemoryProperties2{Chain ds
PhysicalDeviceMemoryProperties
memoryProperties :: PhysicalDeviceMemoryProperties
next :: Chain ds
$sel:memoryProperties:PhysicalDeviceMemoryProperties2 :: forall (es :: [*]).
PhysicalDeviceMemoryProperties2 es
-> PhysicalDeviceMemoryProperties
$sel:next:PhysicalDeviceMemoryProperties2 :: forall (es :: [*]). PhysicalDeviceMemoryProperties2 es -> Chain es
..} Chain es
next' = PhysicalDeviceMemoryProperties2{$sel:next:PhysicalDeviceMemoryProperties2 :: Chain es
next = Chain es
next', PhysicalDeviceMemoryProperties
memoryProperties :: PhysicalDeviceMemoryProperties
$sel:memoryProperties:PhysicalDeviceMemoryProperties2 :: PhysicalDeviceMemoryProperties
..}
getNext :: forall (es :: [*]). PhysicalDeviceMemoryProperties2 es -> Chain es
getNext PhysicalDeviceMemoryProperties2{Chain es
PhysicalDeviceMemoryProperties
memoryProperties :: PhysicalDeviceMemoryProperties
next :: Chain es
$sel:memoryProperties:PhysicalDeviceMemoryProperties2 :: forall (es :: [*]).
PhysicalDeviceMemoryProperties2 es
-> PhysicalDeviceMemoryProperties
$sel:next:PhysicalDeviceMemoryProperties2 :: forall (es :: [*]). PhysicalDeviceMemoryProperties2 es -> Chain es
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceMemoryProperties2 e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e
-> (Extends PhysicalDeviceMemoryProperties2 e => b) -> Maybe b
extends proxy e
_ Extends PhysicalDeviceMemoryProperties2 e => b
f
| Just e :~: PhysicalDeviceMemoryBudgetPropertiesEXT
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
eqT @e @PhysicalDeviceMemoryBudgetPropertiesEXT = forall a. a -> Maybe a
Just Extends PhysicalDeviceMemoryProperties2 e => b
f
| Bool
otherwise = forall a. Maybe a
Nothing
instance ( Extendss PhysicalDeviceMemoryProperties2 es
, PokeChain es ) => ToCStruct (PhysicalDeviceMemoryProperties2 es) where
withCStruct :: forall b.
PhysicalDeviceMemoryProperties2 es
-> (Ptr (PhysicalDeviceMemoryProperties2 es) -> IO b) -> IO b
withCStruct PhysicalDeviceMemoryProperties2 es
x Ptr (PhysicalDeviceMemoryProperties2 es) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
536 forall a b. (a -> b) -> a -> b
$ \Ptr (PhysicalDeviceMemoryProperties2 es)
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceMemoryProperties2 es)
p PhysicalDeviceMemoryProperties2 es
x (Ptr (PhysicalDeviceMemoryProperties2 es) -> IO b
f Ptr (PhysicalDeviceMemoryProperties2 es)
p)
pokeCStruct :: forall b.
Ptr (PhysicalDeviceMemoryProperties2 es)
-> PhysicalDeviceMemoryProperties2 es -> IO b -> IO b
pokeCStruct Ptr (PhysicalDeviceMemoryProperties2 es)
p PhysicalDeviceMemoryProperties2{Chain es
PhysicalDeviceMemoryProperties
memoryProperties :: PhysicalDeviceMemoryProperties
next :: Chain es
$sel:memoryProperties:PhysicalDeviceMemoryProperties2 :: forall (es :: [*]).
PhysicalDeviceMemoryProperties2 es
-> PhysicalDeviceMemoryProperties
$sel:next:PhysicalDeviceMemoryProperties2 :: forall (es :: [*]). PhysicalDeviceMemoryProperties2 es -> Chain es
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2)
Ptr ()
pNext'' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceMemoryProperties)) (PhysicalDeviceMemoryProperties
memoryProperties)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
536
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr (PhysicalDeviceMemoryProperties2 es) -> IO b -> IO b
pokeZeroCStruct Ptr (PhysicalDeviceMemoryProperties2 es)
p IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2)
Ptr ()
pNext' <- forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a b. Ptr a -> Ptr b
castPtr forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceMemoryProperties)) (forall a. Zero a => a
zero)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss PhysicalDeviceMemoryProperties2 es
, PeekChain es ) => FromCStruct (PhysicalDeviceMemoryProperties2 es) where
peekCStruct :: Ptr (PhysicalDeviceMemoryProperties2 es)
-> IO (PhysicalDeviceMemoryProperties2 es)
peekCStruct Ptr (PhysicalDeviceMemoryProperties2 es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
PhysicalDeviceMemoryProperties
memoryProperties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @PhysicalDeviceMemoryProperties ((Ptr (PhysicalDeviceMemoryProperties2 es)
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PhysicalDeviceMemoryProperties))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall (es :: [*]).
Chain es
-> PhysicalDeviceMemoryProperties
-> PhysicalDeviceMemoryProperties2 es
PhysicalDeviceMemoryProperties2
Chain es
next PhysicalDeviceMemoryProperties
memoryProperties
instance es ~ '[] => Zero (PhysicalDeviceMemoryProperties2 es) where
zero :: PhysicalDeviceMemoryProperties2 es
zero = forall (es :: [*]).
Chain es
-> PhysicalDeviceMemoryProperties
-> PhysicalDeviceMemoryProperties2 es
PhysicalDeviceMemoryProperties2
()
forall a. Zero a => a
zero
data SparseImageFormatProperties2 = SparseImageFormatProperties2
{
SparseImageFormatProperties2 -> SparseImageFormatProperties
properties :: SparseImageFormatProperties }
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SparseImageFormatProperties2)
#endif
deriving instance Show SparseImageFormatProperties2
instance ToCStruct SparseImageFormatProperties2 where
withCStruct :: forall b.
SparseImageFormatProperties2
-> (("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO b)
-> IO b
withCStruct SparseImageFormatProperties2
x ("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \"pProperties" ::: Ptr SparseImageFormatProperties2
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pProperties" ::: Ptr SparseImageFormatProperties2
p SparseImageFormatProperties2
x (("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO b
f "pProperties" ::: Ptr SparseImageFormatProperties2
p)
pokeCStruct :: forall b.
("pProperties" ::: Ptr SparseImageFormatProperties2)
-> SparseImageFormatProperties2 -> IO b -> IO b
pokeCStruct "pProperties" ::: Ptr SparseImageFormatProperties2
p SparseImageFormatProperties2{SparseImageFormatProperties
properties :: SparseImageFormatProperties
$sel:properties:SparseImageFormatProperties2 :: SparseImageFormatProperties2 -> SparseImageFormatProperties
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr SparseImageFormatProperties)) (SparseImageFormatProperties
properties)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO b -> IO b
pokeZeroCStruct "pProperties" ::: Ptr SparseImageFormatProperties2
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr SparseImageFormatProperties)) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct SparseImageFormatProperties2 where
peekCStruct :: ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO SparseImageFormatProperties2
peekCStruct "pProperties" ::: Ptr SparseImageFormatProperties2
p = do
SparseImageFormatProperties
properties <- forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @SparseImageFormatProperties (("pProperties" ::: Ptr SparseImageFormatProperties2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr SparseImageFormatProperties))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ SparseImageFormatProperties -> SparseImageFormatProperties2
SparseImageFormatProperties2
SparseImageFormatProperties
properties
instance Storable SparseImageFormatProperties2 where
sizeOf :: SparseImageFormatProperties2 -> Int
sizeOf ~SparseImageFormatProperties2
_ = Int
40
alignment :: SparseImageFormatProperties2 -> Int
alignment ~SparseImageFormatProperties2
_ = Int
8
peek :: ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> IO SparseImageFormatProperties2
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: ("pProperties" ::: Ptr SparseImageFormatProperties2)
-> SparseImageFormatProperties2 -> IO ()
poke "pProperties" ::: Ptr SparseImageFormatProperties2
ptr SparseImageFormatProperties2
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pProperties" ::: Ptr SparseImageFormatProperties2
ptr SparseImageFormatProperties2
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero SparseImageFormatProperties2 where
zero :: SparseImageFormatProperties2
zero = SparseImageFormatProperties -> SparseImageFormatProperties2
SparseImageFormatProperties2
forall a. Zero a => a
zero
data PhysicalDeviceSparseImageFormatInfo2 = PhysicalDeviceSparseImageFormatInfo2
{
PhysicalDeviceSparseImageFormatInfo2 -> Format
format :: Format
,
PhysicalDeviceSparseImageFormatInfo2 -> ImageType
type' :: ImageType
,
PhysicalDeviceSparseImageFormatInfo2 -> SampleCountFlagBits
samples :: SampleCountFlagBits
,
PhysicalDeviceSparseImageFormatInfo2 -> ImageUsageFlags
usage :: ImageUsageFlags
,
PhysicalDeviceSparseImageFormatInfo2 -> ImageTiling
tiling :: ImageTiling
}
deriving (Typeable, PhysicalDeviceSparseImageFormatInfo2
-> PhysicalDeviceSparseImageFormatInfo2 -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceSparseImageFormatInfo2
-> PhysicalDeviceSparseImageFormatInfo2 -> Bool
$c/= :: PhysicalDeviceSparseImageFormatInfo2
-> PhysicalDeviceSparseImageFormatInfo2 -> Bool
== :: PhysicalDeviceSparseImageFormatInfo2
-> PhysicalDeviceSparseImageFormatInfo2 -> Bool
$c== :: PhysicalDeviceSparseImageFormatInfo2
-> PhysicalDeviceSparseImageFormatInfo2 -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceSparseImageFormatInfo2)
#endif
deriving instance Show PhysicalDeviceSparseImageFormatInfo2
instance ToCStruct PhysicalDeviceSparseImageFormatInfo2 where
withCStruct :: forall b.
PhysicalDeviceSparseImageFormatInfo2
-> (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> IO b)
-> IO b
withCStruct PhysicalDeviceSparseImageFormatInfo2
x ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 forall a b. (a -> b) -> a -> b
$ \"pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p PhysicalDeviceSparseImageFormatInfo2
x (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> IO b
f "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p)
pokeCStruct :: forall b.
("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> PhysicalDeviceSparseImageFormatInfo2 -> IO b -> IO b
pokeCStruct "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p PhysicalDeviceSparseImageFormatInfo2{Format
ImageTiling
ImageType
ImageUsageFlags
SampleCountFlagBits
tiling :: ImageTiling
usage :: ImageUsageFlags
samples :: SampleCountFlagBits
type' :: ImageType
format :: Format
$sel:tiling:PhysicalDeviceSparseImageFormatInfo2 :: PhysicalDeviceSparseImageFormatInfo2 -> ImageTiling
$sel:usage:PhysicalDeviceSparseImageFormatInfo2 :: PhysicalDeviceSparseImageFormatInfo2 -> ImageUsageFlags
$sel:samples:PhysicalDeviceSparseImageFormatInfo2 :: PhysicalDeviceSparseImageFormatInfo2 -> SampleCountFlagBits
$sel:type':PhysicalDeviceSparseImageFormatInfo2 :: PhysicalDeviceSparseImageFormatInfo2 -> ImageType
$sel:format:PhysicalDeviceSparseImageFormatInfo2 :: PhysicalDeviceSparseImageFormatInfo2 -> Format
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (Format
format)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr ImageType)) (ImageType
type')
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr SampleCountFlagBits)) (SampleCountFlagBits
samples)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ImageUsageFlags)) (ImageUsageFlags
usage)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageTiling)) (ImageTiling
tiling)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> IO b -> IO b
pokeZeroCStruct "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr ImageType)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr SampleCountFlagBits)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ImageUsageFlags)) (forall a. Zero a => a
zero)
forall a. Storable a => Ptr a -> a -> IO ()
poke (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageTiling)) (forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceSparseImageFormatInfo2 where
peekCStruct :: ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> IO PhysicalDeviceSparseImageFormatInfo2
peekCStruct "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p = do
Format
format <- forall a. Storable a => Ptr a -> IO a
peek @Format (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Format))
ImageType
type' <- forall a. Storable a => Ptr a -> IO a
peek @ImageType (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr ImageType))
SampleCountFlagBits
samples <- forall a. Storable a => Ptr a -> IO a
peek @SampleCountFlagBits (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr SampleCountFlagBits))
ImageUsageFlags
usage <- forall a. Storable a => Ptr a -> IO a
peek @ImageUsageFlags (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ImageUsageFlags))
ImageTiling
tiling <- forall a. Storable a => Ptr a -> IO a
peek @ImageTiling (("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ImageTiling))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Format
-> ImageType
-> SampleCountFlagBits
-> ImageUsageFlags
-> ImageTiling
-> PhysicalDeviceSparseImageFormatInfo2
PhysicalDeviceSparseImageFormatInfo2
Format
format ImageType
type' SampleCountFlagBits
samples ImageUsageFlags
usage ImageTiling
tiling
instance Storable PhysicalDeviceSparseImageFormatInfo2 where
sizeOf :: PhysicalDeviceSparseImageFormatInfo2 -> Int
sizeOf ~PhysicalDeviceSparseImageFormatInfo2
_ = Int
40
alignment :: PhysicalDeviceSparseImageFormatInfo2 -> Int
alignment ~PhysicalDeviceSparseImageFormatInfo2
_ = Int
8
peek :: ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> IO PhysicalDeviceSparseImageFormatInfo2
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2)
-> PhysicalDeviceSparseImageFormatInfo2 -> IO ()
poke "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
ptr PhysicalDeviceSparseImageFormatInfo2
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct "pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2
ptr PhysicalDeviceSparseImageFormatInfo2
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceSparseImageFormatInfo2 where
zero :: PhysicalDeviceSparseImageFormatInfo2
zero = Format
-> ImageType
-> SampleCountFlagBits
-> ImageUsageFlags
-> ImageTiling
-> PhysicalDeviceSparseImageFormatInfo2
PhysicalDeviceSparseImageFormatInfo2
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero
forall a. Zero a => a
zero