packages feed

vulkan-api-1.4.0.0: vulkan-api.cabal

--
-- Do not modify this file directly
-- it is autogenerated at genvulkan/src/Write/Cabal.hs
--
name:                vulkan-api
version:             1.4.0.0
synopsis:            Low-level low-overhead vulkan api bindings
description:
    Haskell bindings for vulkan api as described in vk.xml.
    .
    You can find some simple examples at <https://github.com/achirkin/vulkan/tree/master/vulkan-examples vulkan-examples> page
    or a more complete triangle rendering program at <https://github.com/achirkin/vulkan/tree/master/vulkan-triangles vulkan-triangles> page.
    .
    For further information, please refer to <https://github.com/achirkin/vulkan#readme README.md>.
homepage:            https://github.com/achirkin/vulkan#readme
license:             BSD3
license-file:        LICENSE
author:              Artem Chirkin
maintainer:          chirkin@arch.ethz.ch
copyright:           Copyright: (c) 2018 Artem Chirkin
category:            vulkan, bsd3, graphics, library, opengl
build-type:          Simple
cabal-version:       >=1.22
extra-source-files:
    include/vulkan/*.h
    include/vulkan_loader.h
    cbits/vulkan_loader.c

flag useUnsafeFFIDefault
    description:
      Use unsafe foreign imports of Vulkan functions by default
    default: False

flag enableBetaExtensions
    description:
      Enable platform-specific extensions protected by CPP macros VK_ENABLE_BETA_EXTENSIONS
    default: False

flag usePlatformAndroidKhr
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_ANDROID_KHR
    default: False

flag usePlatformDirectfbExt
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_DIRECTFB_EXT
    default: False

flag usePlatformFuchsia
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_FUCHSIA
    default: False

flag usePlatformGgp
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_GGP
    default: False

flag usePlatformIosMvk
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_IOS_MVK
    default: False

flag usePlatformMacosMvk
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_MACOS_MVK
    default: False

flag usePlatformMetalExt
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_METAL_EXT
    default: False

flag usePlatformViNn
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_VI_NN
    default: False

flag usePlatformWaylandKhr
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_WAYLAND_KHR
    default: False

flag usePlatformWin32Khr
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_WIN32_KHR
    default: False

flag usePlatformXcbKhr
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_XCB_KHR
    default: False

flag usePlatformXlibKhr
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_XLIB_KHR
    default: False

flag usePlatformXlibXrandrExt
    description:
      Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_XLIB_XRANDR_EXT
    default: False

flag useNativeFFI-1-0
    description:
      Enable foreign-imported functions from Vulkan 1.0 feature set
    default: False

flag useNativeFFI-1-1
    description:
      Enable foreign-imported functions from Vulkan 1.1 feature set
    default: False

flag useNativeFFI-1-2
    description:
      Enable foreign-imported functions from Vulkan 1.2 feature set
    default: False

library

    build-tools:         hsc2hs
    hs-source-dirs:      src, src-gen
    exposed-modules:

        Graphics.Vulkan
        Graphics.Vulkan.Constants
        Graphics.Vulkan.Core_1_0
        Graphics.Vulkan.Core_1_1
        Graphics.Vulkan.Core_1_2
        Graphics.Vulkan.Ext
        Graphics.Vulkan.Ext.VK_AMD_buffer_marker
        Graphics.Vulkan.Ext.VK_AMD_device_coherent_memory
        Graphics.Vulkan.Ext.VK_AMD_display_native_hdr
        Graphics.Vulkan.Ext.VK_AMD_draw_indirect_count
        Graphics.Vulkan.Ext.VK_AMD_gcn_shader
        Graphics.Vulkan.Ext.VK_AMD_gpu_shader_half_float
        Graphics.Vulkan.Ext.VK_AMD_gpu_shader_int16
        Graphics.Vulkan.Ext.VK_AMD_memory_overallocation_behavior
        Graphics.Vulkan.Ext.VK_AMD_mixed_attachment_samples
        Graphics.Vulkan.Ext.VK_AMD_negative_viewport_height
        Graphics.Vulkan.Ext.VK_AMD_pipeline_compiler_control
        Graphics.Vulkan.Ext.VK_AMD_rasterization_order
        Graphics.Vulkan.Ext.VK_AMD_shader_ballot
        Graphics.Vulkan.Ext.VK_AMD_shader_core_properties
        Graphics.Vulkan.Ext.VK_AMD_shader_core_properties2
        Graphics.Vulkan.Ext.VK_AMD_shader_explicit_vertex_parameter
        Graphics.Vulkan.Ext.VK_AMD_shader_fragment_mask
        Graphics.Vulkan.Ext.VK_AMD_shader_image_load_store_lod
        Graphics.Vulkan.Ext.VK_AMD_shader_info
        Graphics.Vulkan.Ext.VK_AMD_shader_trinary_minmax
        Graphics.Vulkan.Ext.VK_AMD_texture_gather_bias_lod
        Graphics.Vulkan.Ext.VK_EXT_4444_formats
        Graphics.Vulkan.Ext.VK_EXT_astc_decode_mode
        Graphics.Vulkan.Ext.VK_EXT_blend_operation_advanced
        Graphics.Vulkan.Ext.VK_EXT_buffer_device_address
        Graphics.Vulkan.Ext.VK_EXT_calibrated_timestamps
        Graphics.Vulkan.Ext.VK_EXT_conditional_rendering
        Graphics.Vulkan.Ext.VK_EXT_conservative_rasterization
        Graphics.Vulkan.Ext.VK_EXT_custom_border_color
        Graphics.Vulkan.Ext.VK_EXT_debug_marker
        Graphics.Vulkan.Ext.VK_EXT_debug_report
        Graphics.Vulkan.Ext.VK_EXT_debug_utils
        Graphics.Vulkan.Ext.VK_EXT_depth_clip_enable
        Graphics.Vulkan.Ext.VK_EXT_depth_range_unrestricted
        Graphics.Vulkan.Ext.VK_EXT_descriptor_indexing
        Graphics.Vulkan.Ext.VK_EXT_direct_mode_display
        Graphics.Vulkan.Ext.VK_EXT_discard_rectangles
        Graphics.Vulkan.Ext.VK_EXT_display_control
        Graphics.Vulkan.Ext.VK_EXT_display_surface_counter
        Graphics.Vulkan.Ext.VK_EXT_extended_dynamic_state
        Graphics.Vulkan.Ext.VK_EXT_external_memory_dma_buf
        Graphics.Vulkan.Ext.VK_EXT_external_memory_host
        Graphics.Vulkan.Ext.VK_EXT_filter_cubic
        Graphics.Vulkan.Ext.VK_EXT_fragment_density_map
        Graphics.Vulkan.Ext.VK_EXT_fragment_density_map2
        Graphics.Vulkan.Ext.VK_EXT_fragment_shader_interlock
        Graphics.Vulkan.Ext.VK_EXT_global_priority
        Graphics.Vulkan.Ext.VK_EXT_hdr_metadata
        Graphics.Vulkan.Ext.VK_EXT_headless_surface
        Graphics.Vulkan.Ext.VK_EXT_host_query_reset
        Graphics.Vulkan.Ext.VK_EXT_image_drm_format_modifier
        Graphics.Vulkan.Ext.VK_EXT_image_robustness
        Graphics.Vulkan.Ext.VK_EXT_index_type_uint8
        Graphics.Vulkan.Ext.VK_EXT_inline_uniform_block
        Graphics.Vulkan.Ext.VK_EXT_line_rasterization
        Graphics.Vulkan.Ext.VK_EXT_memory_budget
        Graphics.Vulkan.Ext.VK_EXT_memory_priority
        Graphics.Vulkan.Ext.VK_EXT_pci_bus_info
        Graphics.Vulkan.Ext.VK_EXT_pipeline_creation_cache_control
        Graphics.Vulkan.Ext.VK_EXT_pipeline_creation_feedback
        Graphics.Vulkan.Ext.VK_EXT_post_depth_coverage
        Graphics.Vulkan.Ext.VK_EXT_private_data
        Graphics.Vulkan.Ext.VK_EXT_queue_family_foreign
        Graphics.Vulkan.Ext.VK_EXT_robustness2
        Graphics.Vulkan.Ext.VK_EXT_sample_locations
        Graphics.Vulkan.Ext.VK_EXT_sampler_filter_minmax
        Graphics.Vulkan.Ext.VK_EXT_scalar_block_layout
        Graphics.Vulkan.Ext.VK_EXT_separate_stencil_usage
        Graphics.Vulkan.Ext.VK_EXT_shader_atomic_float
        Graphics.Vulkan.Ext.VK_EXT_shader_demote_to_helper_invocation
        Graphics.Vulkan.Ext.VK_EXT_shader_stencil_export
        Graphics.Vulkan.Ext.VK_EXT_shader_subgroup_ballot
        Graphics.Vulkan.Ext.VK_EXT_shader_subgroup_vote
        Graphics.Vulkan.Ext.VK_EXT_shader_viewport_index_layer
        Graphics.Vulkan.Ext.VK_EXT_subgroup_size_control
        Graphics.Vulkan.Ext.VK_EXT_swapchain_colorspace
        Graphics.Vulkan.Ext.VK_EXT_texel_buffer_alignment
        Graphics.Vulkan.Ext.VK_EXT_texture_compression_astc_hdr
        Graphics.Vulkan.Ext.VK_EXT_tooling_info
        Graphics.Vulkan.Ext.VK_EXT_transform_feedback
        Graphics.Vulkan.Ext.VK_EXT_validation_cache
        Graphics.Vulkan.Ext.VK_EXT_validation_features
        Graphics.Vulkan.Ext.VK_EXT_validation_flags
        Graphics.Vulkan.Ext.VK_EXT_vertex_attribute_divisor
        Graphics.Vulkan.Ext.VK_EXT_ycbcr_image_arrays
        Graphics.Vulkan.Ext.VK_GOOGLE_decorate_string
        Graphics.Vulkan.Ext.VK_GOOGLE_display_timing
        Graphics.Vulkan.Ext.VK_GOOGLE_hlsl_functionality1
        Graphics.Vulkan.Ext.VK_GOOGLE_user_type
        Graphics.Vulkan.Ext.VK_IMG_filter_cubic
        Graphics.Vulkan.Ext.VK_IMG_format_pvrtc
        Graphics.Vulkan.Ext.VK_INTEL_performance_query
        Graphics.Vulkan.Ext.VK_INTEL_shader_integer_functions2
        Graphics.Vulkan.Ext.VK_KHR_16bit_storage
        Graphics.Vulkan.Ext.VK_KHR_8bit_storage
        Graphics.Vulkan.Ext.VK_KHR_bind_memory2
        Graphics.Vulkan.Ext.VK_KHR_buffer_device_address
        Graphics.Vulkan.Ext.VK_KHR_create_renderpass2
        Graphics.Vulkan.Ext.VK_KHR_dedicated_allocation
        Graphics.Vulkan.Ext.VK_KHR_depth_stencil_resolve
        Graphics.Vulkan.Ext.VK_KHR_descriptor_update_template
        Graphics.Vulkan.Ext.VK_KHR_device_group
        Graphics.Vulkan.Ext.VK_KHR_device_group_creation
        Graphics.Vulkan.Ext.VK_KHR_display
        Graphics.Vulkan.Ext.VK_KHR_display_swapchain
        Graphics.Vulkan.Ext.VK_KHR_draw_indirect_count
        Graphics.Vulkan.Ext.VK_KHR_driver_properties
        Graphics.Vulkan.Ext.VK_KHR_external_fence
        Graphics.Vulkan.Ext.VK_KHR_external_fence_capabilities
        Graphics.Vulkan.Ext.VK_KHR_external_fence_fd
        Graphics.Vulkan.Ext.VK_KHR_external_memory
        Graphics.Vulkan.Ext.VK_KHR_external_memory_capabilities
        Graphics.Vulkan.Ext.VK_KHR_external_memory_fd
        Graphics.Vulkan.Ext.VK_KHR_external_semaphore
        Graphics.Vulkan.Ext.VK_KHR_external_semaphore_capabilities
        Graphics.Vulkan.Ext.VK_KHR_external_semaphore_fd
        Graphics.Vulkan.Ext.VK_KHR_get_display_properties2
        Graphics.Vulkan.Ext.VK_KHR_get_memory_requirements2
        Graphics.Vulkan.Ext.VK_KHR_get_physical_device_properties2
        Graphics.Vulkan.Ext.VK_KHR_get_surface_capabilities2
        Graphics.Vulkan.Ext.VK_KHR_image_format_list
        Graphics.Vulkan.Ext.VK_KHR_imageless_framebuffer
        Graphics.Vulkan.Ext.VK_KHR_incremental_present
        Graphics.Vulkan.Ext.VK_KHR_maintenance1
        Graphics.Vulkan.Ext.VK_KHR_maintenance2
        Graphics.Vulkan.Ext.VK_KHR_maintenance3
        Graphics.Vulkan.Ext.VK_KHR_multiview
        Graphics.Vulkan.Ext.VK_KHR_performance_query
        Graphics.Vulkan.Ext.VK_KHR_pipeline_executable_properties
        Graphics.Vulkan.Ext.VK_KHR_push_descriptor
        Graphics.Vulkan.Ext.VK_KHR_relaxed_block_layout
        Graphics.Vulkan.Ext.VK_KHR_sampler_mirror_clamp_to_edge
        Graphics.Vulkan.Ext.VK_KHR_sampler_ycbcr_conversion
        Graphics.Vulkan.Ext.VK_KHR_separate_depth_stencil_layouts
        Graphics.Vulkan.Ext.VK_KHR_shader_atomic_int64
        Graphics.Vulkan.Ext.VK_KHR_shader_clock
        Graphics.Vulkan.Ext.VK_KHR_shader_draw_parameters
        Graphics.Vulkan.Ext.VK_KHR_shader_float16_int8
        Graphics.Vulkan.Ext.VK_KHR_shader_float_controls
        Graphics.Vulkan.Ext.VK_KHR_shader_non_semantic_info
        Graphics.Vulkan.Ext.VK_KHR_shader_subgroup_extended_types
        Graphics.Vulkan.Ext.VK_KHR_shared_presentable_image
        Graphics.Vulkan.Ext.VK_KHR_spirv_1_4
        Graphics.Vulkan.Ext.VK_KHR_storage_buffer_storage_class
        Graphics.Vulkan.Ext.VK_KHR_surface
        Graphics.Vulkan.Ext.VK_KHR_surface_protected_capabilities
        Graphics.Vulkan.Ext.VK_KHR_swapchain
        Graphics.Vulkan.Ext.VK_KHR_swapchain_mutable_format
        Graphics.Vulkan.Ext.VK_KHR_timeline_semaphore
        Graphics.Vulkan.Ext.VK_KHR_uniform_buffer_standard_layout
        Graphics.Vulkan.Ext.VK_KHR_variable_pointers
        Graphics.Vulkan.Ext.VK_KHR_vulkan_memory_model
        Graphics.Vulkan.Ext.VK_NVX_image_view_handle
        Graphics.Vulkan.Ext.VK_NVX_multiview_per_view_attributes
        Graphics.Vulkan.Ext.VK_NV_clip_space_w_scaling
        Graphics.Vulkan.Ext.VK_NV_compute_shader_derivatives
        Graphics.Vulkan.Ext.VK_NV_cooperative_matrix
        Graphics.Vulkan.Ext.VK_NV_corner_sampled_image
        Graphics.Vulkan.Ext.VK_NV_coverage_reduction_mode
        Graphics.Vulkan.Ext.VK_NV_dedicated_allocation
        Graphics.Vulkan.Ext.VK_NV_dedicated_allocation_image_aliasing
        Graphics.Vulkan.Ext.VK_NV_device_diagnostic_checkpoints
        Graphics.Vulkan.Ext.VK_NV_device_diagnostics_config
        Graphics.Vulkan.Ext.VK_NV_device_generated_commands
        Graphics.Vulkan.Ext.VK_NV_external_memory
        Graphics.Vulkan.Ext.VK_NV_external_memory_capabilities
        Graphics.Vulkan.Ext.VK_NV_fill_rectangle
        Graphics.Vulkan.Ext.VK_NV_fragment_coverage_to_color
        Graphics.Vulkan.Ext.VK_NV_fragment_shader_barycentric
        Graphics.Vulkan.Ext.VK_NV_framebuffer_mixed_samples
        Graphics.Vulkan.Ext.VK_NV_geometry_shader_passthrough
        Graphics.Vulkan.Ext.VK_NV_glsl_shader
        Graphics.Vulkan.Ext.VK_NV_mesh_shader
        Graphics.Vulkan.Ext.VK_NV_representative_fragment_test
        Graphics.Vulkan.Ext.VK_NV_sample_mask_override_coverage
        Graphics.Vulkan.Ext.VK_NV_scissor_exclusive
        Graphics.Vulkan.Ext.VK_NV_shader_image_footprint
        Graphics.Vulkan.Ext.VK_NV_shader_sm_builtins
        Graphics.Vulkan.Ext.VK_NV_shader_subgroup_partitioned
        Graphics.Vulkan.Ext.VK_NV_shading_rate_image
        Graphics.Vulkan.Ext.VK_NV_viewport_array2
        Graphics.Vulkan.Ext.VK_NV_viewport_swizzle
        Graphics.Vulkan.Ext.VK_QCOM_render_pass_shader_resolve
        Graphics.Vulkan.Ext.VK_QCOM_render_pass_store_ops
        Graphics.Vulkan.Ext.VK_QCOM_render_pass_transform
        Graphics.Vulkan.Marshal
        Graphics.Vulkan.Marshal.Create
        Graphics.Vulkan.Marshal.Internal
        Graphics.Vulkan.Marshal.Proc
    other-modules:
        Graphics.Vulkan.Types.BaseTypes
        Graphics.Vulkan.Types.Bitmasks
        Graphics.Vulkan.Types.Defines
        Graphics.Vulkan.Types.Enum.AccelerationStructure
        Graphics.Vulkan.Types.Enum.AccessFlags
        Graphics.Vulkan.Types.Enum.AcquireProfilingLockFlagsKHR
        Graphics.Vulkan.Types.Enum.Attachment
        Graphics.Vulkan.Types.Enum.Blend
        Graphics.Vulkan.Types.Enum.BorderColor
        Graphics.Vulkan.Types.Enum.Buffer
        Graphics.Vulkan.Types.Enum.BuildAccelerationStructureFlag
        Graphics.Vulkan.Types.Enum.ChromaLocation
        Graphics.Vulkan.Types.Enum.CoarseSampleOrderTypeNV
        Graphics.Vulkan.Types.Enum.Color
        Graphics.Vulkan.Types.Enum.Command
        Graphics.Vulkan.Types.Enum.CompareOp
        Graphics.Vulkan.Types.Enum.Component
        Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
        Graphics.Vulkan.Types.Enum.ConditionalRenderingFlagsEXT
        Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT
        Graphics.Vulkan.Types.Enum.CopyAccelerationStructureMode
        Graphics.Vulkan.Types.Enum.Coverage
        Graphics.Vulkan.Types.Enum.CullModeFlags
        Graphics.Vulkan.Types.Enum.Debug
        Graphics.Vulkan.Types.Enum.DependencyFlags
        Graphics.Vulkan.Types.Enum.Descriptor
        Graphics.Vulkan.Types.Enum.Device
        Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT
        Graphics.Vulkan.Types.Enum.Display
        Graphics.Vulkan.Types.Enum.DriverId
        Graphics.Vulkan.Types.Enum.DynamicState
        Graphics.Vulkan.Types.Enum.External
        Graphics.Vulkan.Types.Enum.Fence
        Graphics.Vulkan.Types.Enum.Filter
        Graphics.Vulkan.Types.Enum.Format
        Graphics.Vulkan.Types.Enum.FramebufferCreateFlags
        Graphics.Vulkan.Types.Enum.FrontFace
        Graphics.Vulkan.Types.Enum.FullScreenExclusiveEXT
        Graphics.Vulkan.Types.Enum.Geometry
        Graphics.Vulkan.Types.Enum.Image
        Graphics.Vulkan.Types.Enum.IndexType
        Graphics.Vulkan.Types.Enum.Indirect
        Graphics.Vulkan.Types.Enum.InstanceCreateFlagBits
        Graphics.Vulkan.Types.Enum.InternalAllocationType
        Graphics.Vulkan.Types.Enum.LineRasterizationModeEXT
        Graphics.Vulkan.Types.Enum.LogicOp
        Graphics.Vulkan.Types.Enum.Memory
        Graphics.Vulkan.Types.Enum.ObjectType
        Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
        Graphics.Vulkan.Types.Enum.Performance
        Graphics.Vulkan.Types.Enum.PhysicalDeviceType
        Graphics.Vulkan.Types.Enum.Pipeline
        Graphics.Vulkan.Types.Enum.PointClippingBehavior
        Graphics.Vulkan.Types.Enum.PolygonMode
        Graphics.Vulkan.Types.Enum.PresentModeKHR
        Graphics.Vulkan.Types.Enum.PrimitiveTopology
        Graphics.Vulkan.Types.Enum.PrivateDataSlotCreateFlagsEXT
        Graphics.Vulkan.Types.Enum.Query
        Graphics.Vulkan.Types.Enum.Queue
        Graphics.Vulkan.Types.Enum.RasterizationOrderAMD
        Graphics.Vulkan.Types.Enum.RayTracingShaderGroupType
        Graphics.Vulkan.Types.Enum.RenderPassCreateFlags
        Graphics.Vulkan.Types.Enum.ResolveModeFlag
        Graphics.Vulkan.Types.Enum.Result
        Graphics.Vulkan.Types.Enum.SampleCountFlags
        Graphics.Vulkan.Types.Enum.Sampler
        Graphics.Vulkan.Types.Enum.ScopeNV
        Graphics.Vulkan.Types.Enum.Semaphore
        Graphics.Vulkan.Types.Enum.Shader
        Graphics.Vulkan.Types.Enum.ShadingRatePaletteEntryNV
        Graphics.Vulkan.Types.Enum.SharingMode
        Graphics.Vulkan.Types.Enum.Sparse
        Graphics.Vulkan.Types.Enum.Stencil
        Graphics.Vulkan.Types.Enum.StructureType
        Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags
        Graphics.Vulkan.Types.Enum.Subpass
        Graphics.Vulkan.Types.Enum.Surface
        Graphics.Vulkan.Types.Enum.Swapchain
        Graphics.Vulkan.Types.Enum.SystemAllocationScope
        Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
        Graphics.Vulkan.Types.Enum.TimeDomainEXT
        Graphics.Vulkan.Types.Enum.ToolPurposeFlagsEXT
        Graphics.Vulkan.Types.Enum.Validation
        Graphics.Vulkan.Types.Enum.VendorId
        Graphics.Vulkan.Types.Enum.VertexInputRate
        Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV
        Graphics.Vulkan.Types.Funcpointers
        Graphics.Vulkan.Types.Handles
        Graphics.Vulkan.Types.Include
        Graphics.Vulkan.Types.Struct.Acquire
        Graphics.Vulkan.Types.Struct.AllocationCallbacks
        Graphics.Vulkan.Types.Struct.ApplicationInfo
        Graphics.Vulkan.Types.Struct.Attachment
        Graphics.Vulkan.Types.Struct.Base
        Graphics.Vulkan.Types.Struct.Bind
        Graphics.Vulkan.Types.Struct.Buffer
        Graphics.Vulkan.Types.Struct.CalibratedTimestampInfoEXT
        Graphics.Vulkan.Types.Struct.CheckpointDataNV
        Graphics.Vulkan.Types.Struct.Clear
        Graphics.Vulkan.Types.Struct.CoarseSample
        Graphics.Vulkan.Types.Struct.Command
        Graphics.Vulkan.Types.Struct.ComponentMapping
        Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
        Graphics.Vulkan.Types.Struct.ConditionalRenderingBeginInfoEXT
        Graphics.Vulkan.Types.Struct.ConformanceVersion
        Graphics.Vulkan.Types.Struct.CooperativeMatrixPropertiesNV
        Graphics.Vulkan.Types.Struct.CopyDescriptorSet
        Graphics.Vulkan.Types.Struct.Debug
        Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
        Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
        Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
        Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
        Graphics.Vulkan.Types.Struct.DedicatedAllocation
        Graphics.Vulkan.Types.Struct.Descriptor
        Graphics.Vulkan.Types.Struct.Device
        Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
        Graphics.Vulkan.Types.Struct.Display
        Graphics.Vulkan.Types.Struct.Draw
        Graphics.Vulkan.Types.Struct.DrmFormatModifierProperties
        Graphics.Vulkan.Types.Struct.EventCreateInfo
        Graphics.Vulkan.Types.Struct.Export
        Graphics.Vulkan.Types.Struct.ExtensionProperties
        Graphics.Vulkan.Types.Struct.Extent
        Graphics.Vulkan.Types.Struct.External
        Graphics.Vulkan.Types.Struct.Fence
        Graphics.Vulkan.Types.Struct.FilterCubicImageViewImageFormatPropertiesEXT
        Graphics.Vulkan.Types.Struct.FormatProperties
        Graphics.Vulkan.Types.Struct.Framebuffer
        Graphics.Vulkan.Types.Struct.GeneratedCommands
        Graphics.Vulkan.Types.Struct.Geometry
        Graphics.Vulkan.Types.Struct.Graphics
        Graphics.Vulkan.Types.Struct.HdrMetadataEXT
        Graphics.Vulkan.Types.Struct.HeadlessSurfaceCreateInfoEXT
        Graphics.Vulkan.Types.Struct.Image
        Graphics.Vulkan.Types.Struct.Import
        Graphics.Vulkan.Types.Struct.IndirectCommands
        Graphics.Vulkan.Types.Struct.InitializePerformanceApiInfoINTEL
        Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
        Graphics.Vulkan.Types.Struct.InstanceCreateInfo
        Graphics.Vulkan.Types.Struct.LayerProperties
        Graphics.Vulkan.Types.Struct.MappedMemoryRange
        Graphics.Vulkan.Types.Struct.Memory
        Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
        Graphics.Vulkan.Types.Struct.Offset
        Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
        Graphics.Vulkan.Types.Struct.Performance
        Graphics.Vulkan.Types.Struct.PhysicalDevice
        Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
        Graphics.Vulkan.Types.Struct.Pipeline
        Graphics.Vulkan.Types.Struct.Present
        Graphics.Vulkan.Types.Struct.PrivateDataSlotCreateInfoEXT
        Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo
        Graphics.Vulkan.Types.Struct.PushConstantRange
        Graphics.Vulkan.Types.Struct.QueryPool
        Graphics.Vulkan.Types.Struct.QueueFamily
        Graphics.Vulkan.Types.Struct.RayTracing
        Graphics.Vulkan.Types.Struct.Rect
        Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
        Graphics.Vulkan.Types.Struct.RenderPass
        Graphics.Vulkan.Types.Struct.SampleLocation
        Graphics.Vulkan.Types.Struct.Sampler
        Graphics.Vulkan.Types.Struct.Semaphore
        Graphics.Vulkan.Types.Struct.SetStateFlagsIndirectCommandNV
        Graphics.Vulkan.Types.Struct.Shader
        Graphics.Vulkan.Types.Struct.ShadingRatePaletteNV
        Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR
        Graphics.Vulkan.Types.Struct.Sparse
        Graphics.Vulkan.Types.Struct.Specialization
        Graphics.Vulkan.Types.Struct.StencilOpState
        Graphics.Vulkan.Types.Struct.SubmitInfo
        Graphics.Vulkan.Types.Struct.Subpass
        Graphics.Vulkan.Types.Struct.SubresourceLayout
        Graphics.Vulkan.Types.Struct.Surface
        Graphics.Vulkan.Types.Struct.Swapchain
        Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD
        Graphics.Vulkan.Types.Struct.TimelineSemaphoreSubmitInfo
        Graphics.Vulkan.Types.Struct.Validation
        Graphics.Vulkan.Types.Struct.VertexInput
        Graphics.Vulkan.Types.Struct.Viewport
        Graphics.Vulkan.Types.Struct.WriteDescriptorSet
        Graphics.Vulkan.Types.Struct.XYColorEXT
    if flag(useUnsafeFFIDefault)
      cpp-options: -DUNSAFE_FFI_DEFAULT

    if flag(enableBetaExtensions)
      cpp-options: -DVK_ENABLE_BETA_EXTENSIONS
      exposed-modules:
        Graphics.Vulkan.Ext.VK_KHR_deferred_host_operations
        Graphics.Vulkan.Ext.VK_KHR_pipeline_library
        Graphics.Vulkan.Ext.VK_KHR_ray_tracing
        Graphics.Vulkan.Ext.VK_NV_ray_tracing
      other-modules:
        Graphics.Vulkan.Types.Struct.AabbPositionsNV
        Graphics.Vulkan.Types.Struct.AccelerationStructure
        Graphics.Vulkan.Types.Struct.EnableBetaExtensions
        Graphics.Vulkan.Types.Struct.TransformMatrixNV

    if flag(usePlatformAndroidKhr)
      cpp-options: -DVK_USE_PLATFORM_ANDROID_KHR
      exposed-modules:
        Graphics.Vulkan.Ext.VK_ANDROID_external_memory_android_hardware_buffer
        Graphics.Vulkan.Ext.VK_KHR_android_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformAndroidKhr

    if flag(usePlatformDirectfbExt)
      cpp-options: -DVK_USE_PLATFORM_DIRECTFB_EXT
      exposed-modules:
        Graphics.Vulkan.Ext.VK_EXT_directfb_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformDirectfbExt

    if flag(usePlatformFuchsia)
      cpp-options: -DVK_USE_PLATFORM_FUCHSIA
      exposed-modules:
        Graphics.Vulkan.Ext.VK_FUCHSIA_imagepipe_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformFuchsia

    if flag(usePlatformGgp)
      cpp-options: -DVK_USE_PLATFORM_GGP
      exposed-modules:
        Graphics.Vulkan.Ext.VK_GGP_frame_token
        Graphics.Vulkan.Ext.VK_GGP_stream_descriptor_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformGgp

    if flag(usePlatformIosMvk)
      cpp-options: -DVK_USE_PLATFORM_IOS_MVK
      exposed-modules:
        Graphics.Vulkan.Ext.VK_MVK_ios_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformIosMvk

    if flag(usePlatformMacosMvk)
      cpp-options: -DVK_USE_PLATFORM_MACOS_MVK
      exposed-modules:
        Graphics.Vulkan.Ext.VK_MVK_macos_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformMacosMvk

    if flag(usePlatformMetalExt)
      cpp-options: -DVK_USE_PLATFORM_METAL_EXT
      exposed-modules:
        Graphics.Vulkan.Ext.VK_EXT_metal_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformMetalExt

    if flag(usePlatformViNn)
      cpp-options: -DVK_USE_PLATFORM_VI_NN
      exposed-modules:
        Graphics.Vulkan.Ext.VK_NN_vi_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformViNn

    if flag(usePlatformWaylandKhr)
      cpp-options: -DVK_USE_PLATFORM_WAYLAND_KHR
      exposed-modules:
        Graphics.Vulkan.Ext.VK_KHR_wayland_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformWaylandKhr

    if flag(usePlatformWin32Khr)
      cpp-options: -DVK_USE_PLATFORM_WIN32_KHR
      exposed-modules:
        Graphics.Vulkan.Ext.VK_EXT_full_screen_exclusive
        Graphics.Vulkan.Ext.VK_KHR_external_fence_win32
        Graphics.Vulkan.Ext.VK_KHR_external_memory_win32
        Graphics.Vulkan.Ext.VK_KHR_external_semaphore_win32
        Graphics.Vulkan.Ext.VK_KHR_win32_keyed_mutex
        Graphics.Vulkan.Ext.VK_KHR_win32_surface
        Graphics.Vulkan.Ext.VK_NV_external_memory_win32
        Graphics.Vulkan.Ext.VK_NV_win32_keyed_mutex
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformWin32Khr

    if flag(usePlatformXcbKhr)
      cpp-options: -DVK_USE_PLATFORM_XCB_KHR
      exposed-modules:
        Graphics.Vulkan.Ext.VK_KHR_xcb_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformXcbKhr

    if flag(usePlatformXlibKhr)
      cpp-options: -DVK_USE_PLATFORM_XLIB_KHR
      exposed-modules:
        Graphics.Vulkan.Ext.VK_KHR_xlib_surface
      other-modules:
        Graphics.Vulkan.Types.Struct.PlatformXlibKhr

    if flag(usePlatformXlibXrandrExt)
      cpp-options: -DVK_USE_PLATFORM_XLIB_XRANDR_EXT
      exposed-modules:
        Graphics.Vulkan.Ext.VK_EXT_acquire_xlib_display
      other-modules:

    if flag(useNativeFFI-1-0)
      cpp-options: -DNATIVE_FFI_VK_VERSION_1_0

    if flag(useNativeFFI-1-1)
      cpp-options: -DNATIVE_FFI_VK_VERSION_1_1

    if flag(useNativeFFI-1-2)
      cpp-options: -DNATIVE_FFI_VK_VERSION_1_2

    build-depends:
        base >= 4.9 && < 5
    default-language:    Haskell2010
    ghc-options:         -Wall
    include-dirs:        include
    c-sources:           cbits/vulkan_loader.c
    if flag(useNativeFFI-1-0) || flag(useNativeFFI-1-1) || flag(useNativeFFI-1-2)
      if os(windows)
        extra-libraries: vulkan-1
      if os(darwin)
        extra-libraries: vulkan
      if !os(windows) && !os(darwin)
        extra-libraries: vulkan
    else
      cpp-options:       -DVK_NO_PROTOTYPES
      cc-options:        -DVK_NO_PROTOTYPES

source-repository head
    type:     git
    location: https://github.com/achirkin/vulkan
    subdir:   vulkan-api