├── .github ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── auto-update.yml │ ├── bump-command.yml │ ├── ci.yml │ ├── command-dispatch.yml │ ├── release.yml │ └── tag-release.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── Setup.hs ├── VulkanMemoryAllocator ├── LICENSE ├── VulkanMemoryAllocator.cabal ├── changelog.md ├── hie.yaml ├── package.yaml ├── readme.md └── src │ ├── VulkanMemoryAllocator.hs │ └── lib.cpp ├── cabal.project ├── changelog.md ├── default.nix ├── examples ├── compute │ └── Main.hs ├── default.nix ├── hie.yaml ├── hlsl │ ├── Frame.hs │ ├── Init.hs │ ├── Main.hs │ ├── MonadFrame.hs │ ├── MonadVulkan.hs │ ├── Pipeline.hs │ ├── Render.hs │ └── RenderPass.hs ├── info │ └── Main.hs ├── lib │ ├── Camera.hs │ ├── Framebuffer.hs │ ├── HasVulkan.hs │ ├── InstrumentDecs.hs │ ├── Orphans.hs │ ├── RefCounted.hs │ ├── Swapchain.hs │ ├── Utils.hs │ └── Window.hs ├── offscreen │ └── Main.hs ├── package.yaml ├── rays │ ├── AccelerationStructure.hs │ ├── Cleanup.hs │ ├── Frame.hs │ ├── Init.hs │ ├── Main.hs │ ├── MonadFrame.hs │ ├── MonadVulkan.hs │ ├── Pipeline.hs │ ├── Render.hs │ └── Scene.hs ├── readme.md ├── resize │ ├── Frame.hs │ ├── Init.hs │ ├── Julia.hs │ ├── Julia │ │ └── Constants.hs │ ├── Main.hs │ ├── MonadVulkan.hs │ ├── Pipeline.hs │ └── Swapchain.hs ├── sdl-triangle │ └── Main.hs ├── timeline-semaphore │ └── Main.hs ├── vrcube │ └── Main.hs └── vulkan-examples.cabal ├── fourmolu.yaml ├── generate-new ├── .gitignore ├── LICENSE ├── examine.md ├── flags.sh ├── generate-new.cabal ├── hie.yaml ├── khronos-spec │ └── Khronos │ │ ├── AssignModules.hs │ │ ├── ExtensionDepElements.hs │ │ ├── Render.hs │ │ ├── SPIRVElements.hs │ │ ├── Utils.hs │ │ └── Versions │ │ └── OpenXR.hs ├── package.yaml ├── patches │ └── pandoc-haddock-tables.patch ├── readme.md ├── src │ ├── Bespoke.hs │ ├── Bespoke │ │ ├── MarshalParams.hs │ │ ├── RenderParams.hs │ │ └── Utils.hs │ ├── Bracket.hs │ ├── CType.hs │ ├── CType │ │ └── Size.hs │ ├── Data │ │ ├── ByteString │ │ │ └── Extra.hs │ │ ├── Text │ │ │ └── Extra.hs │ │ └── Vector │ │ │ ├── Extra.hs │ │ │ └── TopTraverse.hs │ ├── Documentation.hs │ ├── Documentation │ │ ├── All.hs │ │ ├── Haddock.hs │ │ └── RunAsciiDoctor.hs │ ├── Error.hs │ ├── Haskell.hs │ ├── Haskell │ │ └── Name.hs │ ├── Marshal.hs │ ├── Marshal │ │ ├── Command.hs │ │ ├── Marshalable.hs │ │ ├── Scheme.hs │ │ ├── Scheme │ │ │ └── Zero.hs │ │ └── Struct.hs │ ├── Render │ │ ├── Aggregate.hs │ │ ├── Alias.hs │ │ ├── Atom.hs │ │ ├── Command.hs │ │ ├── Constant.hs │ │ ├── Dynamic.hs │ │ ├── Element.hs │ │ ├── Element │ │ │ └── Write.hs │ │ ├── Enum.hs │ │ ├── FuncPointer.hs │ │ ├── Handle.hs │ │ ├── Names.hs │ │ ├── Peek.hs │ │ ├── Scheme.hs │ │ ├── Spec │ │ │ ├── Extends.hs │ │ │ └── Versions.hs │ │ ├── SpecInfo.hs │ │ ├── State.hs │ │ ├── Stmts.hs │ │ ├── Stmts.hs-boot │ │ ├── Stmts │ │ │ ├── Alloc.hs │ │ │ ├── Poke.hs │ │ │ ├── Poke │ │ │ │ ├── SiblingInfo.hs │ │ │ │ └── SiblingInfo.hs-boot │ │ │ └── Utils.hs │ │ ├── Struct.hs │ │ ├── Type.hs │ │ ├── Type │ │ │ └── Preserve.hs │ │ ├── Union.hs │ │ ├── Utils.hs │ │ └── VkException.hs │ ├── Spec │ │ ├── APIConstant.hs │ │ ├── Flavor.hs │ │ ├── Name.hs │ │ ├── Parse.hs │ │ └── Types.hs │ ├── Text │ │ └── InterpolatedString │ │ │ └── Perl6 │ │ │ └── Unindented.hs │ ├── TrackDepends.hs │ ├── VkModulePrefix.hs │ └── Write │ │ └── Segment.hs ├── vk │ ├── Main.hs │ └── VK │ │ └── Bracket.hs ├── vma │ ├── Main.hs │ └── VMA │ │ ├── Bracket.hs │ │ ├── Documentation.hs │ │ ├── Render.hs │ │ └── RenderParams.hs └── xr │ ├── Main.hs │ └── XR │ ├── Bracket.hs │ └── RenderParams.hs ├── haskell-vulkan.png ├── hie.yaml ├── nix ├── generate.nix ├── haskell-packages.nix ├── nixpkgs.nix └── release.nix ├── openxr ├── changelog.md ├── openxr.cabal ├── package.yaml ├── readme.md ├── src-manual │ └── OpenXR │ │ ├── CStruct.hs │ │ ├── Internal │ │ └── Utils.hs │ │ ├── VulkanTypes.hs │ │ └── Zero.hs └── src │ ├── OpenXR.hs │ └── OpenXR │ ├── CStruct │ ├── Extends.hs │ ├── Extends.hs-boot │ └── Utils.hs │ ├── Core10.hs │ ├── Core10 │ ├── APIConstants.hs │ ├── APIConstants.hs-boot │ ├── Device.hs │ ├── Device.hs-boot │ ├── DisplayTiming.hs │ ├── DisplayTiming.hs-boot │ ├── Enums.hs │ ├── Enums │ │ ├── ActionType.hs │ │ ├── CompositionLayerFlagBits.hs │ │ ├── EnvironmentBlendMode.hs │ │ ├── EnvironmentBlendMode.hs-boot │ │ ├── EyeVisibility.hs │ │ ├── FormFactor.hs │ │ ├── InputSourceLocalizedNameFlagBits.hs │ │ ├── InstanceCreateFlagBits.hs │ │ ├── ObjectType.hs │ │ ├── ReferenceSpaceType.hs │ │ ├── ReferenceSpaceType.hs-boot │ │ ├── Result.hs │ │ ├── Result.hs-boot │ │ ├── SessionCreateFlagBits.hs │ │ ├── SessionState.hs │ │ ├── SpaceLocationFlagBits.hs │ │ ├── SpaceVelocityFlagBits.hs │ │ ├── StructureType.hs │ │ ├── StructureType.hs-boot │ │ ├── SwapchainCreateFlagBits.hs │ │ ├── SwapchainUsageFlagBits.hs │ │ ├── ViewConfigurationType.hs │ │ ├── ViewConfigurationType.hs-boot │ │ └── ViewStateFlagBits.hs │ ├── FuncPointers.hs │ ├── FuncPointers.hs-boot │ ├── FundamentalTypes.hs │ ├── FundamentalTypes.hs-boot │ ├── Handles.hs │ ├── Handles.hs-boot │ ├── Haptics.hs │ ├── Haptics.hs-boot │ ├── Image.hs │ ├── Image.hs-boot │ ├── Input.hs │ ├── Input.hs-boot │ ├── Instance.hs │ ├── Instance.hs-boot │ ├── OtherTypes.hs │ ├── OtherTypes.hs-boot │ ├── SemanticPaths.hs │ ├── SemanticPaths.hs-boot │ ├── Session.hs │ ├── Session.hs-boot │ ├── Space.hs │ ├── Space.hs-boot │ ├── ViewConfigurations.hs │ └── ViewConfigurations.hs-boot │ ├── Dynamic.hs │ ├── Dynamic.hs-boot │ ├── Exception.hs │ ├── Extensions.hs │ ├── Extensions │ ├── Dependencies.hs │ ├── Handles.hs │ ├── Handles.hs-boot │ ├── XR_EPIC_view_configuration_fov.hs │ ├── XR_EPIC_view_configuration_fov.hs-boot │ ├── XR_EXTX_overlay.hs │ ├── XR_EXTX_overlay.hs-boot │ ├── XR_EXT_debug_utils.hs │ ├── XR_EXT_debug_utils.hs-boot │ ├── XR_EXT_eye_gaze_interaction.hs │ ├── XR_EXT_eye_gaze_interaction.hs-boot │ ├── XR_EXT_hand_tracking.hs │ ├── XR_EXT_hand_tracking.hs-boot │ ├── XR_EXT_hp_mixed_reality_controller.hs │ ├── XR_EXT_performance_settings.hs │ ├── XR_EXT_performance_settings.hs-boot │ ├── XR_EXT_samsung_odyssey_controller.hs │ ├── XR_EXT_thermal_query.hs │ ├── XR_EXT_view_configuration_depth_range.hs │ ├── XR_EXT_view_configuration_depth_range.hs-boot │ ├── XR_EXT_win32_appcontainer_compatible.hs │ ├── XR_FB_color_space.hs │ ├── XR_FB_color_space.hs-boot │ ├── XR_FB_display_refresh_rate.hs │ ├── XR_FB_display_refresh_rate.hs-boot │ ├── XR_HTC_vive_cosmos_controller_interaction.hs │ ├── XR_HUAWEI_controller_interaction.hs │ ├── XR_KHR_D3D11_enable.hs │ ├── XR_KHR_D3D11_enable.hs-boot │ ├── XR_KHR_D3D12_enable.hs │ ├── XR_KHR_D3D12_enable.hs-boot │ ├── XR_KHR_android_create_instance.hs │ ├── XR_KHR_android_create_instance.hs-boot │ ├── XR_KHR_android_surface_swapchain.hs │ ├── XR_KHR_android_surface_swapchain.hs-boot │ ├── XR_KHR_android_thread_settings.hs │ ├── XR_KHR_android_thread_settings.hs-boot │ ├── XR_KHR_binding_modification.hs │ ├── XR_KHR_binding_modification.hs-boot │ ├── XR_KHR_composition_layer_color_scale_bias.hs │ ├── XR_KHR_composition_layer_color_scale_bias.hs-boot │ ├── XR_KHR_composition_layer_cube.hs │ ├── XR_KHR_composition_layer_cube.hs-boot │ ├── XR_KHR_composition_layer_cylinder.hs │ ├── XR_KHR_composition_layer_cylinder.hs-boot │ ├── XR_KHR_composition_layer_depth.hs │ ├── XR_KHR_composition_layer_depth.hs-boot │ ├── XR_KHR_composition_layer_equirect.hs │ ├── XR_KHR_composition_layer_equirect.hs-boot │ ├── XR_KHR_composition_layer_equirect2.hs │ ├── XR_KHR_composition_layer_equirect2.hs-boot │ ├── XR_KHR_convert_timespec_time.hs │ ├── XR_KHR_convert_timespec_time.hs-boot │ ├── XR_KHR_loader_init.hs │ ├── XR_KHR_loader_init.hs-boot │ ├── XR_KHR_loader_init_android.hs │ ├── XR_KHR_loader_init_android.hs-boot │ ├── XR_KHR_opengl_enable.hs │ ├── XR_KHR_opengl_enable.hs-boot │ ├── XR_KHR_opengl_es_enable.hs │ ├── XR_KHR_opengl_es_enable.hs-boot │ ├── XR_KHR_visibility_mask.hs │ ├── XR_KHR_visibility_mask.hs-boot │ ├── XR_KHR_vulkan_enable.hs │ ├── XR_KHR_vulkan_enable.hs-boot │ ├── XR_KHR_vulkan_enable2.hs │ ├── XR_KHR_vulkan_enable2.hs-boot │ ├── XR_KHR_vulkan_swapchain_format_list.hs │ ├── XR_KHR_vulkan_swapchain_format_list.hs-boot │ ├── XR_KHR_win32_convert_performance_counter_time.hs │ ├── XR_KHR_win32_convert_performance_counter_time.hs-boot │ ├── XR_MNDX_egl_enable.hs │ ├── XR_MNDX_egl_enable.hs-boot │ ├── XR_MND_headless.hs │ ├── XR_MND_swapchain_usage_input_attachment_bit.hs │ ├── XR_MSFT_controller_model.hs │ ├── XR_MSFT_controller_model.hs-boot │ ├── XR_MSFT_first_person_observer.hs │ ├── XR_MSFT_hand_interaction.hs │ ├── XR_MSFT_hand_tracking_mesh.hs │ ├── XR_MSFT_hand_tracking_mesh.hs-boot │ ├── XR_MSFT_holographic_window_attachment.hs │ ├── XR_MSFT_holographic_window_attachment.hs-boot │ ├── XR_MSFT_perception_anchor_interop.hs │ ├── XR_MSFT_perception_anchor_interop.hs-boot │ ├── XR_MSFT_secondary_view_configuration.hs │ ├── XR_MSFT_secondary_view_configuration.hs-boot │ ├── XR_MSFT_spatial_anchor.hs │ ├── XR_MSFT_spatial_anchor.hs-boot │ ├── XR_MSFT_spatial_graph_bridge.hs │ ├── XR_MSFT_spatial_graph_bridge.hs-boot │ ├── XR_MSFT_unbounded_reference_space.hs │ ├── XR_OCULUS_android_session_state_enable.hs │ ├── XR_VALVE_analog_threshold.hs │ ├── XR_VALVE_analog_threshold.hs-boot │ └── XR_VARJO_quad_views.hs │ ├── NamedType.hs │ └── Version.hs ├── package.yaml ├── readme.md ├── release-checklist.md ├── scripts ├── regenerate.sh ├── release.sh └── update.sh ├── src-manual └── Vulkan │ ├── CStruct.hs │ ├── Internal │ └── Utils.hs │ ├── Requirement.hs │ └── Zero.hs ├── src ├── Vulkan.hs └── Vulkan │ ├── CStruct │ ├── Extends.hs │ ├── Extends.hs-boot │ └── Utils.hs │ ├── Core10.hs │ ├── Core10 │ ├── APIConstants.hs │ ├── APIConstants.hs-boot │ ├── AllocationCallbacks.hs │ ├── AllocationCallbacks.hs-boot │ ├── Buffer.hs │ ├── Buffer.hs-boot │ ├── BufferView.hs │ ├── BufferView.hs-boot │ ├── CommandBuffer.hs │ ├── CommandBuffer.hs-boot │ ├── CommandBufferBuilding.hs │ ├── CommandBufferBuilding.hs-boot │ ├── CommandPool.hs │ ├── CommandPool.hs-boot │ ├── DescriptorSet.hs │ ├── DescriptorSet.hs-boot │ ├── Device.hs │ ├── Device.hs-boot │ ├── DeviceInitialization.hs │ ├── DeviceInitialization.hs-boot │ ├── Enums.hs │ ├── Enums │ │ ├── AccessFlagBits.hs │ │ ├── AttachmentDescriptionFlagBits.hs │ │ ├── AttachmentLoadOp.hs │ │ ├── AttachmentStoreOp.hs │ │ ├── BlendFactor.hs │ │ ├── BlendOp.hs │ │ ├── BorderColor.hs │ │ ├── BufferCreateFlagBits.hs │ │ ├── BufferUsageFlagBits.hs │ │ ├── BufferViewCreateFlags.hs │ │ ├── ColorComponentFlagBits.hs │ │ ├── ColorComponentFlagBits.hs-boot │ │ ├── CommandBufferLevel.hs │ │ ├── CommandBufferResetFlagBits.hs │ │ ├── CommandBufferResetFlagBits.hs-boot │ │ ├── CommandBufferUsageFlagBits.hs │ │ ├── CommandPoolCreateFlagBits.hs │ │ ├── CommandPoolResetFlagBits.hs │ │ ├── CommandPoolResetFlagBits.hs-boot │ │ ├── CompareOp.hs │ │ ├── CompareOp.hs-boot │ │ ├── ComponentSwizzle.hs │ │ ├── CullModeFlagBits.hs │ │ ├── CullModeFlagBits.hs-boot │ │ ├── DependencyFlagBits.hs │ │ ├── DependencyFlagBits.hs-boot │ │ ├── DescriptorPoolCreateFlagBits.hs │ │ ├── DescriptorPoolResetFlags.hs │ │ ├── DescriptorPoolResetFlags.hs-boot │ │ ├── DescriptorSetLayoutCreateFlagBits.hs │ │ ├── DescriptorType.hs │ │ ├── DeviceCreateFlags.hs │ │ ├── DeviceQueueCreateFlagBits.hs │ │ ├── DynamicState.hs │ │ ├── EventCreateFlagBits.hs │ │ ├── FenceCreateFlagBits.hs │ │ ├── Filter.hs │ │ ├── Filter.hs-boot │ │ ├── Format.hs │ │ ├── Format.hs-boot │ │ ├── FormatFeatureFlagBits.hs │ │ ├── FramebufferCreateFlagBits.hs │ │ ├── FrontFace.hs │ │ ├── FrontFace.hs-boot │ │ ├── ImageAspectFlagBits.hs │ │ ├── ImageAspectFlagBits.hs-boot │ │ ├── ImageCreateFlagBits.hs │ │ ├── ImageCreateFlagBits.hs-boot │ │ ├── ImageLayout.hs │ │ ├── ImageLayout.hs-boot │ │ ├── ImageTiling.hs │ │ ├── ImageTiling.hs-boot │ │ ├── ImageType.hs │ │ ├── ImageType.hs-boot │ │ ├── ImageUsageFlagBits.hs │ │ ├── ImageUsageFlagBits.hs-boot │ │ ├── ImageViewCreateFlagBits.hs │ │ ├── ImageViewType.hs │ │ ├── IndexType.hs │ │ ├── IndexType.hs-boot │ │ ├── InstanceCreateFlagBits.hs │ │ ├── InternalAllocationType.hs │ │ ├── LogicOp.hs │ │ ├── LogicOp.hs-boot │ │ ├── MemoryHeapFlagBits.hs │ │ ├── MemoryMapFlags.hs │ │ ├── MemoryMapFlags.hs-boot │ │ ├── MemoryPropertyFlagBits.hs │ │ ├── ObjectType.hs │ │ ├── ObjectType.hs-boot │ │ ├── PhysicalDeviceType.hs │ │ ├── PipelineBindPoint.hs │ │ ├── PipelineBindPoint.hs-boot │ │ ├── PipelineCacheCreateFlagBits.hs │ │ ├── PipelineCacheHeaderVersion.hs │ │ ├── PipelineColorBlendStateCreateFlagBits.hs │ │ ├── PipelineCreateFlagBits.hs │ │ ├── PipelineDepthStencilStateCreateFlagBits.hs │ │ ├── PipelineDynamicStateCreateFlags.hs │ │ ├── PipelineInputAssemblyStateCreateFlags.hs │ │ ├── PipelineLayoutCreateFlagBits.hs │ │ ├── PipelineMultisampleStateCreateFlags.hs │ │ ├── PipelineRasterizationStateCreateFlags.hs │ │ ├── PipelineShaderStageCreateFlagBits.hs │ │ ├── PipelineStageFlagBits.hs │ │ ├── PipelineStageFlagBits.hs-boot │ │ ├── PipelineTessellationStateCreateFlags.hs │ │ ├── PipelineVertexInputStateCreateFlags.hs │ │ ├── PipelineViewportStateCreateFlags.hs │ │ ├── PolygonMode.hs │ │ ├── PolygonMode.hs-boot │ │ ├── PrimitiveTopology.hs │ │ ├── PrimitiveTopology.hs-boot │ │ ├── QueryControlFlagBits.hs │ │ ├── QueryControlFlagBits.hs-boot │ │ ├── QueryPipelineStatisticFlagBits.hs │ │ ├── QueryPoolCreateFlags.hs │ │ ├── QueryResultFlagBits.hs │ │ ├── QueryResultFlagBits.hs-boot │ │ ├── QueryType.hs │ │ ├── QueryType.hs-boot │ │ ├── QueueFlagBits.hs │ │ ├── RenderPassCreateFlagBits.hs │ │ ├── Result.hs │ │ ├── Result.hs-boot │ │ ├── SampleCountFlagBits.hs │ │ ├── SampleCountFlagBits.hs-boot │ │ ├── SamplerAddressMode.hs │ │ ├── SamplerCreateFlagBits.hs │ │ ├── SamplerMipmapMode.hs │ │ ├── SemaphoreCreateFlags.hs │ │ ├── ShaderModuleCreateFlags.hs │ │ ├── ShaderStageFlagBits.hs │ │ ├── ShaderStageFlagBits.hs-boot │ │ ├── SharingMode.hs │ │ ├── SparseImageFormatFlagBits.hs │ │ ├── SparseMemoryBindFlagBits.hs │ │ ├── StencilFaceFlagBits.hs │ │ ├── StencilFaceFlagBits.hs-boot │ │ ├── StencilOp.hs │ │ ├── StencilOp.hs-boot │ │ ├── StructureType.hs │ │ ├── SubpassContents.hs │ │ ├── SubpassContents.hs-boot │ │ ├── SubpassDescriptionFlagBits.hs │ │ ├── SystemAllocationScope.hs │ │ ├── VendorId.hs │ │ └── VertexInputRate.hs │ ├── Event.hs │ ├── Event.hs-boot │ ├── ExtensionDiscovery.hs │ ├── ExtensionDiscovery.hs-boot │ ├── Fence.hs │ ├── Fence.hs-boot │ ├── FuncPointers.hs │ ├── FuncPointers.hs-boot │ ├── FundamentalTypes.hs │ ├── FundamentalTypes.hs-boot │ ├── Handles.hs │ ├── Handles.hs-boot │ ├── Image.hs │ ├── Image.hs-boot │ ├── ImageView.hs │ ├── ImageView.hs-boot │ ├── LayerDiscovery.hs │ ├── LayerDiscovery.hs-boot │ ├── Memory.hs │ ├── Memory.hs-boot │ ├── MemoryManagement.hs │ ├── MemoryManagement.hs-boot │ ├── OtherTypes.hs │ ├── OtherTypes.hs-boot │ ├── Pass.hs │ ├── Pass.hs-boot │ ├── Pipeline.hs │ ├── Pipeline.hs-boot │ ├── PipelineCache.hs │ ├── PipelineCache.hs-boot │ ├── PipelineLayout.hs │ ├── PipelineLayout.hs-boot │ ├── Query.hs │ ├── Query.hs-boot │ ├── Queue.hs │ ├── Queue.hs-boot │ ├── QueueSemaphore.hs │ ├── QueueSemaphore.hs-boot │ ├── Sampler.hs │ ├── Sampler.hs-boot │ ├── Shader.hs │ ├── Shader.hs-boot │ ├── SparseResourceMemoryManagement.hs │ └── SparseResourceMemoryManagement.hs-boot │ ├── Core11.hs │ ├── Core11 │ ├── DeviceInitialization.hs │ ├── Enums.hs │ ├── Enums │ │ ├── ChromaLocation.hs │ │ ├── ChromaLocation.hs-boot │ │ ├── CommandPoolTrimFlags.hs │ │ ├── CommandPoolTrimFlags.hs-boot │ │ ├── DescriptorUpdateTemplateCreateFlags.hs │ │ ├── DescriptorUpdateTemplateCreateFlags.hs-boot │ │ ├── DescriptorUpdateTemplateType.hs │ │ ├── DescriptorUpdateTemplateType.hs-boot │ │ ├── ExternalFenceFeatureFlagBits.hs │ │ ├── ExternalFenceFeatureFlagBits.hs-boot │ │ ├── ExternalFenceHandleTypeFlagBits.hs │ │ ├── ExternalFenceHandleTypeFlagBits.hs-boot │ │ ├── ExternalMemoryFeatureFlagBits.hs │ │ ├── ExternalMemoryFeatureFlagBits.hs-boot │ │ ├── ExternalMemoryHandleTypeFlagBits.hs │ │ ├── ExternalMemoryHandleTypeFlagBits.hs-boot │ │ ├── ExternalSemaphoreFeatureFlagBits.hs │ │ ├── ExternalSemaphoreFeatureFlagBits.hs-boot │ │ ├── ExternalSemaphoreHandleTypeFlagBits.hs │ │ ├── ExternalSemaphoreHandleTypeFlagBits.hs-boot │ │ ├── FenceImportFlagBits.hs │ │ ├── FenceImportFlagBits.hs-boot │ │ ├── MemoryAllocateFlagBits.hs │ │ ├── MemoryAllocateFlagBits.hs-boot │ │ ├── PeerMemoryFeatureFlagBits.hs │ │ ├── PeerMemoryFeatureFlagBits.hs-boot │ │ ├── PointClippingBehavior.hs │ │ ├── PointClippingBehavior.hs-boot │ │ ├── SamplerYcbcrModelConversion.hs │ │ ├── SamplerYcbcrModelConversion.hs-boot │ │ ├── SamplerYcbcrRange.hs │ │ ├── SamplerYcbcrRange.hs-boot │ │ ├── SemaphoreImportFlagBits.hs │ │ ├── SemaphoreImportFlagBits.hs-boot │ │ ├── SubgroupFeatureFlagBits.hs │ │ ├── TessellationDomainOrigin.hs │ │ └── TessellationDomainOrigin.hs-boot │ ├── Handles.hs │ ├── Handles.hs-boot │ ├── Originally_Based_On_VK_KHR_protected_memory.hs │ ├── Originally_Based_On_VK_KHR_protected_memory.hs-boot │ ├── Originally_Based_On_VK_KHR_subgroup.hs │ ├── Originally_Based_On_VK_KHR_subgroup.hs-boot │ ├── Promoted_From_VK_KHR_16bit_storage.hs │ ├── Promoted_From_VK_KHR_16bit_storage.hs-boot │ ├── Promoted_From_VK_KHR_bind_memory2.hs │ ├── Promoted_From_VK_KHR_bind_memory2.hs-boot │ ├── Promoted_From_VK_KHR_dedicated_allocation.hs │ ├── Promoted_From_VK_KHR_dedicated_allocation.hs-boot │ ├── Promoted_From_VK_KHR_descriptor_update_template.hs │ ├── Promoted_From_VK_KHR_descriptor_update_template.hs-boot │ ├── Promoted_From_VK_KHR_device_group.hs │ ├── Promoted_From_VK_KHR_device_group.hs-boot │ ├── Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs │ ├── Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs-boot │ ├── Promoted_From_VK_KHR_device_group_creation.hs │ ├── Promoted_From_VK_KHR_device_group_creation.hs-boot │ ├── Promoted_From_VK_KHR_external_fence.hs │ ├── Promoted_From_VK_KHR_external_fence.hs-boot │ ├── Promoted_From_VK_KHR_external_fence_capabilities.hs │ ├── Promoted_From_VK_KHR_external_fence_capabilities.hs-boot │ ├── Promoted_From_VK_KHR_external_memory.hs │ ├── Promoted_From_VK_KHR_external_memory.hs-boot │ ├── Promoted_From_VK_KHR_external_memory_capabilities.hs │ ├── Promoted_From_VK_KHR_external_memory_capabilities.hs-boot │ ├── Promoted_From_VK_KHR_external_semaphore.hs │ ├── Promoted_From_VK_KHR_external_semaphore.hs-boot │ ├── Promoted_From_VK_KHR_external_semaphore_capabilities.hs │ ├── Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot │ ├── Promoted_From_VK_KHR_get_memory_requirements2.hs │ ├── Promoted_From_VK_KHR_get_memory_requirements2.hs-boot │ ├── Promoted_From_VK_KHR_get_physical_device_properties2.hs │ ├── Promoted_From_VK_KHR_get_physical_device_properties2.hs-boot │ ├── Promoted_From_VK_KHR_maintenance1.hs │ ├── Promoted_From_VK_KHR_maintenance2.hs │ ├── Promoted_From_VK_KHR_maintenance2.hs-boot │ ├── Promoted_From_VK_KHR_maintenance3.hs │ ├── Promoted_From_VK_KHR_maintenance3.hs-boot │ ├── Promoted_From_VK_KHR_multiview.hs │ ├── Promoted_From_VK_KHR_multiview.hs-boot │ ├── Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs │ ├── Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs-boot │ ├── Promoted_From_VK_KHR_shader_draw_parameters.hs │ ├── Promoted_From_VK_KHR_shader_draw_parameters.hs-boot │ ├── Promoted_From_VK_KHR_variable_pointers.hs │ └── Promoted_From_VK_KHR_variable_pointers.hs-boot │ ├── Core12.hs │ ├── Core12.hs-boot │ ├── Core12 │ ├── Enums.hs │ ├── Enums │ │ ├── DescriptorBindingFlagBits.hs │ │ ├── DescriptorBindingFlagBits.hs-boot │ │ ├── DriverId.hs │ │ ├── DriverId.hs-boot │ │ ├── ResolveModeFlagBits.hs │ │ ├── ResolveModeFlagBits.hs-boot │ │ ├── SamplerReductionMode.hs │ │ ├── SamplerReductionMode.hs-boot │ │ ├── SemaphoreType.hs │ │ ├── SemaphoreType.hs-boot │ │ ├── SemaphoreWaitFlagBits.hs │ │ ├── SemaphoreWaitFlagBits.hs-boot │ │ ├── ShaderFloatControlsIndependence.hs │ │ └── ShaderFloatControlsIndependence.hs-boot │ ├── Promoted_From_VK_EXT_descriptor_indexing.hs │ ├── Promoted_From_VK_EXT_descriptor_indexing.hs-boot │ ├── Promoted_From_VK_EXT_host_query_reset.hs │ ├── Promoted_From_VK_EXT_host_query_reset.hs-boot │ ├── Promoted_From_VK_EXT_sampler_filter_minmax.hs │ ├── Promoted_From_VK_EXT_sampler_filter_minmax.hs-boot │ ├── Promoted_From_VK_EXT_scalar_block_layout.hs │ ├── Promoted_From_VK_EXT_scalar_block_layout.hs-boot │ ├── Promoted_From_VK_EXT_separate_stencil_usage.hs │ ├── Promoted_From_VK_EXT_separate_stencil_usage.hs-boot │ ├── Promoted_From_VK_KHR_8bit_storage.hs │ ├── Promoted_From_VK_KHR_8bit_storage.hs-boot │ ├── Promoted_From_VK_KHR_buffer_device_address.hs │ ├── Promoted_From_VK_KHR_buffer_device_address.hs-boot │ ├── Promoted_From_VK_KHR_create_renderpass2.hs │ ├── Promoted_From_VK_KHR_create_renderpass2.hs-boot │ ├── Promoted_From_VK_KHR_depth_stencil_resolve.hs │ ├── Promoted_From_VK_KHR_depth_stencil_resolve.hs-boot │ ├── Promoted_From_VK_KHR_draw_indirect_count.hs │ ├── Promoted_From_VK_KHR_driver_properties.hs │ ├── Promoted_From_VK_KHR_driver_properties.hs-boot │ ├── Promoted_From_VK_KHR_image_format_list.hs │ ├── Promoted_From_VK_KHR_image_format_list.hs-boot │ ├── Promoted_From_VK_KHR_imageless_framebuffer.hs │ ├── Promoted_From_VK_KHR_imageless_framebuffer.hs-boot │ ├── Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs │ ├── Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs-boot │ ├── Promoted_From_VK_KHR_shader_atomic_int64.hs │ ├── Promoted_From_VK_KHR_shader_atomic_int64.hs-boot │ ├── Promoted_From_VK_KHR_shader_float16_int8.hs │ ├── Promoted_From_VK_KHR_shader_float16_int8.hs-boot │ ├── Promoted_From_VK_KHR_shader_float_controls.hs │ ├── Promoted_From_VK_KHR_shader_float_controls.hs-boot │ ├── Promoted_From_VK_KHR_shader_subgroup_extended_types.hs │ ├── Promoted_From_VK_KHR_shader_subgroup_extended_types.hs-boot │ ├── Promoted_From_VK_KHR_timeline_semaphore.hs │ ├── Promoted_From_VK_KHR_timeline_semaphore.hs-boot │ ├── Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs │ ├── Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs-boot │ ├── Promoted_From_VK_KHR_vulkan_memory_model.hs │ └── Promoted_From_VK_KHR_vulkan_memory_model.hs-boot │ ├── Core13.hs │ ├── Core13.hs-boot │ ├── Core13 │ ├── Enums.hs │ ├── Enums │ │ ├── AccessFlags2.hs │ │ ├── AccessFlags2.hs-boot │ │ ├── FormatFeatureFlags2.hs │ │ ├── FormatFeatureFlags2.hs-boot │ │ ├── PipelineCreationFeedbackFlagBits.hs │ │ ├── PipelineCreationFeedbackFlagBits.hs-boot │ │ ├── PipelineStageFlags2.hs │ │ ├── PipelineStageFlags2.hs-boot │ │ ├── PrivateDataSlotCreateFlags.hs │ │ ├── PrivateDataSlotCreateFlags.hs-boot │ │ ├── RenderingFlagBits.hs │ │ ├── RenderingFlagBits.hs-boot │ │ ├── SubmitFlagBits.hs │ │ ├── SubmitFlagBits.hs-boot │ │ ├── ToolPurposeFlagBits.hs │ │ └── ToolPurposeFlagBits.hs-boot │ ├── Handles.hs │ ├── Handles.hs-boot │ ├── Promoted_From_VK_EXT_extended_dynamic_state.hs │ ├── Promoted_From_VK_EXT_extended_dynamic_state2.hs │ ├── Promoted_From_VK_EXT_image_robustness.hs │ ├── Promoted_From_VK_EXT_image_robustness.hs-boot │ ├── Promoted_From_VK_EXT_inline_uniform_block.hs │ ├── Promoted_From_VK_EXT_inline_uniform_block.hs-boot │ ├── Promoted_From_VK_EXT_pipeline_creation_cache_control.hs │ ├── Promoted_From_VK_EXT_pipeline_creation_cache_control.hs-boot │ ├── Promoted_From_VK_EXT_pipeline_creation_feedback.hs │ ├── Promoted_From_VK_EXT_pipeline_creation_feedback.hs-boot │ ├── Promoted_From_VK_EXT_private_data.hs │ ├── Promoted_From_VK_EXT_private_data.hs-boot │ ├── Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs │ ├── Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs-boot │ ├── Promoted_From_VK_EXT_subgroup_size_control.hs │ ├── Promoted_From_VK_EXT_subgroup_size_control.hs-boot │ ├── Promoted_From_VK_EXT_texel_buffer_alignment.hs │ ├── Promoted_From_VK_EXT_texel_buffer_alignment.hs-boot │ ├── Promoted_From_VK_EXT_texture_compression_astc_hdr.hs │ ├── Promoted_From_VK_EXT_texture_compression_astc_hdr.hs-boot │ ├── Promoted_From_VK_EXT_tooling_info.hs │ ├── Promoted_From_VK_EXT_tooling_info.hs-boot │ ├── Promoted_From_VK_KHR_copy_commands2.hs │ ├── Promoted_From_VK_KHR_copy_commands2.hs-boot │ ├── Promoted_From_VK_KHR_dynamic_rendering.hs │ ├── Promoted_From_VK_KHR_dynamic_rendering.hs-boot │ ├── Promoted_From_VK_KHR_format_feature_flags2.hs │ ├── Promoted_From_VK_KHR_format_feature_flags2.hs-boot │ ├── Promoted_From_VK_KHR_maintenance4.hs │ ├── Promoted_From_VK_KHR_maintenance4.hs-boot │ ├── Promoted_From_VK_KHR_shader_integer_dot_product.hs │ ├── Promoted_From_VK_KHR_shader_integer_dot_product.hs-boot │ ├── Promoted_From_VK_KHR_shader_terminate_invocation.hs │ ├── Promoted_From_VK_KHR_shader_terminate_invocation.hs-boot │ ├── Promoted_From_VK_KHR_synchronization2.hs │ ├── Promoted_From_VK_KHR_synchronization2.hs-boot │ ├── Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs │ └── Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs-boot │ ├── Dynamic.hs │ ├── Dynamic.hs-boot │ ├── Exception.hs │ ├── Extensions.hs │ ├── Extensions │ ├── Dependencies.hs │ ├── Handles.hs │ ├── Handles.hs-boot │ ├── VK_AMDX_shader_enqueue.hs │ ├── VK_AMDX_shader_enqueue.hs-boot │ ├── VK_AMD_buffer_marker.hs │ ├── VK_AMD_device_coherent_memory.hs │ ├── VK_AMD_device_coherent_memory.hs-boot │ ├── VK_AMD_display_native_hdr.hs │ ├── VK_AMD_display_native_hdr.hs-boot │ ├── VK_AMD_draw_indirect_count.hs │ ├── VK_AMD_gcn_shader.hs │ ├── VK_AMD_gpu_shader_half_float.hs │ ├── VK_AMD_gpu_shader_int16.hs │ ├── VK_AMD_memory_overallocation_behavior.hs │ ├── VK_AMD_memory_overallocation_behavior.hs-boot │ ├── VK_AMD_mixed_attachment_samples.hs │ ├── VK_AMD_negative_viewport_height.hs │ ├── VK_AMD_pipeline_compiler_control.hs │ ├── VK_AMD_pipeline_compiler_control.hs-boot │ ├── VK_AMD_rasterization_order.hs │ ├── VK_AMD_rasterization_order.hs-boot │ ├── VK_AMD_shader_ballot.hs │ ├── VK_AMD_shader_core_properties.hs │ ├── VK_AMD_shader_core_properties.hs-boot │ ├── VK_AMD_shader_core_properties2.hs │ ├── VK_AMD_shader_core_properties2.hs-boot │ ├── VK_AMD_shader_early_and_late_fragment_tests.hs │ ├── VK_AMD_shader_early_and_late_fragment_tests.hs-boot │ ├── VK_AMD_shader_explicit_vertex_parameter.hs │ ├── VK_AMD_shader_fragment_mask.hs │ ├── VK_AMD_shader_image_load_store_lod.hs │ ├── VK_AMD_shader_info.hs │ ├── VK_AMD_shader_info.hs-boot │ ├── VK_AMD_shader_trinary_minmax.hs │ ├── VK_AMD_texture_gather_bias_lod.hs │ ├── VK_AMD_texture_gather_bias_lod.hs-boot │ ├── VK_ANDROID_external_format_resolve.hs │ ├── VK_ANDROID_external_format_resolve.hs-boot │ ├── VK_ANDROID_external_memory_android_hardware_buffer.hs │ ├── VK_ANDROID_external_memory_android_hardware_buffer.hs-boot │ ├── VK_ARM_rasterization_order_attachment_access.hs │ ├── VK_ARM_render_pass_striped.hs │ ├── VK_ARM_render_pass_striped.hs-boot │ ├── VK_ARM_scheduling_controls.hs │ ├── VK_ARM_scheduling_controls.hs-boot │ ├── VK_ARM_shader_core_builtins.hs │ ├── VK_ARM_shader_core_builtins.hs-boot │ ├── VK_ARM_shader_core_properties.hs │ ├── VK_ARM_shader_core_properties.hs-boot │ ├── VK_EXT_4444_formats.hs │ ├── VK_EXT_4444_formats.hs-boot │ ├── VK_EXT_acquire_drm_display.hs │ ├── VK_EXT_acquire_xlib_display.hs │ ├── VK_EXT_acquire_xlib_display.hs-boot │ ├── VK_EXT_astc_decode_mode.hs │ ├── VK_EXT_astc_decode_mode.hs-boot │ ├── VK_EXT_attachment_feedback_loop_dynamic_state.hs │ ├── VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot │ ├── VK_EXT_attachment_feedback_loop_layout.hs │ ├── VK_EXT_attachment_feedback_loop_layout.hs-boot │ ├── VK_EXT_blend_operation_advanced.hs │ ├── VK_EXT_blend_operation_advanced.hs-boot │ ├── VK_EXT_border_color_swizzle.hs │ ├── VK_EXT_border_color_swizzle.hs-boot │ ├── VK_EXT_buffer_device_address.hs │ ├── VK_EXT_buffer_device_address.hs-boot │ ├── VK_EXT_calibrated_timestamps.hs │ ├── VK_EXT_color_write_enable.hs │ ├── VK_EXT_color_write_enable.hs-boot │ ├── VK_EXT_conditional_rendering.hs │ ├── VK_EXT_conditional_rendering.hs-boot │ ├── VK_EXT_conservative_rasterization.hs │ ├── VK_EXT_conservative_rasterization.hs-boot │ ├── VK_EXT_custom_border_color.hs │ ├── VK_EXT_custom_border_color.hs-boot │ ├── VK_EXT_debug_marker.hs │ ├── VK_EXT_debug_marker.hs-boot │ ├── VK_EXT_debug_report.hs │ ├── VK_EXT_debug_report.hs-boot │ ├── VK_EXT_debug_utils.hs │ ├── VK_EXT_debug_utils.hs-boot │ ├── VK_EXT_depth_bias_control.hs │ ├── VK_EXT_depth_bias_control.hs-boot │ ├── VK_EXT_depth_clamp_zero_one.hs │ ├── VK_EXT_depth_clamp_zero_one.hs-boot │ ├── VK_EXT_depth_clip_control.hs │ ├── VK_EXT_depth_clip_control.hs-boot │ ├── VK_EXT_depth_clip_enable.hs │ ├── VK_EXT_depth_clip_enable.hs-boot │ ├── VK_EXT_depth_range_unrestricted.hs │ ├── VK_EXT_descriptor_buffer.hs │ ├── VK_EXT_descriptor_buffer.hs-boot │ ├── VK_EXT_descriptor_indexing.hs │ ├── VK_EXT_device_address_binding_report.hs │ ├── VK_EXT_device_address_binding_report.hs-boot │ ├── VK_EXT_device_fault.hs │ ├── VK_EXT_device_fault.hs-boot │ ├── VK_EXT_device_memory_report.hs │ ├── VK_EXT_device_memory_report.hs-boot │ ├── VK_EXT_direct_mode_display.hs │ ├── VK_EXT_directfb_surface.hs │ ├── VK_EXT_directfb_surface.hs-boot │ ├── VK_EXT_discard_rectangles.hs │ ├── VK_EXT_discard_rectangles.hs-boot │ ├── VK_EXT_display_control.hs │ ├── VK_EXT_display_control.hs-boot │ ├── VK_EXT_display_surface_counter.hs │ ├── VK_EXT_display_surface_counter.hs-boot │ ├── VK_EXT_dynamic_rendering_unused_attachments.hs │ ├── VK_EXT_dynamic_rendering_unused_attachments.hs-boot │ ├── VK_EXT_extended_dynamic_state.hs │ ├── VK_EXT_extended_dynamic_state.hs-boot │ ├── VK_EXT_extended_dynamic_state2.hs │ ├── VK_EXT_extended_dynamic_state2.hs-boot │ ├── VK_EXT_extended_dynamic_state3.hs │ ├── VK_EXT_extended_dynamic_state3.hs-boot │ ├── VK_EXT_external_memory_acquire_unmodified.hs │ ├── VK_EXT_external_memory_acquire_unmodified.hs-boot │ ├── VK_EXT_external_memory_dma_buf.hs │ ├── VK_EXT_external_memory_host.hs │ ├── VK_EXT_external_memory_host.hs-boot │ ├── VK_EXT_filter_cubic.hs │ ├── VK_EXT_filter_cubic.hs-boot │ ├── VK_EXT_fragment_density_map.hs │ ├── VK_EXT_fragment_density_map.hs-boot │ ├── VK_EXT_fragment_density_map2.hs │ ├── VK_EXT_fragment_density_map2.hs-boot │ ├── VK_EXT_fragment_shader_interlock.hs │ ├── VK_EXT_fragment_shader_interlock.hs-boot │ ├── VK_EXT_frame_boundary.hs │ ├── VK_EXT_frame_boundary.hs-boot │ ├── VK_EXT_full_screen_exclusive.hs │ ├── VK_EXT_full_screen_exclusive.hs-boot │ ├── VK_EXT_global_priority.hs │ ├── VK_EXT_global_priority_query.hs │ ├── VK_EXT_graphics_pipeline_library.hs │ ├── VK_EXT_graphics_pipeline_library.hs-boot │ ├── VK_EXT_hdr_metadata.hs │ ├── VK_EXT_hdr_metadata.hs-boot │ ├── VK_EXT_headless_surface.hs │ ├── VK_EXT_headless_surface.hs-boot │ ├── VK_EXT_host_image_copy.hs │ ├── VK_EXT_host_image_copy.hs-boot │ ├── VK_EXT_host_query_reset.hs │ ├── VK_EXT_image_2d_view_of_3d.hs │ ├── VK_EXT_image_2d_view_of_3d.hs-boot │ ├── VK_EXT_image_compression_control.hs │ ├── VK_EXT_image_compression_control.hs-boot │ ├── VK_EXT_image_compression_control_swapchain.hs │ ├── VK_EXT_image_compression_control_swapchain.hs-boot │ ├── VK_EXT_image_drm_format_modifier.hs │ ├── VK_EXT_image_drm_format_modifier.hs-boot │ ├── VK_EXT_image_robustness.hs │ ├── VK_EXT_image_sliced_view_of_3d.hs │ ├── VK_EXT_image_sliced_view_of_3d.hs-boot │ ├── VK_EXT_image_view_min_lod.hs │ ├── VK_EXT_image_view_min_lod.hs-boot │ ├── VK_EXT_index_type_uint8.hs │ ├── VK_EXT_index_type_uint8.hs-boot │ ├── VK_EXT_inline_uniform_block.hs │ ├── VK_EXT_layer_settings.hs │ ├── VK_EXT_layer_settings.hs-boot │ ├── VK_EXT_legacy_dithering.hs │ ├── VK_EXT_legacy_dithering.hs-boot │ ├── VK_EXT_line_rasterization.hs │ ├── VK_EXT_line_rasterization.hs-boot │ ├── VK_EXT_load_store_op_none.hs │ ├── VK_EXT_memory_budget.hs │ ├── VK_EXT_memory_budget.hs-boot │ ├── VK_EXT_memory_priority.hs │ ├── VK_EXT_memory_priority.hs-boot │ ├── VK_EXT_mesh_shader.hs │ ├── VK_EXT_mesh_shader.hs-boot │ ├── VK_EXT_metal_objects.hs │ ├── VK_EXT_metal_objects.hs-boot │ ├── VK_EXT_metal_surface.hs │ ├── VK_EXT_metal_surface.hs-boot │ ├── VK_EXT_multi_draw.hs │ ├── VK_EXT_multi_draw.hs-boot │ ├── VK_EXT_multisampled_render_to_single_sampled.hs │ ├── VK_EXT_multisampled_render_to_single_sampled.hs-boot │ ├── VK_EXT_mutable_descriptor_type.hs │ ├── VK_EXT_mutable_descriptor_type.hs-boot │ ├── VK_EXT_nested_command_buffer.hs │ ├── VK_EXT_nested_command_buffer.hs-boot │ ├── VK_EXT_non_seamless_cube_map.hs │ ├── VK_EXT_non_seamless_cube_map.hs-boot │ ├── VK_EXT_opacity_micromap.hs │ ├── VK_EXT_opacity_micromap.hs-boot │ ├── VK_EXT_pageable_device_local_memory.hs │ ├── VK_EXT_pageable_device_local_memory.hs-boot │ ├── VK_EXT_pci_bus_info.hs │ ├── VK_EXT_pci_bus_info.hs-boot │ ├── VK_EXT_physical_device_drm.hs │ ├── VK_EXT_physical_device_drm.hs-boot │ ├── VK_EXT_pipeline_creation_cache_control.hs │ ├── VK_EXT_pipeline_creation_feedback.hs │ ├── VK_EXT_pipeline_library_group_handles.hs │ ├── VK_EXT_pipeline_library_group_handles.hs-boot │ ├── VK_EXT_pipeline_properties.hs │ ├── VK_EXT_pipeline_properties.hs-boot │ ├── VK_EXT_pipeline_protected_access.hs │ ├── VK_EXT_pipeline_protected_access.hs-boot │ ├── VK_EXT_pipeline_robustness.hs │ ├── VK_EXT_pipeline_robustness.hs-boot │ ├── VK_EXT_post_depth_coverage.hs │ ├── VK_EXT_primitive_topology_list_restart.hs │ ├── VK_EXT_primitive_topology_list_restart.hs-boot │ ├── VK_EXT_primitives_generated_query.hs │ ├── VK_EXT_primitives_generated_query.hs-boot │ ├── VK_EXT_private_data.hs │ ├── VK_EXT_provoking_vertex.hs │ ├── VK_EXT_provoking_vertex.hs-boot │ ├── VK_EXT_queue_family_foreign.hs │ ├── VK_EXT_rasterization_order_attachment_access.hs │ ├── VK_EXT_rasterization_order_attachment_access.hs-boot │ ├── VK_EXT_rgba10x6_formats.hs │ ├── VK_EXT_rgba10x6_formats.hs-boot │ ├── VK_EXT_robustness2.hs │ ├── VK_EXT_robustness2.hs-boot │ ├── VK_EXT_sample_locations.hs │ ├── VK_EXT_sample_locations.hs-boot │ ├── VK_EXT_sampler_filter_minmax.hs │ ├── VK_EXT_scalar_block_layout.hs │ ├── VK_EXT_separate_stencil_usage.hs │ ├── VK_EXT_shader_atomic_float.hs │ ├── VK_EXT_shader_atomic_float.hs-boot │ ├── VK_EXT_shader_atomic_float2.hs │ ├── VK_EXT_shader_atomic_float2.hs-boot │ ├── VK_EXT_shader_demote_to_helper_invocation.hs │ ├── VK_EXT_shader_image_atomic_int64.hs │ ├── VK_EXT_shader_image_atomic_int64.hs-boot │ ├── VK_EXT_shader_module_identifier.hs │ ├── VK_EXT_shader_module_identifier.hs-boot │ ├── VK_EXT_shader_object.hs │ ├── VK_EXT_shader_object.hs-boot │ ├── VK_EXT_shader_stencil_export.hs │ ├── VK_EXT_shader_subgroup_ballot.hs │ ├── VK_EXT_shader_subgroup_vote.hs │ ├── VK_EXT_shader_tile_image.hs │ ├── VK_EXT_shader_tile_image.hs-boot │ ├── VK_EXT_shader_viewport_index_layer.hs │ ├── VK_EXT_subgroup_size_control.hs │ ├── VK_EXT_subpass_merge_feedback.hs │ ├── VK_EXT_subpass_merge_feedback.hs-boot │ ├── VK_EXT_surface_maintenance1.hs │ ├── VK_EXT_surface_maintenance1.hs-boot │ ├── VK_EXT_swapchain_colorspace.hs │ ├── VK_EXT_swapchain_maintenance1.hs │ ├── VK_EXT_swapchain_maintenance1.hs-boot │ ├── VK_EXT_texel_buffer_alignment.hs │ ├── VK_EXT_texel_buffer_alignment.hs-boot │ ├── VK_EXT_texture_compression_astc_hdr.hs │ ├── VK_EXT_tooling_info.hs │ ├── VK_EXT_transform_feedback.hs │ ├── VK_EXT_transform_feedback.hs-boot │ ├── VK_EXT_validation_cache.hs │ ├── VK_EXT_validation_cache.hs-boot │ ├── VK_EXT_validation_features.hs │ ├── VK_EXT_validation_features.hs-boot │ ├── VK_EXT_validation_flags.hs │ ├── VK_EXT_validation_flags.hs-boot │ ├── VK_EXT_vertex_attribute_divisor.hs │ ├── VK_EXT_vertex_attribute_divisor.hs-boot │ ├── VK_EXT_vertex_input_dynamic_state.hs │ ├── VK_EXT_vertex_input_dynamic_state.hs-boot │ ├── VK_EXT_ycbcr_2plane_444_formats.hs │ ├── VK_EXT_ycbcr_2plane_444_formats.hs-boot │ ├── VK_EXT_ycbcr_image_arrays.hs │ ├── VK_EXT_ycbcr_image_arrays.hs-boot │ ├── VK_FUCHSIA_buffer_collection.hs │ ├── VK_FUCHSIA_buffer_collection.hs-boot │ ├── VK_FUCHSIA_external_memory.hs │ ├── VK_FUCHSIA_external_memory.hs-boot │ ├── VK_FUCHSIA_external_semaphore.hs │ ├── VK_FUCHSIA_external_semaphore.hs-boot │ ├── VK_FUCHSIA_imagepipe_surface.hs │ ├── VK_FUCHSIA_imagepipe_surface.hs-boot │ ├── VK_GGP_frame_token.hs │ ├── VK_GGP_frame_token.hs-boot │ ├── VK_GGP_stream_descriptor_surface.hs │ ├── VK_GGP_stream_descriptor_surface.hs-boot │ ├── VK_GOOGLE_decorate_string.hs │ ├── VK_GOOGLE_display_timing.hs │ ├── VK_GOOGLE_display_timing.hs-boot │ ├── VK_GOOGLE_hlsl_functionality1.hs │ ├── VK_GOOGLE_surfaceless_query.hs │ ├── VK_GOOGLE_user_type.hs │ ├── VK_HUAWEI_cluster_culling_shader.hs │ ├── VK_HUAWEI_cluster_culling_shader.hs-boot │ ├── VK_HUAWEI_invocation_mask.hs │ ├── VK_HUAWEI_invocation_mask.hs-boot │ ├── VK_HUAWEI_subpass_shading.hs │ ├── VK_HUAWEI_subpass_shading.hs-boot │ ├── VK_IMG_filter_cubic.hs │ ├── VK_IMG_format_pvrtc.hs │ ├── VK_IMG_relaxed_line_rasterization.hs │ ├── VK_IMG_relaxed_line_rasterization.hs-boot │ ├── VK_INTEL_performance_query.hs │ ├── VK_INTEL_performance_query.hs-boot │ ├── VK_INTEL_shader_integer_functions2.hs │ ├── VK_INTEL_shader_integer_functions2.hs-boot │ ├── VK_KHR_16bit_storage.hs │ ├── VK_KHR_8bit_storage.hs │ ├── VK_KHR_acceleration_structure.hs │ ├── VK_KHR_acceleration_structure.hs-boot │ ├── VK_KHR_android_surface.hs │ ├── VK_KHR_android_surface.hs-boot │ ├── VK_KHR_bind_memory2.hs │ ├── VK_KHR_buffer_device_address.hs │ ├── VK_KHR_calibrated_timestamps.hs │ ├── VK_KHR_calibrated_timestamps.hs-boot │ ├── VK_KHR_cooperative_matrix.hs │ ├── VK_KHR_cooperative_matrix.hs-boot │ ├── VK_KHR_copy_commands2.hs │ ├── VK_KHR_create_renderpass2.hs │ ├── VK_KHR_dedicated_allocation.hs │ ├── VK_KHR_deferred_host_operations.hs │ ├── VK_KHR_depth_stencil_resolve.hs │ ├── VK_KHR_descriptor_update_template.hs │ ├── VK_KHR_device_group.hs │ ├── VK_KHR_device_group_creation.hs │ ├── VK_KHR_display.hs │ ├── VK_KHR_display.hs-boot │ ├── VK_KHR_display_swapchain.hs │ ├── VK_KHR_display_swapchain.hs-boot │ ├── VK_KHR_draw_indirect_count.hs │ ├── VK_KHR_driver_properties.hs │ ├── VK_KHR_dynamic_rendering.hs │ ├── VK_KHR_dynamic_rendering.hs-boot │ ├── VK_KHR_external_fence.hs │ ├── VK_KHR_external_fence_capabilities.hs │ ├── VK_KHR_external_fence_fd.hs │ ├── VK_KHR_external_fence_fd.hs-boot │ ├── VK_KHR_external_fence_win32.hs │ ├── VK_KHR_external_fence_win32.hs-boot │ ├── VK_KHR_external_memory.hs │ ├── VK_KHR_external_memory_capabilities.hs │ ├── VK_KHR_external_memory_fd.hs │ ├── VK_KHR_external_memory_fd.hs-boot │ ├── VK_KHR_external_memory_win32.hs │ ├── VK_KHR_external_memory_win32.hs-boot │ ├── VK_KHR_external_semaphore.hs │ ├── VK_KHR_external_semaphore_capabilities.hs │ ├── VK_KHR_external_semaphore_fd.hs │ ├── VK_KHR_external_semaphore_fd.hs-boot │ ├── VK_KHR_external_semaphore_win32.hs │ ├── VK_KHR_external_semaphore_win32.hs-boot │ ├── VK_KHR_format_feature_flags2.hs │ ├── VK_KHR_fragment_shader_barycentric.hs │ ├── VK_KHR_fragment_shader_barycentric.hs-boot │ ├── VK_KHR_fragment_shading_rate.hs │ ├── VK_KHR_fragment_shading_rate.hs-boot │ ├── VK_KHR_get_display_properties2.hs │ ├── VK_KHR_get_display_properties2.hs-boot │ ├── VK_KHR_get_memory_requirements2.hs │ ├── VK_KHR_get_memory_requirements2.hs-boot │ ├── VK_KHR_get_physical_device_properties2.hs │ ├── VK_KHR_get_surface_capabilities2.hs │ ├── VK_KHR_get_surface_capabilities2.hs-boot │ ├── VK_KHR_global_priority.hs │ ├── VK_KHR_global_priority.hs-boot │ ├── VK_KHR_image_format_list.hs │ ├── VK_KHR_imageless_framebuffer.hs │ ├── VK_KHR_incremental_present.hs │ ├── VK_KHR_incremental_present.hs-boot │ ├── VK_KHR_maintenance1.hs │ ├── VK_KHR_maintenance2.hs │ ├── VK_KHR_maintenance3.hs │ ├── VK_KHR_maintenance4.hs │ ├── VK_KHR_maintenance5.hs │ ├── VK_KHR_maintenance5.hs-boot │ ├── VK_KHR_map_memory2.hs │ ├── VK_KHR_map_memory2.hs-boot │ ├── VK_KHR_multiview.hs │ ├── VK_KHR_performance_query.hs │ ├── VK_KHR_performance_query.hs-boot │ ├── VK_KHR_pipeline_executable_properties.hs │ ├── VK_KHR_pipeline_executable_properties.hs-boot │ ├── VK_KHR_pipeline_library.hs │ ├── VK_KHR_pipeline_library.hs-boot │ ├── VK_KHR_portability_enumeration.hs │ ├── VK_KHR_portability_subset.hs │ ├── VK_KHR_portability_subset.hs-boot │ ├── VK_KHR_present_id.hs │ ├── VK_KHR_present_id.hs-boot │ ├── VK_KHR_present_wait.hs │ ├── VK_KHR_present_wait.hs-boot │ ├── VK_KHR_push_descriptor.hs │ ├── VK_KHR_push_descriptor.hs-boot │ ├── VK_KHR_ray_query.hs │ ├── VK_KHR_ray_query.hs-boot │ ├── VK_KHR_ray_tracing_maintenance1.hs │ ├── VK_KHR_ray_tracing_maintenance1.hs-boot │ ├── VK_KHR_ray_tracing_pipeline.hs │ ├── VK_KHR_ray_tracing_pipeline.hs-boot │ ├── VK_KHR_ray_tracing_position_fetch.hs │ ├── VK_KHR_ray_tracing_position_fetch.hs-boot │ ├── VK_KHR_relaxed_block_layout.hs │ ├── VK_KHR_sampler_mirror_clamp_to_edge.hs │ ├── VK_KHR_sampler_ycbcr_conversion.hs │ ├── VK_KHR_separate_depth_stencil_layouts.hs │ ├── VK_KHR_shader_atomic_int64.hs │ ├── VK_KHR_shader_clock.hs │ ├── VK_KHR_shader_clock.hs-boot │ ├── VK_KHR_shader_draw_parameters.hs │ ├── VK_KHR_shader_float16_int8.hs │ ├── VK_KHR_shader_float_controls.hs │ ├── VK_KHR_shader_integer_dot_product.hs │ ├── VK_KHR_shader_non_semantic_info.hs │ ├── VK_KHR_shader_subgroup_extended_types.hs │ ├── VK_KHR_shader_subgroup_uniform_control_flow.hs │ ├── VK_KHR_shader_subgroup_uniform_control_flow.hs-boot │ ├── VK_KHR_shader_terminate_invocation.hs │ ├── VK_KHR_shared_presentable_image.hs │ ├── VK_KHR_shared_presentable_image.hs-boot │ ├── VK_KHR_spirv_1_4.hs │ ├── VK_KHR_storage_buffer_storage_class.hs │ ├── VK_KHR_surface.hs │ ├── VK_KHR_surface.hs-boot │ ├── VK_KHR_surface_protected_capabilities.hs │ ├── VK_KHR_surface_protected_capabilities.hs-boot │ ├── VK_KHR_swapchain.hs │ ├── VK_KHR_swapchain.hs-boot │ ├── VK_KHR_swapchain_mutable_format.hs │ ├── VK_KHR_synchronization2.hs │ ├── VK_KHR_synchronization2.hs-boot │ ├── VK_KHR_timeline_semaphore.hs │ ├── VK_KHR_uniform_buffer_standard_layout.hs │ ├── VK_KHR_variable_pointers.hs │ ├── VK_KHR_vertex_attribute_divisor.hs │ ├── VK_KHR_vertex_attribute_divisor.hs-boot │ ├── VK_KHR_vulkan_memory_model.hs │ ├── VK_KHR_wayland_surface.hs │ ├── VK_KHR_wayland_surface.hs-boot │ ├── VK_KHR_win32_keyed_mutex.hs │ ├── VK_KHR_win32_keyed_mutex.hs-boot │ ├── VK_KHR_win32_surface.hs │ ├── VK_KHR_win32_surface.hs-boot │ ├── VK_KHR_workgroup_memory_explicit_layout.hs │ ├── VK_KHR_workgroup_memory_explicit_layout.hs-boot │ ├── VK_KHR_xcb_surface.hs │ ├── VK_KHR_xcb_surface.hs-boot │ ├── VK_KHR_xlib_surface.hs │ ├── VK_KHR_xlib_surface.hs-boot │ ├── VK_KHR_zero_initialize_workgroup_memory.hs │ ├── VK_LUNARG_direct_driver_loading.hs │ ├── VK_LUNARG_direct_driver_loading.hs-boot │ ├── VK_MSFT_layered_driver.hs │ ├── VK_MSFT_layered_driver.hs-boot │ ├── VK_MVK_ios_surface.hs │ ├── VK_MVK_ios_surface.hs-boot │ ├── VK_MVK_macos_surface.hs │ ├── VK_MVK_macos_surface.hs-boot │ ├── VK_NN_vi_surface.hs │ ├── VK_NN_vi_surface.hs-boot │ ├── VK_NVX_binary_import.hs │ ├── VK_NVX_binary_import.hs-boot │ ├── VK_NVX_image_view_handle.hs │ ├── VK_NVX_image_view_handle.hs-boot │ ├── VK_NVX_multiview_per_view_attributes.hs │ ├── VK_NVX_multiview_per_view_attributes.hs-boot │ ├── VK_NV_acquire_winrt_display.hs │ ├── VK_NV_clip_space_w_scaling.hs │ ├── VK_NV_clip_space_w_scaling.hs-boot │ ├── VK_NV_compute_shader_derivatives.hs │ ├── VK_NV_compute_shader_derivatives.hs-boot │ ├── VK_NV_cooperative_matrix.hs │ ├── VK_NV_cooperative_matrix.hs-boot │ ├── VK_NV_copy_memory_indirect.hs │ ├── VK_NV_copy_memory_indirect.hs-boot │ ├── VK_NV_corner_sampled_image.hs │ ├── VK_NV_corner_sampled_image.hs-boot │ ├── VK_NV_coverage_reduction_mode.hs │ ├── VK_NV_coverage_reduction_mode.hs-boot │ ├── VK_NV_cuda_kernel_launch.hs │ ├── VK_NV_cuda_kernel_launch.hs-boot │ ├── VK_NV_dedicated_allocation.hs │ ├── VK_NV_dedicated_allocation.hs-boot │ ├── VK_NV_dedicated_allocation_image_aliasing.hs │ ├── VK_NV_dedicated_allocation_image_aliasing.hs-boot │ ├── VK_NV_descriptor_pool_overallocation.hs │ ├── VK_NV_descriptor_pool_overallocation.hs-boot │ ├── VK_NV_device_diagnostic_checkpoints.hs │ ├── VK_NV_device_diagnostic_checkpoints.hs-boot │ ├── VK_NV_device_diagnostics_config.hs │ ├── VK_NV_device_diagnostics_config.hs-boot │ ├── VK_NV_device_generated_commands.hs │ ├── VK_NV_device_generated_commands.hs-boot │ ├── VK_NV_device_generated_commands_compute.hs │ ├── VK_NV_device_generated_commands_compute.hs-boot │ ├── VK_NV_displacement_micromap.hs │ ├── VK_NV_displacement_micromap.hs-boot │ ├── VK_NV_extended_sparse_address_space.hs │ ├── VK_NV_extended_sparse_address_space.hs-boot │ ├── VK_NV_external_memory.hs │ ├── VK_NV_external_memory.hs-boot │ ├── VK_NV_external_memory_capabilities.hs │ ├── VK_NV_external_memory_capabilities.hs-boot │ ├── VK_NV_external_memory_rdma.hs │ ├── VK_NV_external_memory_rdma.hs-boot │ ├── VK_NV_external_memory_win32.hs │ ├── VK_NV_external_memory_win32.hs-boot │ ├── VK_NV_fill_rectangle.hs │ ├── VK_NV_fragment_coverage_to_color.hs │ ├── VK_NV_fragment_coverage_to_color.hs-boot │ ├── VK_NV_fragment_shader_barycentric.hs │ ├── VK_NV_fragment_shading_rate_enums.hs │ ├── VK_NV_fragment_shading_rate_enums.hs-boot │ ├── VK_NV_framebuffer_mixed_samples.hs │ ├── VK_NV_framebuffer_mixed_samples.hs-boot │ ├── VK_NV_geometry_shader_passthrough.hs │ ├── VK_NV_glsl_shader.hs │ ├── VK_NV_inherited_viewport_scissor.hs │ ├── VK_NV_inherited_viewport_scissor.hs-boot │ ├── VK_NV_linear_color_attachment.hs │ ├── VK_NV_linear_color_attachment.hs-boot │ ├── VK_NV_low_latency.hs │ ├── VK_NV_low_latency.hs-boot │ ├── VK_NV_low_latency2.hs │ ├── VK_NV_low_latency2.hs-boot │ ├── VK_NV_memory_decompression.hs │ ├── VK_NV_memory_decompression.hs-boot │ ├── VK_NV_mesh_shader.hs │ ├── VK_NV_mesh_shader.hs-boot │ ├── VK_NV_optical_flow.hs │ ├── VK_NV_optical_flow.hs-boot │ ├── VK_NV_present_barrier.hs │ ├── VK_NV_present_barrier.hs-boot │ ├── VK_NV_ray_tracing.hs │ ├── VK_NV_ray_tracing.hs-boot │ ├── VK_NV_ray_tracing_invocation_reorder.hs │ ├── VK_NV_ray_tracing_invocation_reorder.hs-boot │ ├── VK_NV_ray_tracing_motion_blur.hs │ ├── VK_NV_ray_tracing_motion_blur.hs-boot │ ├── VK_NV_representative_fragment_test.hs │ ├── VK_NV_representative_fragment_test.hs-boot │ ├── VK_NV_sample_mask_override_coverage.hs │ ├── VK_NV_scissor_exclusive.hs │ ├── VK_NV_scissor_exclusive.hs-boot │ ├── VK_NV_shader_image_footprint.hs │ ├── VK_NV_shader_image_footprint.hs-boot │ ├── VK_NV_shader_sm_builtins.hs │ ├── VK_NV_shader_sm_builtins.hs-boot │ ├── VK_NV_shader_subgroup_partitioned.hs │ ├── VK_NV_shading_rate_image.hs │ ├── VK_NV_shading_rate_image.hs-boot │ ├── VK_NV_viewport_array2.hs │ ├── VK_NV_viewport_swizzle.hs │ ├── VK_NV_viewport_swizzle.hs-boot │ ├── VK_NV_win32_keyed_mutex.hs │ ├── VK_NV_win32_keyed_mutex.hs-boot │ ├── VK_QCOM_filter_cubic_clamp.hs │ ├── VK_QCOM_filter_cubic_clamp.hs-boot │ ├── VK_QCOM_filter_cubic_weights.hs │ ├── VK_QCOM_filter_cubic_weights.hs-boot │ ├── VK_QCOM_fragment_density_map_offset.hs │ ├── VK_QCOM_fragment_density_map_offset.hs-boot │ ├── VK_QCOM_image_processing.hs │ ├── VK_QCOM_image_processing.hs-boot │ ├── VK_QCOM_image_processing2.hs │ ├── VK_QCOM_image_processing2.hs-boot │ ├── VK_QCOM_multiview_per_view_render_areas.hs │ ├── VK_QCOM_multiview_per_view_render_areas.hs-boot │ ├── VK_QCOM_multiview_per_view_viewports.hs │ ├── VK_QCOM_multiview_per_view_viewports.hs-boot │ ├── VK_QCOM_render_pass_shader_resolve.hs │ ├── VK_QCOM_render_pass_store_ops.hs │ ├── VK_QCOM_render_pass_transform.hs │ ├── VK_QCOM_render_pass_transform.hs-boot │ ├── VK_QCOM_rotated_copy_commands.hs │ ├── VK_QCOM_rotated_copy_commands.hs-boot │ ├── VK_QCOM_tile_properties.hs │ ├── VK_QCOM_tile_properties.hs-boot │ ├── VK_QCOM_ycbcr_degamma.hs │ ├── VK_QCOM_ycbcr_degamma.hs-boot │ ├── VK_QNX_external_memory_screen_buffer.hs │ ├── VK_QNX_external_memory_screen_buffer.hs-boot │ ├── VK_QNX_screen_surface.hs │ ├── VK_QNX_screen_surface.hs-boot │ ├── VK_SEC_amigo_profiling.hs │ ├── VK_SEC_amigo_profiling.hs-boot │ ├── VK_VALVE_descriptor_set_host_mapping.hs │ ├── VK_VALVE_descriptor_set_host_mapping.hs-boot │ └── VK_VALVE_mutable_descriptor_type.hs │ ├── NamedType.hs │ ├── SPIRVRequirements.hs │ └── Version.hs ├── stack.yaml ├── test ├── Driver.hs ├── Structs.hs └── VkCtx.hs ├── utils ├── LICENSE ├── Setup.hs ├── cbits │ └── DebugCallback.c ├── changelog.md ├── hie.yaml ├── package.yaml ├── readme.md ├── src │ └── Vulkan │ │ └── Utils │ │ ├── CommandCheck.hs │ │ ├── Debug.hs │ │ ├── FromGL.hs │ │ ├── Initialization.hs │ │ ├── Internal.hs │ │ ├── Misc.hs │ │ ├── QueueAssignment.hs │ │ ├── Requirements.hs │ │ ├── Requirements │ │ └── TH.hs │ │ ├── ShaderQQ │ │ ├── Backend │ │ │ ├── Glslang.hs │ │ │ ├── Glslang │ │ │ │ └── Internal.hs │ │ │ ├── Internal.hs │ │ │ ├── Shaderc.hs │ │ │ └── Shaderc │ │ │ │ └── Internal.hs │ │ ├── GLSL.hs │ │ ├── GLSL │ │ │ ├── Glslang.hs │ │ │ └── Shaderc.hs │ │ ├── HLSL.hs │ │ ├── HLSL │ │ │ ├── Glslang.hs │ │ │ └── Shaderc.hs │ │ ├── Interpolate.hs │ │ └── ShaderType.hs │ │ └── gl_enums.h ├── test │ └── doctest │ │ └── Doctests.hs └── vulkan-utils.cabal ├── vulkan.cabal └── weeder.dhall /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: / 5 | schedule: 6 | interval: daily 7 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /.github/workflows/command-dispatch.yml: -------------------------------------------------------------------------------- 1 | name: Slash Command Dispatch 2 | on: 3 | issue_comment: 4 | types: [created] 5 | jobs: 6 | slashCommandDispatch: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: tibdex/github-app-token@v2 10 | id: generate-token 11 | with: 12 | app_id: ${{ secrets.APP_ID }} 13 | private_key: ${{ secrets.APP_PRIVATE_KEY }} 14 | 15 | - name: Slash Command Dispatch 16 | id: scd 17 | uses: peter-evans/slash-command-dispatch@v4 18 | with: 19 | issue-type: pull-request 20 | dispatch-type: repository 21 | allow-edits: true 22 | token: ${{ steps.generate-token.outputs.token }} 23 | commands: | 24 | bump 25 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Create Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - v* 7 | - vma-v* 8 | - utils-v* 9 | - xr-v* 10 | 11 | jobs: 12 | build: 13 | name: Create Release 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: cachix/install-nix-action@V27 17 | with: 18 | nix_path: nixpkgs=channel:nixos-unstable 19 | - uses: cachix/cachix-action@v16 20 | with: 21 | name: vulkan-haskell 22 | signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' 23 | - name: Install hub 24 | run: sudo apt-get install -y hub 25 | - uses: actions/checkout@v4 26 | with: 27 | submodules: 'recursive' 28 | 29 | - name: Build project 30 | run: | 31 | git fetch --tags --recurse-submodules=no 32 | ref="${{ github.ref }}" 33 | ./scripts/release.sh \ 34 | --require-first ${ref#"refs/tags/"} \ 35 | --release-note release-note.md \ 36 | --assets assets 37 | 38 | - name: Create Release 39 | env: 40 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 41 | run: | 42 | if [ -f release-note.md ]; then 43 | hub release create \ 44 | $(find assets -type f -o -type l -printf "--attach %p ") \ 45 | --file release-note.md \ 46 | ${{ github.ref }} 47 | fi 48 | -------------------------------------------------------------------------------- /.github/workflows/tag-release.yml: -------------------------------------------------------------------------------- 1 | name: Tag Latest Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | update: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: tibdex/github-app-token@v2 13 | id: generate-token 14 | with: 15 | app_id: ${{ secrets.APP_ID }} 16 | private_key: ${{ secrets.APP_PRIVATE_KEY }} 17 | 18 | - uses: cachix/install-nix-action@V27 19 | with: 20 | nix_path: nixpkgs=channel:nixos-unstable 21 | 22 | - uses: actions/checkout@v4 23 | with: 24 | fetch-depth: 0 # Fetch everything 25 | token: ${{ steps.generate-token.outputs.token }} 26 | 27 | - uses: expipiplus1/action-automation/tag-latest-release@HEAD 28 | with: 29 | tagsAndFiles: | 30 | v package.yaml 31 | vma-v VulkanMemoryAllocator/package.yaml 32 | utils-v utils/package.yaml 33 | xr-v openxr/package.yaml 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | dist-* 3 | cabal-dev 4 | *.o 5 | *.hi 6 | *.chi 7 | *.chs.h 8 | *.dyn_o 9 | *.dyn_hi 10 | .hpc 11 | .hsenv 12 | .cabal-sandbox/ 13 | cabal.sandbox.config 14 | *.prof 15 | *.aux 16 | *.hp 17 | *.eventlog 18 | *.eventlog.tracy 19 | *.eventlog.trace.json 20 | .stack-work/ 21 | cabal.project.local 22 | cabal.project.local~ 23 | .HTF/ 24 | .ghc.environment.* 25 | 26 | *.spv 27 | 28 | result 29 | result-* 30 | .hdevtools.sock 31 | 32 | generate-new/out 33 | generate-new/out-vma 34 | generate-new/out-xr 35 | 36 | *.bak 37 | 38 | .vscode 39 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "generate/Vulkan-Docs"] 2 | path = generate/Vulkan-Docs 3 | url = https://github.com/KhronosGroup/Vulkan-Docs.git 4 | [submodule "generate-new/Vulkan-Docs"] 5 | path = generate-new/Vulkan-Docs 6 | url = https://github.com/KhronosGroup/Vulkan-Docs.git 7 | [submodule "generate-new/VulkanMemoryAllocator"] 8 | path = VulkanMemoryAllocator/VulkanMemoryAllocator 9 | url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git 10 | [submodule "generate-new/OpenXR-Docs"] 11 | path = generate-new/OpenXR-Docs 12 | url = https://github.com/KhronosGroup/OpenXR-Docs.git 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Ellie Hermaszewska (c) 2016 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Ellie Hermaszewska nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /VulkanMemoryAllocator/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Ellie Hermaszewska (c) 2020 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Ellie Hermaszewska nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /VulkanMemoryAllocator/hie.yaml: -------------------------------------------------------------------------------- 1 | cradle: 2 | cabal: 3 | -------------------------------------------------------------------------------- /VulkanMemoryAllocator/readme.md: -------------------------------------------------------------------------------- 1 | # VulkanMemoryAllocator 2 | 3 | Slightly high level Haskell bindings to the [Vulkan Memory 4 | Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) 5 | library. 6 | 7 | These bindings are intended to be imported qualified and do not feature the 8 | `Vma` prefixes on commands, structures or constants. 9 | 10 | This builds on the [vulkan 11 | Package](https://hackage.haskell.org/package/vulkan). It uses the same method 12 | of generating slightly-high-level bindings, see the [vulkan 13 | readme](../readme.md) for more info. 14 | 15 | -------------------------------------------------------------------------------- /VulkanMemoryAllocator/src/lib.cpp: -------------------------------------------------------------------------------- 1 | #define VMA_IMPLEMENTATION 2 | #define VMA_STATIC_VULKAN_FUNCTIONS 0 3 | 4 | #ifdef __clang__ 5 | #pragma clang diagnostic push 6 | #pragma clang diagnostic ignored "-Wnullability-completeness" 7 | #endif 8 | 9 | // To match the vulkan headers this is generated against 10 | #define VMA_DEDICATED_ALLOCATION 1 11 | #define VMA_BIND_MEMORY2 1 12 | #define VMA_MEMORY_BUDGET 1 13 | #define VMA_BUFFER_DEVICE_ADDRESS 1 14 | #define VMA_MEMORY_PRIORITY 1 15 | #define VMA_EXTERNAL_MEMORY 1 16 | 17 | #include 18 | 19 | #ifdef __clang__ 20 | #pragma clang diagnostic pop 21 | #endif 22 | -------------------------------------------------------------------------------- /cabal.project: -------------------------------------------------------------------------------- 1 | packages: 2 | ./ 3 | ./openxr 4 | ./VulkanMemoryAllocator 5 | ./utils 6 | ./examples 7 | ./generate-new/ 8 | 9 | constraints: 10 | nothunks +vector, 11 | 12 | source-repository-package 13 | type: git 14 | location: https://github.com/dpwiz/autoapply.git 15 | tag: 640ed1a689484fc307e1bab7c06db1027b28c87c 16 | -------------------------------------------------------------------------------- /default.nix: -------------------------------------------------------------------------------- 1 | { pkgs ? import ./nix/nixpkgs.nix, compiler ? null 2 | , forShell ? pkgs.lib.inNixShell, hoogle ? forShell }: 3 | 4 | let 5 | haskellPackages = 6 | import ./nix/haskell-packages.nix { inherit pkgs compiler hoogle; }; 7 | 8 | tools = with pkgs; [ 9 | pkgconfig 10 | asciidoctor 11 | python3 12 | doxygen 13 | vulkan-validation-layers 14 | ]; 15 | 16 | generator-ghc-version = "9.2.4"; 17 | 18 | packages = p: 19 | with p; 20 | if compiler == "ghcHEAD" then [ 21 | (pkgs.haskell.lib.dontCheck vulkan) 22 | (pkgs.haskell.lib.dontCheck VulkanMemoryAllocator) 23 | ] else 24 | [ vulkan vulkan-utils VulkanMemoryAllocator vulkan-examples openxr ] 25 | ++ pkgs.lib.optional (p.ghc.version == generator-ghc-version) generate-new; 26 | 27 | in if forShell then 28 | haskellPackages.shellFor { 29 | inherit packages; 30 | buildInputs = tools; 31 | withHoogle = hoogle; 32 | } 33 | else 34 | pkgs.lib.listToAttrs (builtins.map (value: { 35 | inherit value; 36 | name = value.pname; 37 | }) (packages haskellPackages)) 38 | -------------------------------------------------------------------------------- /examples/default.nix: -------------------------------------------------------------------------------- 1 | { pkgs ? import ../nix/nixpkgs.nix, compiler ? null 2 | , forShell ? pkgs.lib.inNixShell, hoogle ? forShell, withSwiftshader ? false 3 | , buildProfiling ? false, buildInstrumented ? false, safeVulkanFFI ? false 4 | , withOpenXR ? true }: 5 | 6 | let 7 | haskellPackages = import ../nix/haskell-packages.nix { 8 | inherit pkgs compiler hoogle buildProfiling buildInstrumented safeVulkanFFI; 9 | }; 10 | # Eww, some packages put things in etc and others in share. This ruins the 11 | # order, but ehh 12 | makeVkLayerPath = ps: 13 | pkgs.lib.concatStringsSep ":" [ 14 | (pkgs.lib.makeSearchPathOutput "lib" "share/vulkan/explicit_layer.d" ps) 15 | (pkgs.lib.makeSearchPathOutput "lib" "etc/vulkan/explicit_layer.d" ps) 16 | ]; 17 | in if forShell then 18 | haskellPackages.shellFor ({ 19 | packages = p: [ p.vulkan-examples ]; 20 | buildInputs = with pkgs; 21 | [ shaderc ] ++ pkgs.lib.optional withOpenXR libglvnd 22 | ++ pkgs.lib.optional buildProfiling [ 23 | haskellPackages.eventlog2html 24 | haskellPackages.hs-speedscope 25 | haskellPackages.opentelemetry-extra 26 | pkgs.tracy 27 | pkgs.gdb 28 | pkgs.linuxPackages.perf 29 | ]; 30 | withHoogle = hoogle; 31 | VK_LAYER_PATH = with pkgs; 32 | makeVkLayerPath ([ vulkan-validation-layers vulkan-tools-lunarg ] 33 | ++ lib.optional withSwiftshader vulkan-extension-layer); 34 | } // pkgs.lib.optionalAttrs withSwiftshader { 35 | VK_ICD_FILENAMES = 36 | "${pkgs.swiftshader}/share/vulkan/icd.d/vk_swiftshader_icd.json"; 37 | VK_INSTANCE_LAYERS = "VK_LAYER_KHRONOS_timeline_semaphore"; 38 | }) 39 | else 40 | haskellPackages.vulkan-examples 41 | -------------------------------------------------------------------------------- /examples/hie.yaml: -------------------------------------------------------------------------------- 1 | cradle: 2 | cabal: 3 | - path: "./lib/" 4 | component: "lib:vulkan-examples" 5 | 6 | - path: "./info/" 7 | component: "exe:info" 8 | 9 | - path: "./sdl-triangle/" 10 | component: "exe:sdl-triangle" 11 | 12 | - path: "./offscreen/" 13 | component: "exe:offscreen" 14 | 15 | - path: "./compute/" 16 | component: "exe:compute" 17 | 18 | - path: "./resize/" 19 | component: "exe:resize" 20 | 21 | - path: "./timeline-semaphore/" 22 | component: "exe:timeline-semaphore" 23 | 24 | - path: "./hlsl/" 25 | component: "exe:hlsl" 26 | 27 | - path: "./rays/" 28 | component: "exe:rays" 29 | 30 | - path: "./vrcube/" 31 | component: "exe:vrcube" 32 | -------------------------------------------------------------------------------- /examples/hlsl/Main.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Control.Monad.IO.Class 4 | import Control.Monad.Trans.Resource 5 | import Frame 6 | import Init 7 | import MonadFrame 8 | import MonadVulkan 9 | import Render 10 | import SDL ( showWindow 11 | , time 12 | ) 13 | import Swapchain ( threwSwapchainError ) 14 | import Utils 15 | import Window 16 | 17 | main :: IO () 18 | main = runResourceT $ do 19 | -- 20 | -- Initialization 21 | -- 22 | withSDL 23 | win <- createWindow "Vulkan 🚀 Haskell" 1280 720 24 | inst <- Init.createInstance win 25 | (phys, dev, qs, surf) <- Init.createDevice inst win 26 | vma <- createVMA inst phys dev 27 | 28 | -- 29 | -- Go 30 | -- 31 | start <- SDL.time @Double 32 | let reportFPS f = do 33 | end <- SDL.time 34 | let frames = fIndex f 35 | mean = realToFrac frames / (end - start) 36 | liftIO $ putStrLn $ "Average: " <> show mean 37 | 38 | let frame f = do 39 | shouldQuit (TimeLimit 6) >>= \case 40 | True -> do 41 | reportFPS f 42 | pure Nothing 43 | False -> Just <$> do 44 | needsNewSwapchain <- threwSwapchainError (runFrame f renderFrame) 45 | advanceFrame needsNewSwapchain f 46 | 47 | runV inst phys dev qs vma $ do 48 | initial <- initialFrame win surf 49 | showWindow win 50 | loopJust frame initial 51 | -------------------------------------------------------------------------------- /examples/info/Main.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Control.Exception 4 | import Data.Foldable 5 | import Text.Pretty.Simple 6 | import Vulkan.Core10 7 | import Vulkan.Zero 8 | 9 | main :: IO () 10 | main = withInstance zero Nothing bracket $ \i -> do 11 | myPrint i 12 | (_, layers ) <- enumerateInstanceLayerProperties 13 | (_, extensions) <- enumerateInstanceExtensionProperties Nothing 14 | myPrint layers 15 | myPrint extensions 16 | (_, devices) <- enumeratePhysicalDevices i 17 | traverse_ deviceInfo devices 18 | 19 | deviceInfo :: PhysicalDevice -> IO () 20 | deviceInfo p = do 21 | (_, extensions) <- enumerateDeviceExtensionProperties p Nothing 22 | (_, layers ) <- enumerateDeviceLayerProperties p 23 | traverse_ myPrint extensions 24 | traverse_ myPrint layers 25 | myPrint =<< getPhysicalDeviceFeatures p 26 | myPrint =<< getPhysicalDeviceProperties p 27 | myPrint =<< getPhysicalDeviceMemoryProperties p 28 | 29 | myPrint :: Show a => a -> IO () 30 | myPrint = pPrintOpt 31 | CheckColorTty 32 | defaultOutputOptionsDarkBg { outputOptionsStringStyle = Literal } 33 | -------------------------------------------------------------------------------- /examples/lib/HasVulkan.hs: -------------------------------------------------------------------------------- 1 | module HasVulkan 2 | ( HasVulkan(..) 3 | , noAllocationCallbacks 4 | , noPipelineCache 5 | ) where 6 | 7 | import Control.Monad.Trans.Class ( MonadTrans(lift) ) 8 | import Control.Monad.Trans.Reader ( ReaderT ) 9 | import Vulkan.Core10 10 | import VulkanMemoryAllocator 11 | 12 | -- | A class for Monads which can provide some Vulkan handles 13 | class HasVulkan m where 14 | getInstance :: m Instance 15 | getGraphicsQueue :: m Queue 16 | getPhysicalDevice :: m PhysicalDevice 17 | getDevice :: m Device 18 | getAllocator :: m Allocator 19 | 20 | instance (Monad m, HasVulkan m) => HasVulkan (ReaderT r m) where 21 | getInstance = lift getInstance 22 | getGraphicsQueue = lift getGraphicsQueue 23 | getPhysicalDevice = lift getPhysicalDevice 24 | getDevice = lift getDevice 25 | getAllocator = lift getAllocator 26 | 27 | noAllocationCallbacks :: Maybe AllocationCallbacks 28 | noAllocationCallbacks = Nothing 29 | 30 | noPipelineCache :: PipelineCache 31 | noPipelineCache = NULL_HANDLE 32 | -------------------------------------------------------------------------------- /examples/lib/InstrumentDecs.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE TemplateHaskell #-} 2 | 3 | module InstrumentDecs 4 | ( withSpan_ 5 | , instrumentDecs 6 | ) where 7 | 8 | import Control.Monad ( replicateM ) 9 | import Data.ByteString ( ByteString ) 10 | import Language.Haskell.TH 11 | import OpenTelemetry.Eventlog ( beginSpan 12 | , endSpan 13 | ) 14 | import UnliftIO ( MonadUnliftIO ) 15 | import UnliftIO.Exception ( bracket ) 16 | 17 | -- Profiling span 18 | withSpan_ :: MonadUnliftIO m => ByteString -> m c -> m c 19 | withSpan_ n x = bracket (beginSpan n) endSpan (const x) 20 | 21 | instrumentDecs :: (Name -> Maybe String) -> [Dec] -> Q [Dec] 22 | instrumentDecs p ds = do 23 | concat <$> sequenceA 24 | [ case d of 25 | FunD n [Clause ps (NormalB o) _] | Just s <- p n -> do 26 | d' <- instrumentFun s n ps o 27 | pure [d'] 28 | _ -> pure [d] 29 | | d <- ds 30 | ] 31 | 32 | instrumentFun :: String -> Name -> [Pat] -> Exp -> Q Dec 33 | instrumentFun s n ps o = do 34 | let n' = n 35 | eArity = \case 36 | LamE ls e -> length ls + eArity e 37 | _ -> 0 38 | arity = length ps + eArity o 39 | vs <- replicateM arity (newName "x") 40 | e <- [|withSpan_ $(litE (StringL s)) $(foldl appE (pure o) (varE <$> vs))|] 41 | pure $ FunD n' [Clause (VarP <$> vs) (NormalB e) []] 42 | -------------------------------------------------------------------------------- /examples/lib/Utils.hs: -------------------------------------------------------------------------------- 1 | module Utils where 2 | 3 | import Control.Concurrent ( ) 4 | import Control.Monad 5 | 6 | loopJust :: Monad m => (a -> m (Maybe a)) -> a -> m () 7 | loopJust f x = f x >>= \case 8 | Nothing -> pure () 9 | Just x' -> loopJust f x' 10 | 11 | loopUntilM :: Monad m => m Bool -> m () 12 | loopUntilM m = do 13 | q <- m 14 | unless q $ loopUntilM m 15 | -------------------------------------------------------------------------------- /examples/resize/Julia/Constants.hs: -------------------------------------------------------------------------------- 1 | module Julia.Constants 2 | where 3 | 4 | import Data.Word 5 | 6 | juliaWorkgroupX, juliaWorkgroupY :: Word32 7 | juliaWorkgroupX = 8 8 | juliaWorkgroupY = 8 9 | -------------------------------------------------------------------------------- /examples/vrcube/Main.hs: -------------------------------------------------------------------------------- 1 | {-# language OverloadedLists #-} 2 | module Main 3 | ( main 4 | ) where 5 | 6 | import Control.Exception 7 | import Data.Foldable 8 | import OpenXR.Core10 9 | import OpenXR.Extensions.XR_KHR_vulkan_enable 10 | import OpenXR.Version 11 | import OpenXR.Zero 12 | import Say 13 | 14 | main :: IO () 15 | main = do 16 | sayErr "Available Extensions:" 17 | traverse_ sayErrShow =<< enumerateInstanceExtensionProperties Nothing 18 | let ici = zero 19 | { applicationInfo = zero { applicationName = "Haskell VR Example" 20 | , apiVersion = CURRENT_API_VERSION 21 | } 22 | , enabledExtensionNames = [KHR_VULKAN_ENABLE_EXTENSION_NAME] 23 | } 24 | withInstance ici bracket print 25 | -------------------------------------------------------------------------------- /fourmolu.yaml: -------------------------------------------------------------------------------- 1 | # Generated from web app, for more information, see: https://fourmolu.github.io/config/ 2 | indentation: 2 3 | column-limit: none 4 | function-arrows: leading 5 | comma-style: leading 6 | import-export-style: leading 7 | indent-wheres: true 8 | record-brace-space: false 9 | newlines-between-decls: 1 10 | haddock-style: multi-line 11 | haddock-style-module: multi-line-compact 12 | let-style: mixed 13 | in-style: no-space 14 | single-constraint-parens: always 15 | single-deriving-parens: always 16 | unicode: never 17 | respectful: true 18 | import-grouping: legacy 19 | 20 | -------------------------------------------------------------------------------- /generate-new/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | dist-* 3 | cabal-dev 4 | *.o 5 | *.hi 6 | *.hie 7 | *.chi 8 | *.chs.h 9 | *.dyn_o 10 | *.dyn_hi 11 | .hpc 12 | .hsenv 13 | .cabal-sandbox/ 14 | cabal.sandbox.config 15 | *.prof 16 | *.aux 17 | *.hp 18 | *.eventlog 19 | .stack-work/ 20 | cabal.project.local 21 | cabal.project.local~ 22 | .HTF/ 23 | .ghc.environment.* 24 | 25 | out 26 | -------------------------------------------------------------------------------- /generate-new/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Ellie Hermaszewska (c) 2016 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Ellie Hermaszewska nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /generate-new/examine.md: -------------------------------------------------------------------------------- 1 | 2 | `getPhysicalDeviceXlibPresentationSupportKHR` 3 | should be `:: PhysicalDevice -> Word32 -> Ptr Display -> VisualID -> IO Bool` 4 | 5 | `VkPipelineCoverageToColorStateCreateInfoNV` should use `Maybe Word32` to 6 | represent `coverageToColorLocation` and `coverageToColorEnable` 7 | 8 | `vkGetAccelerationStructureMemoryRequirementsNV` 9 | 10 | Shouldn't treat display as a return value 11 | - `getRandROutputDisplayEXT` 12 | - `acquireXlibDisplayEXT` 13 | 14 | `DrmFormatModifierPropertiesListEXT` Should allow for returning properties in a pointer 15 | 16 | `PipelineCreationFeedbackCreateInfoEXT` likewise 17 | 18 | ## Things which pass void pointers 19 | 20 | These should be treated as Bytestrings, 21 | - `PipelineCacheCreateInfo` 22 | - `ValidationCacheCreateInfoEXT` 23 | - `ShaderModuleCreateInfo` 24 | 25 | These should be polymorphic Storables 26 | - `SpecializationInfo` 27 | - `WriteDescriptorSetInlineUniformBlockEXT` 28 | - `DebugMarkerObjectTagInfoEXT` 29 | - `DebugUtilsObjectTagInfoEXT` 30 | 31 | `ExportFenceWin32HandleInfoKHR.attributes` should be a `Ptr SECURITY_ATTRIBUTES` 32 | -------------------------------------------------------------------------------- /generate-new/flags.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | f=$1 4 | exe_name=$(sed -n 's|^.*generate-new/\([^/]*\)/.*$|\1|p' <<< "$f") 5 | p=package.yaml 6 | { 7 | printf "%s\n" "$(yq < "$p" ".executables.$exe_name.\"source-dirs\"" --raw-output | sed 's|^|-i|')" 8 | printf "%s\n" "$(yq < "$p" '.library."source-dirs"' --raw-output | sed 's|^|-i|')" 9 | printf "%s\n" "$(yq < "$p" '."internal-libraries"."khronos-spec"."source-dirs"' --raw-output | sed 's|^|-i|')" 10 | printf "%s\n" "$(yq < "$p" '.library."ghc-options"[]' --raw-output | sed '/-O./d')" 11 | printf "%s\n" "$(yq < "$p" '.library."default-extensions"[]' --raw-output | sed 's|^|-X|')" 12 | printf "%s\n" "$(yq < "$p" '."default-extensions"[]' --raw-output | sed 's|^|-X|')" 13 | printf "%s\n" "$(yq < "$p" '."ghc-options"[]' --raw-output | sed '/-O/d')" 14 | } >> "$HIE_BIOS_OUTPUT" 15 | -------------------------------------------------------------------------------- /generate-new/hie.yaml: -------------------------------------------------------------------------------- 1 | cradle: 2 | multi: 3 | 4 | - path: ./out 5 | config: 6 | cradle: 7 | none: 8 | 9 | - path: ./out-vma 10 | config: 11 | cradle: 12 | none: 13 | 14 | - path: ./ 15 | config: 16 | cradle: 17 | cabal: 18 | - path: ./src/ 19 | component: lib:generate-new 20 | - path: ./khronos-spec/ 21 | component: lib:khronos-spec 22 | - path: ./vk/ 23 | component: exe:vk 24 | - path: ./xr/ 25 | component: exe:xr 26 | - path: ./vma/ 27 | component: exe:vma 28 | -------------------------------------------------------------------------------- /generate-new/src/CType/Size.hs: -------------------------------------------------------------------------------- 1 | module CType.Size 2 | ( scanOffsets 3 | , roundToAlignment 4 | ) 5 | where 6 | 7 | import Polysemy 8 | import Polysemy.State 9 | import Relude hiding ( get 10 | , put 11 | , runState 12 | ) 13 | 14 | scanOffsets 15 | :: (Traversable f, Monad m) 16 | => (Int -> Int -> Int) 17 | -- ^ Member offset given member alignment and current size 18 | -> (Int -> Int -> Int -> Int) 19 | -- ^ Next size given current size, member size and offset 20 | -> (a -> m (Int, Int)) 21 | -- ^ Size and alignment 22 | -> f a 23 | -> m (Int, Int, f Int) 24 | -- Total size, alignment and offsets for the elements 25 | scanOffsets getOffset getSize getTypeSize ts = do 26 | ((unalignedSize, align), offsets) <- runM . runState (0, 1) . for ts $ \t -> 27 | do 28 | (memberSize, memberAlign) <- embed $ getTypeSize t 29 | (totalSize , maxAlign ) <- get 30 | let newOffset = getOffset memberAlign totalSize 31 | put (getSize totalSize memberSize newOffset, max maxAlign memberAlign) 32 | pure newOffset 33 | pure (roundToAlignment align unalignedSize, align, offsets) 34 | 35 | -- | Find the next multiple of an alignment 36 | roundToAlignment 37 | :: Int 38 | -- ^ The alignment 39 | -> Int 40 | -- ^ The value to align 41 | -> Int 42 | -- ^ The next multiple of alignment 43 | roundToAlignment alignment value = 44 | alignment * ((value + (alignment - 1)) `quot` alignment) 45 | 46 | for :: (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b) 47 | for = flip traverse 48 | -------------------------------------------------------------------------------- /generate-new/src/Data/ByteString/Extra.hs: -------------------------------------------------------------------------------- 1 | module Data.ByteString.Extra where 2 | 3 | import Data.ByteString as BS 4 | import Prelude 5 | 6 | dropPrefix :: ByteString -> ByteString -> Maybe ByteString 7 | dropPrefix prefix s = if prefix `BS.isPrefixOf` s 8 | then Just (BS.drop (BS.length prefix) s) 9 | else Nothing 10 | -------------------------------------------------------------------------------- /generate-new/src/Data/Text/Extra.hs: -------------------------------------------------------------------------------- 1 | module Data.Text.Extra 2 | ( upperCaseFirst 3 | , lowerCaseFirst 4 | , dropPrefix 5 | , dropSuffix 6 | , (<+>) 7 | , module T 8 | ) 9 | where 10 | 11 | import Data.String ( IsString ) 12 | import Data.Text as T 13 | import Data.Semigroup 14 | import Data.Char 15 | import Prelude 16 | 17 | dropPrefix :: Text -> Text -> Maybe Text 18 | dropPrefix prefix s = if prefix `isPrefixOf` s 19 | then Just (T.drop (T.length prefix) s) 20 | else Nothing 21 | 22 | dropSuffix :: Text -> Text -> Maybe Text 23 | dropSuffix suffix s = if suffix `isSuffixOf` s 24 | then Just (T.dropEnd (T.length suffix) s) 25 | else Nothing 26 | 27 | (<+>) :: (IsString a, Semigroup a) => a -> a -> a 28 | a <+> b = a <> " " <> b 29 | 30 | lowerCaseFirst :: Text -> Text 31 | lowerCaseFirst = onFirst Data.Char.toLower 32 | 33 | upperCaseFirst :: Text -> Text 34 | upperCaseFirst = onFirst Data.Char.toUpper . T.dropWhile (not . isAlpha) 35 | 36 | onFirst :: (Char -> Char) -> Text -> Text 37 | onFirst f = \case 38 | Cons c cs -> Cons (f c) cs 39 | t -> t 40 | 41 | pattern Cons :: Char -> Text -> Text 42 | pattern Cons c cs <- (uncons -> Just (c, cs)) 43 | where Cons c cs = cons c cs 44 | -------------------------------------------------------------------------------- /generate-new/src/Data/Vector/Extra.hs: -------------------------------------------------------------------------------- 1 | module Data.Vector.Extra 2 | ( module Data.Vector 3 | , pattern Empty 4 | , pattern (:<|) 5 | , pattern Singleton 6 | ) where 7 | 8 | import Data.Vector 9 | import qualified Data.Vector as V 10 | import Prelude 11 | 12 | {-# complete Empty, (:<|) #-} 13 | 14 | pattern Empty :: Vector a 15 | pattern Empty <- (V.null -> True) where 16 | Empty = V.empty 17 | 18 | pattern (:<|) :: a -> Vector a -> Vector a 19 | pattern x :<| xs <- (V.uncons -> Just (x, xs)) where 20 | (:<|) = V.cons 21 | infixr :<| 22 | 23 | pattern Singleton :: a -> Vector a 24 | pattern Singleton x <- (V.uncons -> Just (x, Empty)) where 25 | Singleton = V.singleton 26 | 27 | -------------------------------------------------------------------------------- /generate-new/src/Haskell/Name.hs: -------------------------------------------------------------------------------- 1 | {-# language DeriveAnyClass #-} 2 | 3 | module Haskell.Name 4 | ( HName(..) 5 | , isTyConName 6 | ) 7 | where 8 | 9 | import Data.Text 10 | import Prettyprinter 11 | import Relude 12 | import Text.InterpolatedString.Perl6 13 | 14 | import Render.Utils ( unReservedWord ) 15 | 16 | data HName 17 | = TermName { unName :: Text } 18 | | TyConName { unName :: Text } 19 | | ConName { unName :: Text } 20 | deriving(Eq, Ord, Show, Generic, Hashable) 21 | 22 | isTyConName :: HName -> Bool 23 | isTyConName = \case 24 | TyConName _ -> True 25 | _ -> False 26 | 27 | instance Pretty HName where 28 | pretty = pretty . unReservedWord . unName 29 | 30 | instance ShowQ HName where 31 | showQ = unpack . unReservedWord . unName 32 | 33 | -------------------------------------------------------------------------------- /generate-new/src/Marshal.hs: -------------------------------------------------------------------------------- 1 | module Marshal 2 | ( module Marshal.Struct 3 | , module Marshal.Command 4 | ) 5 | where 6 | 7 | import Marshal.Command 8 | import Marshal.Struct 9 | 10 | -------------------------------------------------------------------------------- /generate-new/src/Marshal/Marshalable.hs: -------------------------------------------------------------------------------- 1 | module Marshal.Marshalable 2 | ( module Marshal.Marshalable 3 | , CName(..) 4 | ) where 5 | 6 | import Data.Vector as V 7 | hiding ( empty ) 8 | import Relude 9 | 10 | import CType 11 | import Spec.Name 12 | 13 | data ParameterLength 14 | = NullTerminated 15 | | NamedLength CName 16 | | NamedMemberLength CName CName 17 | -- ^ The length is specified by a member of another (struct) parameter, an 18 | -- example is vkAllocateCommandBuffers 19 | | NamedConstantLength CName 20 | deriving (Show, Eq, Ord) 21 | 22 | class Marshalable a where 23 | name :: a -> CName 24 | type' :: a -> CType 25 | values :: a -> Vector Text 26 | lengths :: a -> Vector ParameterLength 27 | isOptional :: a -> Vector Bool 28 | 29 | singleValue :: (Alternative f, Marshalable a) => a -> f Text 30 | singleValue x = 31 | let vs = values x in if V.length vs == 1 then pure $ unsafeHead vs else empty 32 | 33 | -------------------------------------------------------------------------------- /generate-new/src/Marshal/Scheme/Zero.hs: -------------------------------------------------------------------------------- 1 | module Marshal.Scheme.Zero where 2 | 3 | import Prettyprinter 4 | import Polysemy 5 | import Polysemy.NonDet 6 | import Relude 7 | 8 | import Error 9 | import Haskell.Name 10 | import Marshal.Scheme 11 | import Render.Element 12 | 13 | zeroScheme 14 | :: (HasRenderElem r, HasRenderParams r, HasErr r) 15 | => MarshalScheme a 16 | -> Sem r (Maybe (Doc ())) 17 | zeroScheme = runNonDetMaybe . go 18 | where 19 | go = \case 20 | Unit -> pure "()" 21 | Preserve _ -> pure "zero" 22 | Normal _ -> pure "zero" 23 | Length{} -> pure "zero" 24 | ElidedLength{} -> empty 25 | ElidedUnivalued _ -> empty 26 | ElidedVoid -> empty 27 | VoidPtr -> pure "zero" 28 | ByteString -> pure "mempty" 29 | Maybe _ -> pure "Nothing" 30 | Vector _ _ -> pure "mempty" 31 | EitherWord32 _ -> pure $ parens "Left 0" 32 | Tupled n s -> do 33 | z <- go s 34 | pure $ align (tupled (replicate (fromIntegral n) z)) 35 | Returned _ -> empty 36 | InOutCount _ -> empty 37 | OutCount _ -> empty 38 | WrappedStruct _ -> do 39 | tellImportWithAll (TyConName "SomeStruct") 40 | pure $ parens "SomeStruct zero" 41 | WrappedChildStruct _ -> throw "Unable to get a zero inheriting struct" 42 | Custom CustomScheme {..} -> maybe empty pure csZero 43 | ElidedCustom _ -> empty 44 | 45 | -------------------------------------------------------------------------------- /generate-new/src/Render/Alias.hs: -------------------------------------------------------------------------------- 1 | module Render.Alias 2 | where 3 | 4 | import Prettyprinter 5 | import Polysemy 6 | import Polysemy.Input 7 | import Relude 8 | 9 | import Error 10 | import Render.Element 11 | import Render.SpecInfo 12 | import Spec.Parse 13 | 14 | renderAlias 15 | :: (HasErr r, HasRenderParams r, HasSpecInfo r) 16 | => Alias 17 | -> Sem r RenderElement 18 | renderAlias Alias {..} = context (unCName aName) $ do 19 | RenderParams {..} <- input 20 | genRe ("alias " <> unCName aName) $ case aType of 21 | TypeAlias -> do 22 | let t = mkTyName aTarget 23 | n = mkTyName aName 24 | tellImport t 25 | let syn :: forall r . HasRenderElem r => Sem r () 26 | syn = do 27 | tellDocWithHaddock $ \getDoc -> 28 | vsep 29 | [ getDoc (TopLevel aName) 30 | , "type" <+> pretty n <+> "=" <+> pretty t 31 | ] 32 | tellExport (EType n) 33 | syn 34 | tellBoot $ do 35 | syn 36 | tellSourceImport t 37 | TermAlias -> do 38 | let n = mkFunName aName 39 | t = mkFunName aTarget 40 | tellExport (ETerm n) 41 | tellImport t 42 | tellDocWithHaddock $ \getDoc -> 43 | vsep [getDoc (TopLevel aName), pretty n <+> "=" <+> pretty t] 44 | PatternAlias -> do 45 | let n = mkPatternName aName 46 | t = mkPatternName aTarget 47 | tellExport (EPat n) 48 | tellImport t 49 | tellDocWithHaddock $ \getDoc -> 50 | vsep 51 | [getDoc (TopLevel aName), "pattern" <+> pretty n <+> "=" <+> pretty t] 52 | -------------------------------------------------------------------------------- /generate-new/src/Render/FuncPointer.hs: -------------------------------------------------------------------------------- 1 | {-# language TemplateHaskellQuotes #-} 2 | module Render.FuncPointer 3 | where 4 | 5 | import Prettyprinter 6 | import Foreign.Ptr 7 | import Language.Haskell.TH.Syntax 8 | import Polysemy 9 | import Polysemy.Input 10 | import Relude 11 | 12 | import CType 13 | import Error 14 | import Haskell as H 15 | import Render.Element 16 | import Render.SpecInfo 17 | import Render.Type 18 | import Spec.Parse 19 | 20 | renderFuncPointer 21 | :: (HasErr r, HasRenderParams r, HasSpecInfo r) 22 | => FuncPointer 23 | -> Sem r RenderElement 24 | renderFuncPointer FuncPointer {..} = contextShow (unCName fpName) $ do 25 | RenderParams {..} <- input 26 | fmap identicalBoot . genRe ("func pointer " <> unCName fpName) $ do 27 | let p = mkTyName fpName 28 | n = mkFuncPointerName fpName 29 | tDoc <- renderType =<< cToHsTypeWrapped DoPreserve =<< stripPtr fpType 30 | tPtrDoc <- renderType (ConT ''FunPtr :@ ConT (typeName n)) 31 | tellExport (EType p) 32 | tellExport (EType n) 33 | tellDocWithHaddock $ \getDoc -> vsep 34 | [ "type" <+> pretty n <+> "=" <+> tDoc 35 | , getDoc (TopLevel fpName) 36 | , "type" <+> pretty p <+> "=" <+> tPtrDoc 37 | ] 38 | 39 | stripPtr :: HasErr r => CType -> Sem r CType 40 | stripPtr = \case 41 | Ptr _ t -> pure t 42 | _ -> throw "trying to strip the pointer from a non-pointer type" 43 | 44 | -------------------------------------------------------------------------------- /generate-new/src/Render/State.hs: -------------------------------------------------------------------------------- 1 | module Render.State where 2 | 3 | import qualified Data.Set as Set 4 | import Error 5 | import Haskell.Name ( HName ) 6 | import Polysemy 7 | import Polysemy.State 8 | import Relude hiding ( State 9 | , gets 10 | , modify' 11 | ) 12 | 13 | type HasRenderState r = Member (State RenderState) r 14 | 15 | newtype RenderState = RenderState 16 | { storableStructOrUnionSet :: Set.Set HName 17 | } 18 | 19 | initialRenderState :: RenderState 20 | initialRenderState = RenderState mempty 21 | 22 | declareStorable :: HasRenderState r => HName -> Sem r () 23 | declareStorable n = modify' 24 | (\r -> 25 | r { storableStructOrUnionSet = Set.insert n (storableStructOrUnionSet r) } 26 | ) 27 | 28 | isStorableStructOrUnion :: (HasErr r, HasRenderState r) => HName -> Sem r Bool 29 | isStorableStructOrUnion n = do 30 | m <- gets storableStructOrUnionSet 31 | pure (Set.member n m) 32 | -------------------------------------------------------------------------------- /generate-new/src/Render/Stmts.hs-boot: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE AllowAmbiguousTypes #-} 2 | 3 | module Render.Stmts 4 | ( HasStmts 5 | , Stmt 6 | , StmtE 7 | ) where 8 | 9 | import Error 10 | import Polysemy 11 | import Polysemy.Fixpoint 12 | import Polysemy.State 13 | 14 | type HasStmts r = (Member Fixpoint r, HasErr r) 15 | type Stmt s (r :: [Effect]) = Sem (StmtE s r ': r) 16 | type StmtE s (r :: [Effect]) = State (ActionsState s r) :: Effect 17 | data ActionsState s (r :: [Effect]) 18 | -------------------------------------------------------------------------------- /generate-new/src/Render/Stmts/Poke/SiblingInfo.hs: -------------------------------------------------------------------------------- 1 | module Render.Stmts.Poke.SiblingInfo 2 | where 3 | 4 | import Prettyprinter 5 | import Polysemy 6 | import Polysemy.Input 7 | import Relude 8 | 9 | import Error 10 | import Marshal.Scheme 11 | import Spec.Name 12 | 13 | data SiblingInfo a = SiblingInfo 14 | { siReferrer :: Doc () 15 | -- ^ How to refer to this sibling in code 16 | , siScheme :: MarshalScheme a 17 | -- ^ What type is this sibling 18 | } 19 | 20 | type HasSiblingInfo a r = Member (Input (CName -> Maybe (SiblingInfo a))) r 21 | 22 | getSiblingInfo 23 | :: forall a r 24 | . (HasErr r, HasSiblingInfo a r) 25 | => CName 26 | -> Sem r (SiblingInfo a) 27 | getSiblingInfo n = 28 | note ("Unable to find info for: " <> unCName n) . ($ n) =<< input 29 | -------------------------------------------------------------------------------- /generate-new/src/Render/Stmts/Poke/SiblingInfo.hs-boot: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE RoleAnnotations #-} 2 | module Render.Stmts.Poke.SiblingInfo where 3 | 4 | import Data.Kind ( Type ) 5 | import Polysemy 6 | import Polysemy.Input 7 | import Prelude 8 | import Spec.Name ( CName ) 9 | 10 | type role SiblingInfo nominal 11 | data SiblingInfo (a :: Type) 12 | type HasSiblingInfo a r = Member (Input (CName -> Maybe (SiblingInfo a))) r 13 | -------------------------------------------------------------------------------- /generate-new/src/Render/Type/Preserve.hs: -------------------------------------------------------------------------------- 1 | module Render.Type.Preserve where 2 | 3 | import Language.Haskell.TH ( Name 4 | , Type 5 | ) 6 | import Prelude (Show) 7 | 8 | data Preserve 9 | = DoNotPreserve 10 | -- ^ Use more idiomatic haskell types 11 | | DoPreserve 12 | -- ^ Use the types from Foreign.C.Types 13 | | DoLower 14 | -- ^ Use the types from Foreign.C.Types and lower arrays to pointers 15 | 16 | data ExtensibleStructStyle r 17 | = Unwrapped 18 | -- ^ A variable is applied to the extensible struct 19 | -- 20 | -- Inheriting types are represented just by a var 21 | | UnwrappedHole 22 | -- ^ A hole is applied to extensible structs 23 | -- 24 | -- Inheriting structs are just left as holes 25 | | Wrapped 26 | -- ^ Structs should be wrapped in @SomeStruct@ 27 | 28 | data ConstrainedVar 29 | = Extends {cVarBase :: Type, cVarName :: Name} 30 | | Inherits {cVarBase :: Type, cVarName :: Name} 31 | | Unconstrained {cVarName :: Name} 32 | deriving (Show) 33 | -------------------------------------------------------------------------------- /generate-new/src/Spec/Flavor.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE AllowAmbiguousTypes #-} 2 | module Spec.Flavor where 3 | 4 | import Relude 5 | 6 | data SpecFlavor 7 | = SpecVk 8 | | SpecXr 9 | 10 | data SSpecFlavor t where 11 | SSpecVk ::SSpecFlavor SpecVk 12 | SSpecXr ::SSpecFlavor SpecXr 13 | 14 | class KnownSpecFlavor (t :: SpecFlavor) where 15 | sSpecFlavor :: SSpecFlavor t 16 | instance KnownSpecFlavor SpecVk where 17 | sSpecFlavor = SSpecVk 18 | instance KnownSpecFlavor SpecXr where 19 | sSpecFlavor = SSpecXr 20 | 21 | specFlavor :: forall t . KnownSpecFlavor t => SpecFlavor 22 | specFlavor = case sSpecFlavor @t of 23 | SSpecVk -> SpecVk 24 | SSpecXr -> SpecXr 25 | 26 | flavorPrefixCaps :: forall t . KnownSpecFlavor t => ByteString 27 | flavorPrefixCaps = case sSpecFlavor @t of 28 | SSpecVk -> "VK" 29 | SSpecXr -> "XR" 30 | -------------------------------------------------------------------------------- /generate-new/src/Spec/Name.hs: -------------------------------------------------------------------------------- 1 | module Spec.Name 2 | where 3 | 4 | import Relude 5 | 6 | newtype CName = CName { unCName :: Text } 7 | deriving stock (Eq, Ord) 8 | deriving newtype (Show, IsString, Hashable) 9 | 10 | -------------------------------------------------------------------------------- /generate-new/src/TrackDepends.hs: -------------------------------------------------------------------------------- 1 | module TrackDepends 2 | where 3 | 4 | import Polysemy 5 | import Polysemy.Writer 6 | import Relude 7 | 8 | newtype ModuleName = ModuleName { unModuleName :: Text } 9 | 10 | data Dependency 11 | = External ModuleName Text 12 | | Internal Text 13 | 14 | type TrackDepends = Writer [Dependency] 15 | 16 | type HasTrackDepends r = Member TrackDepends r 17 | -------------------------------------------------------------------------------- /generate-new/src/VkModulePrefix.hs: -------------------------------------------------------------------------------- 1 | module VkModulePrefix 2 | ( vulkanModule 3 | , vulkanModulePrefix 4 | ) where 5 | 6 | import qualified Data.Text as T 7 | import Relude 8 | 9 | import Render.Element ( ModName(..) ) 10 | 11 | -- | Module prefix for generated source 12 | vulkanModulePrefix :: Text 13 | vulkanModulePrefix = "Vulkan" 14 | 15 | vulkanModule :: [Text] -> ModName 16 | vulkanModule = ModName . T.intercalate "." . (vulkanModulePrefix :) 17 | -------------------------------------------------------------------------------- /generate-new/src/Write/Segment.hs: -------------------------------------------------------------------------------- 1 | {-# language DeriveFunctor, DeriveFoldable, DeriveTraversable #-} 2 | module Write.Segment 3 | where 4 | 5 | import Data.Functor 6 | import Data.Vector ( Vector ) 7 | import Prelude 8 | 9 | data Segment i a = Segment i (Vector a) 10 | deriving (Functor, Foldable, Traversable, Show) 11 | 12 | -------------------------------------------------------------------------------- /haskell-vulkan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/expipiplus1/vulkan/a52f9a92c2b4ec5d4eae7a3b98709927ab01a99b/haskell-vulkan.png -------------------------------------------------------------------------------- /hie.yaml: -------------------------------------------------------------------------------- 1 | cradle: 2 | cabal: 3 | - path: "./generate-new/src/" 4 | component: "lib:generate-new" 5 | - path: "./generate-new/vk/" 6 | component: "exe:vk" 7 | - path: "./generate-new/vma/" 8 | component: "exe:vma" 9 | - path: "./src/" 10 | component: "lib:vulkan" 11 | - path: "./src-manual/" 12 | component: "lib:vulkan" 13 | - path: "./test/" 14 | component: "test:test" 15 | - path: "./VulkanMemoryAllocator/" 16 | component: "lib:VulkanMemoryAllocator" 17 | - path: "./openxr/" 18 | component: "lib:openxr" 19 | -------------------------------------------------------------------------------- /nix/generate.nix: -------------------------------------------------------------------------------- 1 | { pkgs ? import ./nixpkgs.nix, compiler ? null 2 | , vulkan-docs ? ../generate-new/Vulkan-Docs, withDocs ? false }: 3 | 4 | with pkgs; 5 | with lib; 6 | 7 | let haskellPackages = import ./haskell-packages.nix { inherit pkgs compiler; }; 8 | 9 | in runCommand "vulkan-gen" { 10 | nativeBuildInputs = [ 11 | python3 12 | python3Packages.pyparsing 13 | asciidoctor 14 | gnumake 15 | nodejs 16 | nodePackages.he 17 | nodePackages.escape-string-regexp 18 | git 19 | ]; 20 | } '' 21 | cp -r "${vulkan-docs}" Vulkan-Docs 22 | ${optionalString withDocs '' 23 | chmod a+w Vulkan-Docs --recursive 24 | patchShebangs Vulkan-Docs/makeAllExts Vulkan-Docs/makeSpec 25 | 26 | echo "Cleaning Vulkan-Docs" 27 | git -C Vulkan-Docs clean -dxf || true 28 | 29 | echo "Generating Vulkan-Docs documentation" 30 | (cd Vulkan-Docs && ./makeAllExts refpages generated) 31 | ''} 32 | LANG=C.UTF-8 ${haskellPackages.generate-new}/bin/vk ${ 33 | optionalString (!withDocs) "nodocs" 34 | } 35 | mv out "$out" 36 | '' 37 | -------------------------------------------------------------------------------- /nix/nixpkgs.nix: -------------------------------------------------------------------------------- 1 | let 2 | nixpkgsSrc = builtins.fetchTarball { 3 | url = 4 | "https://github.com/nixos/nixpkgs/archive/fad51abd42ca17a60fc1d4cb9382e2d79ae31836.tar.gz"; # refs/heads/nixos-unstable 5 | # "https://github.com/expipiplus1/nixpkgs/archive/79cb423531c178af07353e2285a17abe3073e306.tar.gz"; # refs/heads/ellie-ghcHEAD 6 | sha256 = "0jzy84zgjgblp2ph3kb2kj5z2k05vagn6ms5m80pjr2g27m6hr37"; 7 | }; 8 | 9 | in import nixpkgsSrc { } 10 | -------------------------------------------------------------------------------- /openxr/changelog.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## WIP 4 | 5 | - Initial release targeting OpenXR 1.0.13 6 | -------------------------------------------------------------------------------- /openxr/readme.md: -------------------------------------------------------------------------------- 1 | # OpenXR Haskell bindings 2 | 3 | Slightly high level Haskell bindings to the OpenXR API. 4 | 5 | Please see the [`vulkan` readme](https://github.com/expipiplus1/vulkan/#vulkan) 6 | for information on using these bindings, the style is very similar. 7 | 8 | ## Vulkan integration 9 | 10 | The `use-vulkan-types` Cabal flag makes it so that Vulkan types are reexported 11 | in `OpenXR.VulkanTypes` from the 12 | [`vulkan`](https://hackage.haskell.org/package/vulkan) package instead of being 13 | redefined in this package. It is enabled by default. 14 | -------------------------------------------------------------------------------- /openxr/src-manual/OpenXR/VulkanTypes.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE CPP #-} 2 | 3 | module OpenXR.VulkanTypes 4 | ( Instance_T 5 | , PhysicalDevice_T 6 | , Device_T 7 | , Image(..) 8 | , Result(..) 9 | , Format(..) 10 | , InstanceCreateInfo 11 | , DeviceCreateInfo 12 | , AllocationCallbacks 13 | , PFN_vkGetInstanceProcAddr 14 | , SomeStruct(..) 15 | ) where 16 | 17 | #if defined(USE_VULKAN_TYPES) 18 | 19 | import Vulkan 20 | import Vulkan.CStruct.Extends 21 | import Foreign.C.String 22 | import Foreign.Ptr 23 | 24 | type PFN_vkGetInstanceProcAddr = FunPtr (CString -> IO (FunPtr ())) 25 | 26 | #else 27 | 28 | import Data.Kind 29 | import Data.Word 30 | import Foreign.C.String 31 | import Foreign.Ptr 32 | import Foreign.Storable 33 | import OpenXR.Zero 34 | 35 | data Instance_T 36 | 37 | data PhysicalDevice_T 38 | 39 | data Device_T 40 | 41 | newtype Image = Image Word64 42 | deriving stock (Eq, Show) 43 | deriving newtype (Zero, Storable) 44 | 45 | newtype Result = Result Word32 46 | deriving stock (Eq, Show) 47 | deriving newtype (Zero, Storable) 48 | 49 | newtype Format = Format Word32 50 | deriving stock (Eq, Show) 51 | deriving newtype (Zero, Storable) 52 | 53 | data InstanceCreateInfo es 54 | data DeviceCreateInfo es 55 | 56 | data AllocationCallbacks 57 | 58 | type PFN_vkGetInstanceProcAddr = FunPtr (CString -> IO (FunPtr ())) 59 | 60 | data SomeStruct (a :: [Type] -> Type) where 61 | SomeStruct :: forall a es. a es -> SomeStruct a 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /openxr/src/OpenXR.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "OpenXR" 3 | module OpenXR ( module OpenXR.CStruct 4 | , module OpenXR.Core10 5 | , module OpenXR.Extensions 6 | , module OpenXR.NamedType 7 | , module OpenXR.Version 8 | ) where 9 | import OpenXR.CStruct 10 | import OpenXR.Core10 11 | import OpenXR.Extensions 12 | import OpenXR.NamedType 13 | import OpenXR.Version 14 | 15 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/CStruct/Extends.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Extends" 3 | module OpenXR.CStruct.Extends ( BaseInStructure 4 | , BaseOutStructure 5 | , Extendss 6 | , PeekChain 7 | , PokeChain 8 | , Chain 9 | ) where 10 | 11 | import OpenXR.CStruct (FromCStruct) 12 | import OpenXR.CStruct (ToCStruct) 13 | import Data.Kind (Constraint) 14 | import Data.Kind (Type) 15 | 16 | data BaseInStructure 17 | 18 | instance ToCStruct BaseInStructure 19 | instance Show BaseInStructure 20 | 21 | instance FromCStruct BaseInStructure 22 | 23 | 24 | data BaseOutStructure 25 | 26 | instance ToCStruct BaseOutStructure 27 | instance Show BaseOutStructure 28 | 29 | instance FromCStruct BaseOutStructure 30 | 31 | 32 | class PeekChain (xs :: [Type]) 33 | class PokeChain (xs :: [Type]) 34 | type family Extends (p :: [Type] -> Type) (x :: Type) :: Constraint 35 | type family Extendss (p :: [Type] -> Type) (xs :: [Type]) :: Constraint where 36 | Extendss p '[] = () 37 | Extendss p (x : xs) = (Extends p x, Extendss p xs) 38 | type family Chain (xs :: [a]) = (r :: a) | r -> xs where 39 | Chain '[] = () 40 | Chain (x:xs) = (x, Chain xs) 41 | 42 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/APIConstants.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "APIConstants" 3 | module OpenXR.Core10.APIConstants ( MAX_RESULT_STRING_SIZE 4 | , MAX_STRUCTURE_NAME_SIZE 5 | ) where 6 | 7 | 8 | 9 | type MAX_RESULT_STRING_SIZE = 64 10 | 11 | 12 | type MAX_STRUCTURE_NAME_SIZE = 64 13 | 14 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Enums/EnvironmentBlendMode.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "EnvironmentBlendMode" 3 | module OpenXR.Core10.Enums.EnvironmentBlendMode (EnvironmentBlendMode) where 4 | 5 | 6 | 7 | data EnvironmentBlendMode 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Enums/ReferenceSpaceType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ReferenceSpaceType" 3 | module OpenXR.Core10.Enums.ReferenceSpaceType (ReferenceSpaceType) where 4 | 5 | 6 | 7 | data ReferenceSpaceType 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Enums/Result.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Result" 3 | module OpenXR.Core10.Enums.Result (Result) where 4 | 5 | 6 | 7 | data Result 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Enums/StructureType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "StructureType" 3 | module OpenXR.Core10.Enums.StructureType (StructureType) where 4 | 5 | 6 | 7 | data StructureType 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Enums/ViewConfigurationType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ViewConfigurationType" 3 | module OpenXR.Core10.Enums.ViewConfigurationType (ViewConfigurationType) where 4 | 5 | 6 | 7 | data ViewConfigurationType 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/FuncPointers.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "FuncPointers" 3 | module OpenXR.Core10.FuncPointers ( PFN_xrVoidFunction 4 | , FN_xrVoidFunction 5 | ) where 6 | 7 | import Foreign.Ptr (FunPtr) 8 | 9 | type FN_xrVoidFunction = () -> IO () 10 | -- | PFN_xrVoidFunction - Generic function pointer type returned by queries 11 | -- 12 | -- == Parameter Descriptions 13 | -- 14 | -- - no parameters. 15 | -- 16 | -- = Description 17 | -- 18 | -- 'PFN_xrVoidFunction' is a generic function pointer type returned by 19 | -- queries, specifically those to 20 | -- 'OpenXR.Core10.Instance.getInstanceProcAddr'. 21 | -- 22 | -- = See Also 23 | -- 24 | -- 'OpenXR.Core10.Instance.getInstanceProcAddr' 25 | type PFN_xrVoidFunction = FunPtr FN_xrVoidFunction 26 | 27 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/FuncPointers.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "FuncPointers" 3 | module OpenXR.Core10.FuncPointers ( PFN_xrVoidFunction 4 | , FN_xrVoidFunction 5 | ) where 6 | 7 | import Foreign.Ptr (FunPtr) 8 | 9 | type FN_xrVoidFunction = () -> IO () 10 | -- | PFN_xrVoidFunction - Generic function pointer type returned by queries 11 | -- 12 | -- == Parameter Descriptions 13 | -- 14 | -- - no parameters. 15 | -- 16 | -- = Description 17 | -- 18 | -- 'PFN_xrVoidFunction' is a generic function pointer type returned by 19 | -- queries, specifically those to 20 | -- 'OpenXR.Core10.Instance.getInstanceProcAddr'. 21 | -- 22 | -- = See Also 23 | -- 24 | -- 'OpenXR.Core10.Instance.getInstanceProcAddr' 25 | type PFN_xrVoidFunction = FunPtr FN_xrVoidFunction 26 | 27 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Handles.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Handles" 3 | module OpenXR.Core10.Handles ( ActionSet 4 | , ActionSet_T 5 | , Action 6 | , Action_T 7 | , Instance 8 | , Instance_T 9 | , Session 10 | , Session_T 11 | , Space 12 | , Space_T 13 | , Swapchain 14 | , Swapchain_T 15 | ) where 16 | 17 | 18 | 19 | data ActionSet 20 | 21 | data ActionSet_T 22 | 23 | 24 | data Action 25 | 26 | data Action_T 27 | 28 | 29 | data Instance 30 | 31 | data Instance_T 32 | 33 | 34 | data Session 35 | 36 | data Session_T 37 | 38 | 39 | data Space 40 | 41 | data Space_T 42 | 43 | 44 | data Swapchain 45 | 46 | data Swapchain_T 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Haptics.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Haptics" 3 | module OpenXR.Core10.Haptics ( HapticActionInfo 4 | , HapticBaseHeader 5 | ) where 6 | 7 | import OpenXR.CStruct (FromCStruct) 8 | import OpenXR.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data HapticActionInfo 12 | 13 | instance ToCStruct HapticActionInfo 14 | instance Show HapticActionInfo 15 | 16 | instance FromCStruct HapticActionInfo 17 | 18 | 19 | data HapticBaseHeader 20 | 21 | instance ToCStruct HapticBaseHeader 22 | instance Show HapticBaseHeader 23 | 24 | instance FromCStruct HapticBaseHeader 25 | 26 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/SemanticPaths.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SemanticPaths" 3 | module OpenXR.Core10.SemanticPaths (Path) where 4 | 5 | 6 | 7 | data Path 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/Session.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Session" 3 | module OpenXR.Core10.Session (SessionBeginInfo) where 4 | 5 | import OpenXR.CStruct (FromCStruct) 6 | import OpenXR.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} OpenXR.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} OpenXR.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} OpenXR.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} OpenXR.CStruct.Extends (PokeChain) 12 | type role SessionBeginInfo nominal 13 | data SessionBeginInfo (es :: [Type]) 14 | 15 | instance ( Extendss SessionBeginInfo es 16 | , PokeChain es ) => ToCStruct (SessionBeginInfo es) 17 | instance Show (Chain es) => Show (SessionBeginInfo es) 18 | 19 | instance ( Extendss SessionBeginInfo es 20 | , PeekChain es ) => FromCStruct (SessionBeginInfo es) 21 | 22 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Core10/ViewConfigurations.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ViewConfigurations" 3 | module OpenXR.Core10.ViewConfigurations ( ViewConfigurationProperties 4 | , ViewConfigurationView 5 | ) where 6 | 7 | import OpenXR.CStruct (FromCStruct) 8 | import OpenXR.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} OpenXR.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} OpenXR.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} OpenXR.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} OpenXR.CStruct.Extends (PokeChain) 14 | data ViewConfigurationProperties 15 | 16 | instance ToCStruct ViewConfigurationProperties 17 | instance Show ViewConfigurationProperties 18 | 19 | instance FromCStruct ViewConfigurationProperties 20 | 21 | 22 | type role ViewConfigurationView nominal 23 | data ViewConfigurationView (es :: [Type]) 24 | 25 | instance ( Extendss ViewConfigurationView es 26 | , PokeChain es ) => ToCStruct (ViewConfigurationView es) 27 | instance Show (Chain es) => Show (ViewConfigurationView es) 28 | 29 | instance ( Extendss ViewConfigurationView es 30 | , PeekChain es ) => FromCStruct (ViewConfigurationView es) 31 | 32 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Dynamic.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Dynamic" 3 | module OpenXR.Dynamic (InstanceCmds) where 4 | 5 | 6 | 7 | data InstanceCmds 8 | 9 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Exception.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Exception" 3 | module OpenXR.Exception (OpenXrException(..)) where 4 | 5 | import GHC.Exception.Type (Exception(..)) 6 | import OpenXR.Core10.Enums.Result (Result) 7 | import OpenXR.Core10.Enums.Result (Result(..)) 8 | -- | This exception is thrown from calls to marshalled Vulkan commands 9 | -- which return a negative VkResult. 10 | newtype OpenXrException = OpenXrException { vulkanExceptionResult :: Result } 11 | deriving (Eq, Ord, Read, Show) 12 | 13 | instance Exception OpenXrException where 14 | displayException (OpenXrException r) = show r ++ ": " ++ resultString r 15 | 16 | -- | A human understandable message for each VkResult 17 | resultString :: Result -> String 18 | resultString = \case 19 | 20 | r -> show r 21 | 22 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/Handles.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Handles" 3 | module OpenXR.Extensions.Handles ( DebugUtilsMessengerEXT 4 | , DebugUtilsMessengerEXT_T 5 | , HandTrackerEXT 6 | , HandTrackerEXT_T 7 | , SpatialAnchorMSFT 8 | , SpatialAnchorMSFT_T 9 | ) where 10 | 11 | 12 | 13 | data DebugUtilsMessengerEXT 14 | 15 | data DebugUtilsMessengerEXT_T 16 | 17 | 18 | data HandTrackerEXT 19 | 20 | data HandTrackerEXT_T 21 | 22 | 23 | data SpatialAnchorMSFT 24 | 25 | data SpatialAnchorMSFT_T 26 | 27 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_EPIC_view_configuration_fov.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_EPIC_view_configuration_fov - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 60 15 | -- 16 | -- = Revision 17 | -- 18 | -- 2 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'ViewConfigurationViewFovEPIC' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_EPIC_view_configuration_fov (ViewConfigurationViewFovEPIC) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data ViewConfigurationViewFovEPIC 42 | 43 | instance ToCStruct ViewConfigurationViewFovEPIC 44 | instance Show ViewConfigurationViewFovEPIC 45 | 46 | instance FromCStruct ViewConfigurationViewFovEPIC 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_EXT_view_configuration_depth_range.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_EXT_view_configuration_depth_range - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 47 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'ViewConfigurationDepthRangeEXT' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_EXT_view_configuration_depth_range (ViewConfigurationDepthRangeEXT) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data ViewConfigurationDepthRangeEXT 42 | 43 | instance ToCStruct ViewConfigurationDepthRangeEXT 44 | instance Show ViewConfigurationDepthRangeEXT 45 | 46 | instance FromCStruct ViewConfigurationDepthRangeEXT 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_FB_color_space.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_FB_color_space - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 109 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'ColorSpaceFB', 'SystemColorSpacePropertiesFB', 27 | -- 'enumerateColorSpacesFB', 'setColorSpaceFB' 28 | -- 29 | -- = Document Notes 30 | -- 31 | -- For more information, see the 32 | -- 33 | -- 34 | -- This page is a generated document. Fixes and changes should be made to 35 | -- the generator scripts, not directly. 36 | module OpenXR.Extensions.XR_FB_color_space ( SystemColorSpacePropertiesFB 37 | , ColorSpaceFB 38 | ) where 39 | 40 | import OpenXR.CStruct (FromCStruct) 41 | import OpenXR.CStruct (ToCStruct) 42 | import Data.Kind (Type) 43 | 44 | data SystemColorSpacePropertiesFB 45 | 46 | instance ToCStruct SystemColorSpacePropertiesFB 47 | instance Show SystemColorSpacePropertiesFB 48 | 49 | instance FromCStruct SystemColorSpacePropertiesFB 50 | 51 | 52 | data ColorSpaceFB 53 | 54 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_FB_display_refresh_rate.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_FB_display_refresh_rate - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 102 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'EventDataDisplayRefreshRateChangedFB', 27 | -- 'enumerateDisplayRefreshRatesFB', 'getDisplayRefreshRateFB', 28 | -- 'requestDisplayRefreshRateFB' 29 | -- 30 | -- = Document Notes 31 | -- 32 | -- For more information, see the 33 | -- 34 | -- 35 | -- This page is a generated document. Fixes and changes should be made to 36 | -- the generator scripts, not directly. 37 | module OpenXR.Extensions.XR_FB_display_refresh_rate (EventDataDisplayRefreshRateChangedFB) where 38 | 39 | import OpenXR.CStruct (FromCStruct) 40 | import OpenXR.CStruct (ToCStruct) 41 | import Data.Kind (Type) 42 | 43 | data EventDataDisplayRefreshRateChangedFB 44 | 45 | instance ToCStruct EventDataDisplayRefreshRateChangedFB 46 | instance Show EventDataDisplayRefreshRateChangedFB 47 | 48 | instance FromCStruct EventDataDisplayRefreshRateChangedFB 49 | 50 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_android_create_instance.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_android_create_instance - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 9 15 | -- 16 | -- = Revision 17 | -- 18 | -- 3 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'InstanceCreateInfoAndroidKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_android_create_instance (InstanceCreateInfoAndroidKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data InstanceCreateInfoAndroidKHR 42 | 43 | instance ToCStruct InstanceCreateInfoAndroidKHR 44 | instance Show InstanceCreateInfoAndroidKHR 45 | 46 | instance FromCStruct InstanceCreateInfoAndroidKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_android_surface_swapchain.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_android_surface_swapchain - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 5 15 | -- 16 | -- = Revision 17 | -- 18 | -- 4 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'createSwapchainAndroidSurfaceKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_android_surface_swapchain (Jobject) where 36 | 37 | 38 | 39 | data Jobject 40 | 41 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_android_thread_settings.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_android_thread_settings - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 4 15 | -- 16 | -- = Revision 17 | -- 18 | -- 5 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'AndroidThreadTypeKHR', 'setAndroidApplicationThreadKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_android_thread_settings (AndroidThreadTypeKHR) where 36 | 37 | 38 | 39 | data AndroidThreadTypeKHR 40 | 41 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_composition_layer_color_scale_bias.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_composition_layer_color_scale_bias - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 35 15 | -- 16 | -- = Revision 17 | -- 18 | -- 5 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'CompositionLayerColorScaleBiasKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_composition_layer_color_scale_bias (CompositionLayerColorScaleBiasKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data CompositionLayerColorScaleBiasKHR 42 | 43 | instance ToCStruct CompositionLayerColorScaleBiasKHR 44 | instance Show CompositionLayerColorScaleBiasKHR 45 | 46 | instance FromCStruct CompositionLayerColorScaleBiasKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_composition_layer_cube.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_composition_layer_cube - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 7 15 | -- 16 | -- = Revision 17 | -- 18 | -- 8 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'CompositionLayerCubeKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_composition_layer_cube (CompositionLayerCubeKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data CompositionLayerCubeKHR 42 | 43 | instance ToCStruct CompositionLayerCubeKHR 44 | instance Show CompositionLayerCubeKHR 45 | 46 | instance FromCStruct CompositionLayerCubeKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_composition_layer_cylinder.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_composition_layer_cylinder - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 18 15 | -- 16 | -- = Revision 17 | -- 18 | -- 4 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'CompositionLayerCylinderKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_composition_layer_cylinder (CompositionLayerCylinderKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data CompositionLayerCylinderKHR 42 | 43 | instance ToCStruct CompositionLayerCylinderKHR 44 | instance Show CompositionLayerCylinderKHR 45 | 46 | instance FromCStruct CompositionLayerCylinderKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_composition_layer_depth.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_composition_layer_depth - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 11 15 | -- 16 | -- = Revision 17 | -- 18 | -- 5 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'CompositionLayerDepthInfoKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_composition_layer_depth (CompositionLayerDepthInfoKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data CompositionLayerDepthInfoKHR 42 | 43 | instance ToCStruct CompositionLayerDepthInfoKHR 44 | instance Show CompositionLayerDepthInfoKHR 45 | 46 | instance FromCStruct CompositionLayerDepthInfoKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_composition_layer_equirect.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_composition_layer_equirect - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 19 15 | -- 16 | -- = Revision 17 | -- 18 | -- 3 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'CompositionLayerEquirectKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_composition_layer_equirect (CompositionLayerEquirectKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data CompositionLayerEquirectKHR 42 | 43 | instance ToCStruct CompositionLayerEquirectKHR 44 | instance Show CompositionLayerEquirectKHR 45 | 46 | instance FromCStruct CompositionLayerEquirectKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_composition_layer_equirect2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_composition_layer_equirect2 - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 92 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'CompositionLayerEquirect2KHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_composition_layer_equirect2 (CompositionLayerEquirect2KHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data CompositionLayerEquirect2KHR 42 | 43 | instance ToCStruct CompositionLayerEquirect2KHR 44 | instance Show CompositionLayerEquirect2KHR 45 | 46 | instance FromCStruct CompositionLayerEquirect2KHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_convert_timespec_time.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_convert_timespec_time - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 37 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'convertTimeToTimespecTimeKHR', 'convertTimespecTimeToTimeKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_convert_timespec_time (Timespec) where 36 | 37 | 38 | 39 | data Timespec 40 | 41 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_loader_init.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_loader_init - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 89 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'LoaderInitInfoBaseHeaderKHR', 'initializeLoaderKHR' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_KHR_loader_init (LoaderInitInfoBaseHeaderKHR) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data LoaderInitInfoBaseHeaderKHR 42 | 43 | instance ToCStruct LoaderInitInfoBaseHeaderKHR 44 | instance Show LoaderInitInfoBaseHeaderKHR 45 | 46 | instance FromCStruct LoaderInitInfoBaseHeaderKHR 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_loader_init_android.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_loader_init_android - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 90 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- - Requires @XR_KHR_loader_init@ 25 | -- 26 | -- = See Also 27 | -- 28 | -- 'LoaderInitInfoAndroidKHR' 29 | -- 30 | -- = Document Notes 31 | -- 32 | -- For more information, see the 33 | -- 34 | -- 35 | -- This page is a generated document. Fixes and changes should be made to 36 | -- the generator scripts, not directly. 37 | module OpenXR.Extensions.XR_KHR_loader_init_android (LoaderInitInfoAndroidKHR) where 38 | 39 | import OpenXR.CStruct (FromCStruct) 40 | import OpenXR.CStruct (ToCStruct) 41 | import Data.Kind (Type) 42 | 43 | data LoaderInitInfoAndroidKHR 44 | 45 | instance ToCStruct LoaderInitInfoAndroidKHR 46 | instance Show LoaderInitInfoAndroidKHR 47 | 48 | instance FromCStruct LoaderInitInfoAndroidKHR 49 | 50 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_vulkan_swapchain_format_list.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_vulkan_swapchain_format_list - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 15 15 | -- 16 | -- = Revision 17 | -- 18 | -- 3 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- - Requires @XR_KHR_vulkan_enable@ 25 | -- 26 | -- = See Also 27 | -- 28 | -- 'VulkanSwapchainFormatListCreateInfoKHR' 29 | -- 30 | -- = Document Notes 31 | -- 32 | -- For more information, see the 33 | -- 34 | -- 35 | -- This page is a generated document. Fixes and changes should be made to 36 | -- the generator scripts, not directly. 37 | module OpenXR.Extensions.XR_KHR_vulkan_swapchain_format_list (VulkanSwapchainFormatListCreateInfoKHR) where 38 | 39 | import OpenXR.CStruct (FromCStruct) 40 | import OpenXR.CStruct (ToCStruct) 41 | import Data.Kind (Type) 42 | 43 | data VulkanSwapchainFormatListCreateInfoKHR 44 | 45 | instance ToCStruct VulkanSwapchainFormatListCreateInfoKHR 46 | instance Show VulkanSwapchainFormatListCreateInfoKHR 47 | 48 | instance FromCStruct VulkanSwapchainFormatListCreateInfoKHR 49 | 50 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_KHR_win32_convert_performance_counter_time.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_KHR_win32_convert_performance_counter_time - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 36 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'convertTimeToWin32PerformanceCounterKHR', 27 | -- 'convertWin32PerformanceCounterToTimeKHR' 28 | -- 29 | -- = Document Notes 30 | -- 31 | -- For more information, see the 32 | -- 33 | -- 34 | -- This page is a generated document. Fixes and changes should be made to 35 | -- the generator scripts, not directly. 36 | module OpenXR.Extensions.XR_KHR_win32_convert_performance_counter_time (LARGE_INTEGER) where 37 | 38 | import Data.Word (Word64) 39 | 40 | type LARGE_INTEGER = Word64 41 | 42 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_MNDX_egl_enable.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_MNDX_egl_enable - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 49 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'GraphicsBindingEGLMNDX' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_MNDX_egl_enable (GraphicsBindingEGLMNDX) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data GraphicsBindingEGLMNDX 42 | 43 | instance ToCStruct GraphicsBindingEGLMNDX 44 | instance Show GraphicsBindingEGLMNDX 45 | 46 | instance FromCStruct GraphicsBindingEGLMNDX 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_MSFT_holographic_window_attachment.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_MSFT_holographic_window_attachment - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 64 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'HolographicWindowAttachmentMSFT' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_MSFT_holographic_window_attachment (HolographicWindowAttachmentMSFT) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data HolographicWindowAttachmentMSFT 42 | 43 | instance ToCStruct HolographicWindowAttachmentMSFT 44 | instance Show HolographicWindowAttachmentMSFT 45 | 46 | instance FromCStruct HolographicWindowAttachmentMSFT 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_MSFT_perception_anchor_interop.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_MSFT_perception_anchor_interop - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 57 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- - Requires @XR_MSFT_spatial_anchor@ 25 | -- 26 | -- = See Also 27 | -- 28 | -- 'createSpatialAnchorFromPerceptionAnchorMSFT', 29 | -- 'tryGetPerceptionAnchorFromSpatialAnchorMSFT' 30 | -- 31 | -- = Document Notes 32 | -- 33 | -- For more information, see the 34 | -- 35 | -- 36 | -- This page is a generated document. Fixes and changes should be made to 37 | -- the generator scripts, not directly. 38 | module OpenXR.Extensions.XR_MSFT_perception_anchor_interop (IUnknown) where 39 | 40 | 41 | 42 | data IUnknown 43 | 44 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_MSFT_spatial_graph_bridge.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_MSFT_spatial_graph_bridge - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 50 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'SpatialGraphNodeSpaceCreateInfoMSFT', 'SpatialGraphNodeTypeMSFT', 27 | -- 'createSpatialGraphNodeSpaceMSFT' 28 | -- 29 | -- = Document Notes 30 | -- 31 | -- For more information, see the 32 | -- 33 | -- 34 | -- This page is a generated document. Fixes and changes should be made to 35 | -- the generator scripts, not directly. 36 | module OpenXR.Extensions.XR_MSFT_spatial_graph_bridge (SpatialGraphNodeSpaceCreateInfoMSFT) where 37 | 38 | import OpenXR.CStruct (FromCStruct) 39 | import OpenXR.CStruct (ToCStruct) 40 | import Data.Kind (Type) 41 | 42 | data SpatialGraphNodeSpaceCreateInfoMSFT 43 | 44 | instance ToCStruct SpatialGraphNodeSpaceCreateInfoMSFT 45 | instance Show SpatialGraphNodeSpaceCreateInfoMSFT 46 | 47 | instance FromCStruct SpatialGraphNodeSpaceCreateInfoMSFT 48 | 49 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/Extensions/XR_VALVE_analog_threshold.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- | = Name 3 | -- 4 | -- XR_VALVE_analog_threshold - instance extension 5 | -- 6 | -- = Specification 7 | -- 8 | -- See 9 | -- 10 | -- in the main specification for complete information. 11 | -- 12 | -- = Registered Extension Number 13 | -- 14 | -- 80 15 | -- 16 | -- = Revision 17 | -- 18 | -- 1 19 | -- 20 | -- = Extension and Version Dependencies 21 | -- 22 | -- - Requires OpenXR 1.0 23 | -- 24 | -- = See Also 25 | -- 26 | -- 'InteractionProfileAnalogThresholdVALVE' 27 | -- 28 | -- = Document Notes 29 | -- 30 | -- For more information, see the 31 | -- 32 | -- 33 | -- This page is a generated document. Fixes and changes should be made to 34 | -- the generator scripts, not directly. 35 | module OpenXR.Extensions.XR_VALVE_analog_threshold (InteractionProfileAnalogThresholdVALVE) where 36 | 37 | import OpenXR.CStruct (FromCStruct) 38 | import OpenXR.CStruct (ToCStruct) 39 | import Data.Kind (Type) 40 | 41 | data InteractionProfileAnalogThresholdVALVE 42 | 43 | instance ToCStruct InteractionProfileAnalogThresholdVALVE 44 | instance Show InteractionProfileAnalogThresholdVALVE 45 | 46 | instance FromCStruct InteractionProfileAnalogThresholdVALVE 47 | 48 | -------------------------------------------------------------------------------- /openxr/src/OpenXR/NamedType.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "NamedType" 3 | module OpenXR.NamedType ((:::)) where 4 | 5 | 6 | 7 | -- | Annotate a type with a name 8 | type (name :: k) ::: a = a 9 | 10 | -------------------------------------------------------------------------------- /src/Vulkan.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Vulkan" 3 | module Vulkan ( module Vulkan.CStruct 4 | , module Vulkan.Core10 5 | , module Vulkan.Core11 6 | , module Vulkan.Core12 7 | , module Vulkan.Core13 8 | , module Vulkan.Extensions 9 | , module Vulkan.NamedType 10 | , module Vulkan.SPIRVRequirements 11 | , module Vulkan.Version 12 | ) where 13 | import Vulkan.CStruct 14 | import Vulkan.Core10 15 | import Vulkan.Core11 16 | import Vulkan.Core12 17 | import Vulkan.Core13 18 | import Vulkan.Extensions 19 | import Vulkan.NamedType 20 | import Vulkan.SPIRVRequirements 21 | import Vulkan.Version 22 | 23 | -------------------------------------------------------------------------------- /src/Vulkan/CStruct/Extends.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Extends" 3 | module Vulkan.CStruct.Extends ( BaseInStructure 4 | , BaseOutStructure 5 | , Extendss 6 | , PeekChain 7 | , PokeChain 8 | , Chain 9 | ) where 10 | 11 | import Vulkan.CStruct (FromCStruct) 12 | import Vulkan.CStruct (ToCStruct) 13 | import Data.Kind (Constraint) 14 | import Data.Kind (Type) 15 | 16 | data BaseInStructure 17 | 18 | instance ToCStruct BaseInStructure 19 | instance Show BaseInStructure 20 | 21 | instance FromCStruct BaseInStructure 22 | 23 | 24 | data BaseOutStructure 25 | 26 | instance ToCStruct BaseOutStructure 27 | instance Show BaseOutStructure 28 | 29 | instance FromCStruct BaseOutStructure 30 | 31 | 32 | class PeekChain (xs :: [Type]) 33 | class PokeChain (xs :: [Type]) 34 | type family Extends (p :: [Type] -> Type) (x :: Type) :: Constraint where .. 35 | type family Extendss (p :: [Type] -> Type) (xs :: [Type]) :: Constraint where 36 | Extendss p '[] = () 37 | Extendss p (x : xs) = (Extends p x, Extendss p xs) 38 | type family Chain (xs :: [a]) = (r :: a) | r -> xs where 39 | Chain '[] = () 40 | Chain (x:xs) = (x, Chain xs) 41 | 42 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/APIConstants.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "APIConstants" 3 | module Vulkan.Core10.APIConstants ( LUID_SIZE 4 | , QUEUE_FAMILY_EXTERNAL 5 | , MAX_DEVICE_GROUP_SIZE 6 | , MAX_DRIVER_NAME_SIZE 7 | , MAX_DRIVER_INFO_SIZE 8 | , SHADER_UNUSED_KHR 9 | , MAX_GLOBAL_PRIORITY_SIZE_KHR 10 | ) where 11 | 12 | 13 | 14 | type LUID_SIZE = 8 15 | 16 | 17 | type QUEUE_FAMILY_EXTERNAL = 0xfffffffe 18 | 19 | 20 | type MAX_DEVICE_GROUP_SIZE = 32 21 | 22 | 23 | type MAX_DRIVER_NAME_SIZE = 256 24 | 25 | 26 | type MAX_DRIVER_INFO_SIZE = 256 27 | 28 | 29 | type SHADER_UNUSED_KHR = 0xffffffff 30 | 31 | 32 | type MAX_GLOBAL_PRIORITY_SIZE_KHR = 16 33 | 34 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/AllocationCallbacks.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "AllocationCallbacks" 3 | module Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data AllocationCallbacks 10 | 11 | instance ToCStruct AllocationCallbacks 12 | instance Show AllocationCallbacks 13 | 14 | instance FromCStruct AllocationCallbacks 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Buffer.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Buffer" 3 | module Vulkan.Core10.Buffer (BufferCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role BufferCreateInfo nominal 13 | data BufferCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss BufferCreateInfo es 16 | , PokeChain es ) => ToCStruct (BufferCreateInfo es) 17 | instance Show (Chain es) => Show (BufferCreateInfo es) 18 | 19 | instance ( Extendss BufferCreateInfo es 20 | , PeekChain es ) => FromCStruct (BufferCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/BufferView.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "BufferView" 3 | module Vulkan.Core10.BufferView (BufferViewCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role BufferViewCreateInfo nominal 13 | data BufferViewCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss BufferViewCreateInfo es 16 | , PokeChain es ) => ToCStruct (BufferViewCreateInfo es) 17 | instance Show (Chain es) => Show (BufferViewCreateInfo es) 18 | 19 | instance ( Extendss BufferViewCreateInfo es 20 | , PeekChain es ) => FromCStruct (BufferViewCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/CommandPool.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "CommandPool" 3 | module Vulkan.Core10.CommandPool (CommandPoolCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data CommandPoolCreateInfo 10 | 11 | instance ToCStruct CommandPoolCreateInfo 12 | instance Show CommandPoolCreateInfo 13 | 14 | instance FromCStruct CommandPoolCreateInfo 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Device.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Device" 3 | module Vulkan.Core10.Device ( DeviceCreateInfo 4 | , DeviceQueueCreateInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 14 | type role DeviceCreateInfo nominal 15 | data DeviceCreateInfo (es :: [Type]) 16 | 17 | instance ( Extendss DeviceCreateInfo es 18 | , PokeChain es ) => ToCStruct (DeviceCreateInfo es) 19 | instance Show (Chain es) => Show (DeviceCreateInfo es) 20 | 21 | instance ( Extendss DeviceCreateInfo es 22 | , PeekChain es ) => FromCStruct (DeviceCreateInfo es) 23 | 24 | 25 | type role DeviceQueueCreateInfo nominal 26 | data DeviceQueueCreateInfo (es :: [Type]) 27 | 28 | instance ( Extendss DeviceQueueCreateInfo es 29 | , PokeChain es ) => ToCStruct (DeviceQueueCreateInfo es) 30 | instance Show (Chain es) => Show (DeviceQueueCreateInfo es) 31 | 32 | instance ( Extendss DeviceQueueCreateInfo es 33 | , PeekChain es ) => FromCStruct (DeviceQueueCreateInfo es) 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ColorComponentFlagBits" 3 | module Vulkan.Core10.Enums.ColorComponentFlagBits ( ColorComponentFlags 4 | , ColorComponentFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ColorComponentFlags = ColorComponentFlagBits 10 | 11 | data ColorComponentFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "CommandBufferResetFlagBits" 3 | module Vulkan.Core10.Enums.CommandBufferResetFlagBits ( CommandBufferResetFlags 4 | , CommandBufferResetFlagBits 5 | ) where 6 | 7 | 8 | 9 | type CommandBufferResetFlags = CommandBufferResetFlagBits 10 | 11 | data CommandBufferResetFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/CommandPoolResetFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "CommandPoolResetFlagBits" 3 | module Vulkan.Core10.Enums.CommandPoolResetFlagBits ( CommandPoolResetFlags 4 | , CommandPoolResetFlagBits 5 | ) where 6 | 7 | 8 | 9 | type CommandPoolResetFlags = CommandPoolResetFlagBits 10 | 11 | data CommandPoolResetFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/CompareOp.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "CompareOp" 3 | module Vulkan.Core10.Enums.CompareOp (CompareOp) where 4 | 5 | 6 | 7 | data CompareOp 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/CullModeFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "CullModeFlagBits" 3 | module Vulkan.Core10.Enums.CullModeFlagBits ( CullModeFlags 4 | , CullModeFlagBits 5 | ) where 6 | 7 | 8 | 9 | type CullModeFlags = CullModeFlagBits 10 | 11 | data CullModeFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/DependencyFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "DependencyFlagBits" 3 | module Vulkan.Core10.Enums.DependencyFlagBits ( DependencyFlags 4 | , DependencyFlagBits 5 | ) where 6 | 7 | 8 | 9 | type DependencyFlags = DependencyFlagBits 10 | 11 | data DependencyFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "DescriptorPoolResetFlags" 3 | module Vulkan.Core10.Enums.DescriptorPoolResetFlags (DescriptorPoolResetFlags) where 4 | 5 | 6 | 7 | data DescriptorPoolResetFlags 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/Filter.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Filter" 3 | module Vulkan.Core10.Enums.Filter (Filter) where 4 | 5 | 6 | 7 | data Filter 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/Format.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Format" 3 | module Vulkan.Core10.Enums.Format (Format) where 4 | 5 | 6 | 7 | data Format 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/FrontFace.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "FrontFace" 3 | module Vulkan.Core10.Enums.FrontFace (FrontFace) where 4 | 5 | 6 | 7 | data FrontFace 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageAspectFlagBits" 3 | module Vulkan.Core10.Enums.ImageAspectFlagBits ( ImageAspectFlags 4 | , ImageAspectFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ImageAspectFlags = ImageAspectFlagBits 10 | 11 | data ImageAspectFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageCreateFlagBits" 3 | module Vulkan.Core10.Enums.ImageCreateFlagBits ( ImageCreateFlags 4 | , ImageCreateFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ImageCreateFlags = ImageCreateFlagBits 10 | 11 | data ImageCreateFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ImageLayout.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageLayout" 3 | module Vulkan.Core10.Enums.ImageLayout (ImageLayout) where 4 | 5 | 6 | 7 | data ImageLayout 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ImageTiling.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageTiling" 3 | module Vulkan.Core10.Enums.ImageTiling (ImageTiling) where 4 | 5 | 6 | 7 | data ImageTiling 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ImageType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageType" 3 | module Vulkan.Core10.Enums.ImageType (ImageType) where 4 | 5 | 6 | 7 | data ImageType 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageUsageFlagBits" 3 | module Vulkan.Core10.Enums.ImageUsageFlagBits ( ImageUsageFlags 4 | , ImageUsageFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ImageUsageFlags = ImageUsageFlagBits 10 | 11 | data ImageUsageFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/IndexType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "IndexType" 3 | module Vulkan.Core10.Enums.IndexType (IndexType) where 4 | 5 | 6 | 7 | data IndexType 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/LogicOp.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "LogicOp" 3 | module Vulkan.Core10.Enums.LogicOp (LogicOp) where 4 | 5 | 6 | 7 | data LogicOp 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/MemoryMapFlags.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "MemoryMapFlags" 3 | module Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags) where 4 | 5 | 6 | 7 | data MemoryMapFlags 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ObjectType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ObjectType" 3 | module Vulkan.Core10.Enums.ObjectType (ObjectType) where 4 | 5 | 6 | 7 | data ObjectType 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/PipelineBindPoint.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PipelineBindPoint" 3 | module Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint) where 4 | 5 | 6 | 7 | data PipelineBindPoint 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PipelineStageFlagBits" 3 | module Vulkan.Core10.Enums.PipelineStageFlagBits ( PipelineStageFlags 4 | , PipelineStageFlagBits 5 | ) where 6 | 7 | 8 | 9 | type PipelineStageFlags = PipelineStageFlagBits 10 | 11 | data PipelineStageFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/PolygonMode.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PolygonMode" 3 | module Vulkan.Core10.Enums.PolygonMode (PolygonMode) where 4 | 5 | 6 | 7 | data PolygonMode 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/PrimitiveTopology.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PrimitiveTopology" 3 | module Vulkan.Core10.Enums.PrimitiveTopology (PrimitiveTopology) where 4 | 5 | 6 | 7 | data PrimitiveTopology 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/QueryControlFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "QueryControlFlagBits" 3 | module Vulkan.Core10.Enums.QueryControlFlagBits ( QueryControlFlags 4 | , QueryControlFlagBits 5 | ) where 6 | 7 | 8 | 9 | type QueryControlFlags = QueryControlFlagBits 10 | 11 | data QueryControlFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/QueryResultFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "QueryResultFlagBits" 3 | module Vulkan.Core10.Enums.QueryResultFlagBits ( QueryResultFlags 4 | , QueryResultFlagBits 5 | ) where 6 | 7 | 8 | 9 | type QueryResultFlags = QueryResultFlagBits 10 | 11 | data QueryResultFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/QueryType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "QueryType" 3 | module Vulkan.Core10.Enums.QueryType (QueryType) where 4 | 5 | 6 | 7 | data QueryType 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/Result.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Result" 3 | module Vulkan.Core10.Enums.Result (Result) where 4 | 5 | 6 | 7 | data Result 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/SampleCountFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SampleCountFlagBits" 3 | module Vulkan.Core10.Enums.SampleCountFlagBits ( SampleCountFlags 4 | , SampleCountFlagBits 5 | ) where 6 | 7 | 8 | 9 | type SampleCountFlags = SampleCountFlagBits 10 | 11 | data SampleCountFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ShaderStageFlagBits" 3 | module Vulkan.Core10.Enums.ShaderStageFlagBits ( ShaderStageFlags 4 | , ShaderStageFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ShaderStageFlags = ShaderStageFlagBits 10 | 11 | data ShaderStageFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "StencilFaceFlagBits" 3 | module Vulkan.Core10.Enums.StencilFaceFlagBits ( StencilFaceFlags 4 | , StencilFaceFlagBits 5 | ) where 6 | 7 | 8 | 9 | type StencilFaceFlags = StencilFaceFlagBits 10 | 11 | data StencilFaceFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/StencilOp.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "StencilOp" 3 | module Vulkan.Core10.Enums.StencilOp (StencilOp) where 4 | 5 | 6 | 7 | data StencilOp 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Enums/SubpassContents.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SubpassContents" 3 | module Vulkan.Core10.Enums.SubpassContents (SubpassContents) where 4 | 5 | 6 | 7 | data SubpassContents 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Event.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Event" 3 | module Vulkan.Core10.Event (EventCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role EventCreateInfo nominal 13 | data EventCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss EventCreateInfo es 16 | , PokeChain es ) => ToCStruct (EventCreateInfo es) 17 | instance Show (Chain es) => Show (EventCreateInfo es) 18 | 19 | instance ( Extendss EventCreateInfo es 20 | , PeekChain es ) => FromCStruct (EventCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/ExtensionDiscovery.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExtensionDiscovery" 3 | module Vulkan.Core10.ExtensionDiscovery (ExtensionProperties) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data ExtensionProperties 10 | 11 | instance ToCStruct ExtensionProperties 12 | instance Show ExtensionProperties 13 | 14 | instance FromCStruct ExtensionProperties 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Fence.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Fence" 3 | module Vulkan.Core10.Fence (FenceCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role FenceCreateInfo nominal 13 | data FenceCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss FenceCreateInfo es 16 | , PokeChain es ) => ToCStruct (FenceCreateInfo es) 17 | instance Show (Chain es) => Show (FenceCreateInfo es) 18 | 19 | instance ( Extendss FenceCreateInfo es 20 | , PeekChain es ) => FromCStruct (FenceCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/FuncPointers.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "FuncPointers" 3 | module Vulkan.Core10.FuncPointers ( PFN_vkVoidFunction 4 | , FN_vkVoidFunction 5 | ) where 6 | 7 | import Foreign.Ptr (FunPtr) 8 | 9 | type FN_vkVoidFunction = () -> IO () 10 | -- | PFN_vkVoidFunction - Placeholder function pointer type returned by 11 | -- queries 12 | -- 13 | -- = Parameters 14 | -- 15 | -- This type is returned from command function pointer queries, and /must/ 16 | -- be 17 | -- 18 | -- = Description 19 | -- 20 | -- cast to an actual command function pointer before use. 21 | -- 22 | -- = See Also 23 | -- 24 | -- , 25 | -- 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr', 26 | -- 'Vulkan.Core10.DeviceInitialization.getInstanceProcAddr' 27 | type PFN_vkVoidFunction = FunPtr FN_vkVoidFunction 28 | 29 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Image.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Image" 3 | module Vulkan.Core10.Image ( ImageCreateInfo 4 | , SubresourceLayout 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 14 | type role ImageCreateInfo nominal 15 | data ImageCreateInfo (es :: [Type]) 16 | 17 | instance ( Extendss ImageCreateInfo es 18 | , PokeChain es ) => ToCStruct (ImageCreateInfo es) 19 | instance Show (Chain es) => Show (ImageCreateInfo es) 20 | 21 | instance ( Extendss ImageCreateInfo es 22 | , PeekChain es ) => FromCStruct (ImageCreateInfo es) 23 | 24 | 25 | data SubresourceLayout 26 | 27 | instance ToCStruct SubresourceLayout 28 | instance Show SubresourceLayout 29 | 30 | instance FromCStruct SubresourceLayout 31 | 32 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/ImageView.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ImageView" 3 | module Vulkan.Core10.ImageView ( ComponentMapping 4 | , ImageSubresourceRange 5 | , ImageViewCreateInfo 6 | ) where 7 | 8 | import Vulkan.CStruct (FromCStruct) 9 | import Vulkan.CStruct (ToCStruct) 10 | import Data.Kind (Type) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 14 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 15 | data ComponentMapping 16 | 17 | instance ToCStruct ComponentMapping 18 | instance Show ComponentMapping 19 | 20 | instance FromCStruct ComponentMapping 21 | 22 | 23 | data ImageSubresourceRange 24 | 25 | instance ToCStruct ImageSubresourceRange 26 | instance Show ImageSubresourceRange 27 | 28 | instance FromCStruct ImageSubresourceRange 29 | 30 | 31 | type role ImageViewCreateInfo nominal 32 | data ImageViewCreateInfo (es :: [Type]) 33 | 34 | instance ( Extendss ImageViewCreateInfo es 35 | , PokeChain es ) => ToCStruct (ImageViewCreateInfo es) 36 | instance Show (Chain es) => Show (ImageViewCreateInfo es) 37 | 38 | instance ( Extendss ImageViewCreateInfo es 39 | , PeekChain es ) => FromCStruct (ImageViewCreateInfo es) 40 | 41 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/LayerDiscovery.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "LayerDiscovery" 3 | module Vulkan.Core10.LayerDiscovery (LayerProperties) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data LayerProperties 10 | 11 | instance ToCStruct LayerProperties 12 | instance Show LayerProperties 13 | 14 | instance FromCStruct LayerProperties 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Memory.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Memory" 3 | module Vulkan.Core10.Memory ( MappedMemoryRange 4 | , MemoryAllocateInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 14 | data MappedMemoryRange 15 | 16 | instance ToCStruct MappedMemoryRange 17 | instance Show MappedMemoryRange 18 | 19 | instance FromCStruct MappedMemoryRange 20 | 21 | 22 | type role MemoryAllocateInfo nominal 23 | data MemoryAllocateInfo (es :: [Type]) 24 | 25 | instance ( Extendss MemoryAllocateInfo es 26 | , PokeChain es ) => ToCStruct (MemoryAllocateInfo es) 27 | instance Show (Chain es) => Show (MemoryAllocateInfo es) 28 | 29 | instance ( Extendss MemoryAllocateInfo es 30 | , PeekChain es ) => FromCStruct (MemoryAllocateInfo es) 31 | 32 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/MemoryManagement.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "MemoryManagement" 3 | module Vulkan.Core10.MemoryManagement (MemoryRequirements) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data MemoryRequirements 10 | 11 | instance ToCStruct MemoryRequirements 12 | instance Show MemoryRequirements 13 | 14 | instance FromCStruct MemoryRequirements 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/PipelineCache.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PipelineCache" 3 | module Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PipelineCacheCreateInfo 10 | 11 | instance ToCStruct PipelineCacheCreateInfo 12 | instance Show PipelineCacheCreateInfo 13 | 14 | instance FromCStruct PipelineCacheCreateInfo 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/PipelineLayout.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PipelineLayout" 3 | module Vulkan.Core10.PipelineLayout ( PipelineLayoutCreateInfo 4 | , PushConstantRange 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data PipelineLayoutCreateInfo 12 | 13 | instance ToCStruct PipelineLayoutCreateInfo 14 | instance Show PipelineLayoutCreateInfo 15 | 16 | instance FromCStruct PipelineLayoutCreateInfo 17 | 18 | 19 | data PushConstantRange 20 | 21 | instance ToCStruct PushConstantRange 22 | instance Show PushConstantRange 23 | 24 | instance FromCStruct PushConstantRange 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Query.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Query" 3 | module Vulkan.Core10.Query (QueryPoolCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role QueryPoolCreateInfo nominal 13 | data QueryPoolCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss QueryPoolCreateInfo es 16 | , PokeChain es ) => ToCStruct (QueryPoolCreateInfo es) 17 | instance Show (Chain es) => Show (QueryPoolCreateInfo es) 18 | 19 | instance ( Extendss QueryPoolCreateInfo es 20 | , PeekChain es ) => FromCStruct (QueryPoolCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Queue.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Queue" 3 | module Vulkan.Core10.Queue (SubmitInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role SubmitInfo nominal 13 | data SubmitInfo (es :: [Type]) 14 | 15 | instance (Extendss SubmitInfo es, PokeChain es) => ToCStruct (SubmitInfo es) 16 | instance Show (Chain es) => Show (SubmitInfo es) 17 | 18 | instance (Extendss SubmitInfo es, PeekChain es) => FromCStruct (SubmitInfo es) 19 | 20 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/QueueSemaphore.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "QueueSemaphore" 3 | module Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role SemaphoreCreateInfo nominal 13 | data SemaphoreCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss SemaphoreCreateInfo es 16 | , PokeChain es ) => ToCStruct (SemaphoreCreateInfo es) 17 | instance Show (Chain es) => Show (SemaphoreCreateInfo es) 18 | 19 | instance ( Extendss SemaphoreCreateInfo es 20 | , PeekChain es ) => FromCStruct (SemaphoreCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Sampler.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Sampler" 3 | module Vulkan.Core10.Sampler (SamplerCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role SamplerCreateInfo nominal 13 | data SamplerCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss SamplerCreateInfo es 16 | , PokeChain es ) => ToCStruct (SamplerCreateInfo es) 17 | instance Show (Chain es) => Show (SamplerCreateInfo es) 18 | 19 | instance ( Extendss SamplerCreateInfo es 20 | , PeekChain es ) => FromCStruct (SamplerCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core10/Shader.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Shader" 3 | module Vulkan.Core10.Shader (ShaderModuleCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 9 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 12 | type role ShaderModuleCreateInfo nominal 13 | data ShaderModuleCreateInfo (es :: [Type]) 14 | 15 | instance ( Extendss ShaderModuleCreateInfo es 16 | , PokeChain es ) => ToCStruct (ShaderModuleCreateInfo es) 17 | instance Show (Chain es) => Show (ShaderModuleCreateInfo es) 18 | 19 | instance ( Extendss ShaderModuleCreateInfo es 20 | , PeekChain es ) => FromCStruct (ShaderModuleCreateInfo es) 21 | 22 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ChromaLocation.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ChromaLocation" 3 | module Vulkan.Core11.Enums.ChromaLocation (ChromaLocation) where 4 | 5 | 6 | 7 | data ChromaLocation 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "CommandPoolTrimFlags" 3 | module Vulkan.Core11.Enums.CommandPoolTrimFlags (CommandPoolTrimFlags) where 4 | 5 | 6 | 7 | data CommandPoolTrimFlags 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "DescriptorUpdateTemplateCreateFlags" 3 | module Vulkan.Core11.Enums.DescriptorUpdateTemplateCreateFlags (DescriptorUpdateTemplateCreateFlags) where 4 | 5 | 6 | 7 | data DescriptorUpdateTemplateCreateFlags 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/DescriptorUpdateTemplateType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "DescriptorUpdateTemplateType" 3 | module Vulkan.Core11.Enums.DescriptorUpdateTemplateType (DescriptorUpdateTemplateType) where 4 | 5 | 6 | 7 | data DescriptorUpdateTemplateType 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ExternalFenceFeatureFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExternalFenceFeatureFlagBits" 3 | module Vulkan.Core11.Enums.ExternalFenceFeatureFlagBits ( ExternalFenceFeatureFlags 4 | , ExternalFenceFeatureFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ExternalFenceFeatureFlags = ExternalFenceFeatureFlagBits 10 | 11 | data ExternalFenceFeatureFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExternalFenceHandleTypeFlagBits" 3 | module Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits ( ExternalFenceHandleTypeFlags 4 | , ExternalFenceHandleTypeFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ExternalFenceHandleTypeFlags = ExternalFenceHandleTypeFlagBits 10 | 11 | data ExternalFenceHandleTypeFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExternalMemoryFeatureFlagBits" 3 | module Vulkan.Core11.Enums.ExternalMemoryFeatureFlagBits ( ExternalMemoryFeatureFlags 4 | , ExternalMemoryFeatureFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ExternalMemoryFeatureFlags = ExternalMemoryFeatureFlagBits 10 | 11 | data ExternalMemoryFeatureFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExternalMemoryHandleTypeFlagBits" 3 | module Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits ( ExternalMemoryHandleTypeFlags 4 | , ExternalMemoryHandleTypeFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ExternalMemoryHandleTypeFlags = ExternalMemoryHandleTypeFlagBits 10 | 11 | data ExternalMemoryHandleTypeFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ExternalSemaphoreFeatureFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExternalSemaphoreFeatureFlagBits" 3 | module Vulkan.Core11.Enums.ExternalSemaphoreFeatureFlagBits ( ExternalSemaphoreFeatureFlags 4 | , ExternalSemaphoreFeatureFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ExternalSemaphoreFeatureFlags = ExternalSemaphoreFeatureFlagBits 10 | 11 | data ExternalSemaphoreFeatureFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ExternalSemaphoreHandleTypeFlagBits" 3 | module Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits ( ExternalSemaphoreHandleTypeFlags 4 | , ExternalSemaphoreHandleTypeFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ExternalSemaphoreHandleTypeFlags = ExternalSemaphoreHandleTypeFlagBits 10 | 11 | data ExternalSemaphoreHandleTypeFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/FenceImportFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "FenceImportFlagBits" 3 | module Vulkan.Core11.Enums.FenceImportFlagBits ( FenceImportFlags 4 | , FenceImportFlagBits 5 | ) where 6 | 7 | 8 | 9 | type FenceImportFlags = FenceImportFlagBits 10 | 11 | data FenceImportFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/MemoryAllocateFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "MemoryAllocateFlagBits" 3 | module Vulkan.Core11.Enums.MemoryAllocateFlagBits ( MemoryAllocateFlags 4 | , MemoryAllocateFlagBits 5 | ) where 6 | 7 | 8 | 9 | type MemoryAllocateFlags = MemoryAllocateFlagBits 10 | 11 | data MemoryAllocateFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PeerMemoryFeatureFlagBits" 3 | module Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits ( PeerMemoryFeatureFlags 4 | , PeerMemoryFeatureFlagBits 5 | ) where 6 | 7 | 8 | 9 | type PeerMemoryFeatureFlags = PeerMemoryFeatureFlagBits 10 | 11 | data PeerMemoryFeatureFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/PointClippingBehavior.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PointClippingBehavior" 3 | module Vulkan.Core11.Enums.PointClippingBehavior (PointClippingBehavior) where 4 | 5 | 6 | 7 | data PointClippingBehavior 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SamplerYcbcrModelConversion" 3 | module Vulkan.Core11.Enums.SamplerYcbcrModelConversion (SamplerYcbcrModelConversion) where 4 | 5 | 6 | 7 | data SamplerYcbcrModelConversion 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SamplerYcbcrRange" 3 | module Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange) where 4 | 5 | 6 | 7 | data SamplerYcbcrRange 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SemaphoreImportFlagBits" 3 | module Vulkan.Core11.Enums.SemaphoreImportFlagBits ( SemaphoreImportFlags 4 | , SemaphoreImportFlagBits 5 | ) where 6 | 7 | 8 | 9 | type SemaphoreImportFlags = SemaphoreImportFlagBits 10 | 11 | data SemaphoreImportFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "TessellationDomainOrigin" 3 | module Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin) where 4 | 5 | 6 | 7 | data TessellationDomainOrigin 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Handles.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Handles" 3 | module Vulkan.Core11.Handles ( DescriptorUpdateTemplate 4 | , SamplerYcbcrConversion 5 | ) where 6 | 7 | 8 | 9 | data DescriptorUpdateTemplate 10 | 11 | 12 | data SamplerYcbcrConversion 13 | 14 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Originally_Based_On_VK_KHR_protected_memory" 3 | module Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory ( DeviceQueueInfo2 4 | , PhysicalDeviceProtectedMemoryFeatures 5 | , PhysicalDeviceProtectedMemoryProperties 6 | , ProtectedSubmitInfo 7 | ) where 8 | 9 | import Vulkan.CStruct (FromCStruct) 10 | import Vulkan.CStruct (ToCStruct) 11 | import Data.Kind (Type) 12 | 13 | data DeviceQueueInfo2 14 | 15 | instance ToCStruct DeviceQueueInfo2 16 | instance Show DeviceQueueInfo2 17 | 18 | instance FromCStruct DeviceQueueInfo2 19 | 20 | 21 | data PhysicalDeviceProtectedMemoryFeatures 22 | 23 | instance ToCStruct PhysicalDeviceProtectedMemoryFeatures 24 | instance Show PhysicalDeviceProtectedMemoryFeatures 25 | 26 | instance FromCStruct PhysicalDeviceProtectedMemoryFeatures 27 | 28 | 29 | data PhysicalDeviceProtectedMemoryProperties 30 | 31 | instance ToCStruct PhysicalDeviceProtectedMemoryProperties 32 | instance Show PhysicalDeviceProtectedMemoryProperties 33 | 34 | instance FromCStruct PhysicalDeviceProtectedMemoryProperties 35 | 36 | 37 | data ProtectedSubmitInfo 38 | 39 | instance ToCStruct ProtectedSubmitInfo 40 | instance Show ProtectedSubmitInfo 41 | 42 | instance FromCStruct ProtectedSubmitInfo 43 | 44 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Originally_Based_On_VK_KHR_subgroup" 3 | module Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceSubgroupProperties 10 | 11 | instance ToCStruct PhysicalDeviceSubgroupProperties 12 | instance Show PhysicalDeviceSubgroupProperties 13 | 14 | instance FromCStruct PhysicalDeviceSubgroupProperties 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_16bit_storage" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDevice16BitStorageFeatures 10 | 11 | instance ToCStruct PhysicalDevice16BitStorageFeatures 12 | instance Show PhysicalDevice16BitStorageFeatures 13 | 14 | instance FromCStruct PhysicalDevice16BitStorageFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_bind_memory2" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 ( BindBufferMemoryInfo 4 | , BindImageMemoryInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 14 | type role BindBufferMemoryInfo nominal 15 | data BindBufferMemoryInfo (es :: [Type]) 16 | 17 | instance ( Extendss BindBufferMemoryInfo es 18 | , PokeChain es ) => ToCStruct (BindBufferMemoryInfo es) 19 | instance Show (Chain es) => Show (BindBufferMemoryInfo es) 20 | 21 | instance ( Extendss BindBufferMemoryInfo es 22 | , PeekChain es ) => FromCStruct (BindBufferMemoryInfo es) 23 | 24 | 25 | type role BindImageMemoryInfo nominal 26 | data BindImageMemoryInfo (es :: [Type]) 27 | 28 | instance ( Extendss BindImageMemoryInfo es 29 | , PokeChain es ) => ToCStruct (BindImageMemoryInfo es) 30 | instance Show (Chain es) => Show (BindImageMemoryInfo es) 31 | 32 | instance ( Extendss BindImageMemoryInfo es 33 | , PeekChain es ) => FromCStruct (BindImageMemoryInfo es) 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_dedicated_allocation" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation ( MemoryDedicatedAllocateInfo 4 | , MemoryDedicatedRequirements 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data MemoryDedicatedAllocateInfo 12 | 13 | instance ToCStruct MemoryDedicatedAllocateInfo 14 | instance Show MemoryDedicatedAllocateInfo 15 | 16 | instance FromCStruct MemoryDedicatedAllocateInfo 17 | 18 | 19 | data MemoryDedicatedRequirements 20 | 21 | instance ToCStruct MemoryDedicatedRequirements 22 | instance Show MemoryDedicatedRequirements 23 | 24 | instance FromCStruct MemoryDedicatedRequirements 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_descriptor_update_template" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template ( DescriptorUpdateTemplateCreateInfo 4 | , DescriptorUpdateTemplateEntry 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data DescriptorUpdateTemplateCreateInfo 12 | 13 | instance ToCStruct DescriptorUpdateTemplateCreateInfo 14 | instance Show DescriptorUpdateTemplateCreateInfo 15 | 16 | instance FromCStruct DescriptorUpdateTemplateCreateInfo 17 | 18 | 19 | data DescriptorUpdateTemplateEntry 20 | 21 | instance ToCStruct DescriptorUpdateTemplateEntry 22 | instance Show DescriptorUpdateTemplateEntry 23 | 24 | instance FromCStruct DescriptorUpdateTemplateEntry 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2 ( BindBufferMemoryDeviceGroupInfo 4 | , BindImageMemoryDeviceGroupInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data BindBufferMemoryDeviceGroupInfo 12 | 13 | instance ToCStruct BindBufferMemoryDeviceGroupInfo 14 | instance Show BindBufferMemoryDeviceGroupInfo 15 | 16 | instance FromCStruct BindBufferMemoryDeviceGroupInfo 17 | 18 | 19 | data BindImageMemoryDeviceGroupInfo 20 | 21 | instance ToCStruct BindImageMemoryDeviceGroupInfo 22 | instance Show BindImageMemoryDeviceGroupInfo 23 | 24 | instance FromCStruct BindImageMemoryDeviceGroupInfo 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_device_group_creation" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation ( DeviceGroupDeviceCreateInfo 4 | , PhysicalDeviceGroupProperties 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data DeviceGroupDeviceCreateInfo 12 | 13 | instance ToCStruct DeviceGroupDeviceCreateInfo 14 | instance Show DeviceGroupDeviceCreateInfo 15 | 16 | instance FromCStruct DeviceGroupDeviceCreateInfo 17 | 18 | 19 | data PhysicalDeviceGroupProperties 20 | 21 | instance ToCStruct PhysicalDeviceGroupProperties 22 | instance Show PhysicalDeviceGroupProperties 23 | 24 | instance FromCStruct PhysicalDeviceGroupProperties 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_external_fence" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_external_fence (ExportFenceCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data ExportFenceCreateInfo 10 | 11 | instance ToCStruct ExportFenceCreateInfo 12 | instance Show ExportFenceCreateInfo 13 | 14 | instance FromCStruct ExportFenceCreateInfo 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_external_fence_capabilities" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities ( ExternalFenceProperties 4 | , PhysicalDeviceExternalFenceInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data ExternalFenceProperties 12 | 13 | instance ToCStruct ExternalFenceProperties 14 | instance Show ExternalFenceProperties 15 | 16 | instance FromCStruct ExternalFenceProperties 17 | 18 | 19 | data PhysicalDeviceExternalFenceInfo 20 | 21 | instance ToCStruct PhysicalDeviceExternalFenceInfo 22 | instance Show PhysicalDeviceExternalFenceInfo 23 | 24 | instance FromCStruct PhysicalDeviceExternalFenceInfo 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_external_memory" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_external_memory ( ExportMemoryAllocateInfo 4 | , ExternalMemoryBufferCreateInfo 5 | , ExternalMemoryImageCreateInfo 6 | ) where 7 | 8 | import Vulkan.CStruct (FromCStruct) 9 | import Vulkan.CStruct (ToCStruct) 10 | import Data.Kind (Type) 11 | 12 | data ExportMemoryAllocateInfo 13 | 14 | instance ToCStruct ExportMemoryAllocateInfo 15 | instance Show ExportMemoryAllocateInfo 16 | 17 | instance FromCStruct ExportMemoryAllocateInfo 18 | 19 | 20 | data ExternalMemoryBufferCreateInfo 21 | 22 | instance ToCStruct ExternalMemoryBufferCreateInfo 23 | instance Show ExternalMemoryBufferCreateInfo 24 | 25 | instance FromCStruct ExternalMemoryBufferCreateInfo 26 | 27 | 28 | data ExternalMemoryImageCreateInfo 29 | 30 | instance ToCStruct ExternalMemoryImageCreateInfo 31 | instance Show ExternalMemoryImageCreateInfo 32 | 33 | instance FromCStruct ExternalMemoryImageCreateInfo 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_external_semaphore" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore (ExportSemaphoreCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data ExportSemaphoreCreateInfo 10 | 11 | instance ToCStruct ExportSemaphoreCreateInfo 12 | instance Show ExportSemaphoreCreateInfo 13 | 14 | instance FromCStruct ExportSemaphoreCreateInfo 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_external_semaphore_capabilities" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities ( ExternalSemaphoreProperties 4 | , PhysicalDeviceExternalSemaphoreInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 14 | data ExternalSemaphoreProperties 15 | 16 | instance ToCStruct ExternalSemaphoreProperties 17 | instance Show ExternalSemaphoreProperties 18 | 19 | instance FromCStruct ExternalSemaphoreProperties 20 | 21 | 22 | type role PhysicalDeviceExternalSemaphoreInfo nominal 23 | data PhysicalDeviceExternalSemaphoreInfo (es :: [Type]) 24 | 25 | instance ( Extendss PhysicalDeviceExternalSemaphoreInfo es 26 | , PokeChain es ) => ToCStruct (PhysicalDeviceExternalSemaphoreInfo es) 27 | instance Show (Chain es) => Show (PhysicalDeviceExternalSemaphoreInfo es) 28 | 29 | instance ( Extendss PhysicalDeviceExternalSemaphoreInfo es 30 | , PeekChain es ) => FromCStruct (PhysicalDeviceExternalSemaphoreInfo es) 31 | 32 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_maintenance3" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 ( DescriptorSetLayoutSupport 4 | , PhysicalDeviceMaintenance3Properties 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) 11 | import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) 12 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) 13 | import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) 14 | type role DescriptorSetLayoutSupport nominal 15 | data DescriptorSetLayoutSupport (es :: [Type]) 16 | 17 | instance ( Extendss DescriptorSetLayoutSupport es 18 | , PokeChain es ) => ToCStruct (DescriptorSetLayoutSupport es) 19 | instance Show (Chain es) => Show (DescriptorSetLayoutSupport es) 20 | 21 | instance ( Extendss DescriptorSetLayoutSupport es 22 | , PeekChain es ) => FromCStruct (DescriptorSetLayoutSupport es) 23 | 24 | 25 | data PhysicalDeviceMaintenance3Properties 26 | 27 | instance ToCStruct PhysicalDeviceMaintenance3Properties 28 | instance Show PhysicalDeviceMaintenance3Properties 29 | 30 | instance FromCStruct PhysicalDeviceMaintenance3Properties 31 | 32 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_multiview" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_multiview ( PhysicalDeviceMultiviewFeatures 4 | , PhysicalDeviceMultiviewProperties 5 | , RenderPassMultiviewCreateInfo 6 | ) where 7 | 8 | import Vulkan.CStruct (FromCStruct) 9 | import Vulkan.CStruct (ToCStruct) 10 | import Data.Kind (Type) 11 | 12 | data PhysicalDeviceMultiviewFeatures 13 | 14 | instance ToCStruct PhysicalDeviceMultiviewFeatures 15 | instance Show PhysicalDeviceMultiviewFeatures 16 | 17 | instance FromCStruct PhysicalDeviceMultiviewFeatures 18 | 19 | 20 | data PhysicalDeviceMultiviewProperties 21 | 22 | instance ToCStruct PhysicalDeviceMultiviewProperties 23 | instance Show PhysicalDeviceMultiviewProperties 24 | 25 | instance FromCStruct PhysicalDeviceMultiviewProperties 26 | 27 | 28 | data RenderPassMultiviewCreateInfo 29 | 30 | instance ToCStruct RenderPassMultiviewCreateInfo 31 | instance Show RenderPassMultiviewCreateInfo 32 | 33 | instance FromCStruct RenderPassMultiviewCreateInfo 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_draw_parameters" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceShaderDrawParametersFeatures 10 | 11 | instance ToCStruct PhysicalDeviceShaderDrawParametersFeatures 12 | instance Show PhysicalDeviceShaderDrawParametersFeatures 13 | 14 | instance FromCStruct PhysicalDeviceShaderDrawParametersFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_variable_pointers" 3 | module Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceVariablePointersFeatures 10 | 11 | instance ToCStruct PhysicalDeviceVariablePointersFeatures 12 | instance Show PhysicalDeviceVariablePointersFeatures 13 | 14 | instance FromCStruct PhysicalDeviceVariablePointersFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Core12" 3 | module Vulkan.Core12 ( PhysicalDeviceVulkan11Features 4 | , PhysicalDeviceVulkan11Properties 5 | , PhysicalDeviceVulkan12Features 6 | , PhysicalDeviceVulkan12Properties 7 | ) where 8 | 9 | import Vulkan.CStruct (FromCStruct) 10 | import Vulkan.CStruct (ToCStruct) 11 | import Data.Kind (Type) 12 | 13 | data PhysicalDeviceVulkan11Features 14 | 15 | instance ToCStruct PhysicalDeviceVulkan11Features 16 | instance Show PhysicalDeviceVulkan11Features 17 | 18 | instance FromCStruct PhysicalDeviceVulkan11Features 19 | 20 | 21 | data PhysicalDeviceVulkan11Properties 22 | 23 | instance ToCStruct PhysicalDeviceVulkan11Properties 24 | instance Show PhysicalDeviceVulkan11Properties 25 | 26 | instance FromCStruct PhysicalDeviceVulkan11Properties 27 | 28 | 29 | data PhysicalDeviceVulkan12Features 30 | 31 | instance ToCStruct PhysicalDeviceVulkan12Features 32 | instance Show PhysicalDeviceVulkan12Features 33 | 34 | instance FromCStruct PhysicalDeviceVulkan12Features 35 | 36 | 37 | data PhysicalDeviceVulkan12Properties 38 | 39 | instance ToCStruct PhysicalDeviceVulkan12Properties 40 | instance Show PhysicalDeviceVulkan12Properties 41 | 42 | instance FromCStruct PhysicalDeviceVulkan12Properties 43 | 44 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Enums" 3 | module Vulkan.Core12.Enums ( module Vulkan.Core12.Enums.DescriptorBindingFlagBits 4 | , module Vulkan.Core12.Enums.DriverId 5 | , module Vulkan.Core12.Enums.ResolveModeFlagBits 6 | , module Vulkan.Core12.Enums.SamplerReductionMode 7 | , module Vulkan.Core12.Enums.SemaphoreType 8 | , module Vulkan.Core12.Enums.SemaphoreWaitFlagBits 9 | , module Vulkan.Core12.Enums.ShaderFloatControlsIndependence 10 | ) where 11 | import Vulkan.Core12.Enums.DescriptorBindingFlagBits 12 | import Vulkan.Core12.Enums.DriverId 13 | import Vulkan.Core12.Enums.ResolveModeFlagBits 14 | import Vulkan.Core12.Enums.SamplerReductionMode 15 | import Vulkan.Core12.Enums.SemaphoreType 16 | import Vulkan.Core12.Enums.SemaphoreWaitFlagBits 17 | import Vulkan.Core12.Enums.ShaderFloatControlsIndependence 18 | 19 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "DescriptorBindingFlagBits" 3 | module Vulkan.Core12.Enums.DescriptorBindingFlagBits ( DescriptorBindingFlags 4 | , DescriptorBindingFlagBits 5 | ) where 6 | 7 | 8 | 9 | type DescriptorBindingFlags = DescriptorBindingFlagBits 10 | 11 | data DescriptorBindingFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/DriverId.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "DriverId" 3 | module Vulkan.Core12.Enums.DriverId (DriverId) where 4 | 5 | 6 | 7 | data DriverId 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ResolveModeFlagBits" 3 | module Vulkan.Core12.Enums.ResolveModeFlagBits ( ResolveModeFlags 4 | , ResolveModeFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ResolveModeFlags = ResolveModeFlagBits 10 | 11 | data ResolveModeFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/SamplerReductionMode.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SamplerReductionMode" 3 | module Vulkan.Core12.Enums.SamplerReductionMode (SamplerReductionMode) where 4 | 5 | 6 | 7 | data SamplerReductionMode 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/SemaphoreType.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SemaphoreType" 3 | module Vulkan.Core12.Enums.SemaphoreType (SemaphoreType) where 4 | 5 | 6 | 7 | data SemaphoreType 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/SemaphoreWaitFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SemaphoreWaitFlagBits" 3 | module Vulkan.Core12.Enums.SemaphoreWaitFlagBits ( SemaphoreWaitFlags 4 | , SemaphoreWaitFlagBits 5 | ) where 6 | 7 | 8 | 9 | type SemaphoreWaitFlags = SemaphoreWaitFlagBits 10 | 11 | data SemaphoreWaitFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ShaderFloatControlsIndependence" 3 | module Vulkan.Core12.Enums.ShaderFloatControlsIndependence (ShaderFloatControlsIndependence) where 4 | 5 | 6 | 7 | data ShaderFloatControlsIndependence 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_host_query_reset" 3 | module Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceHostQueryResetFeatures 10 | 11 | instance ToCStruct PhysicalDeviceHostQueryResetFeatures 12 | instance Show PhysicalDeviceHostQueryResetFeatures 13 | 14 | instance FromCStruct PhysicalDeviceHostQueryResetFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_sampler_filter_minmax" 3 | module Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax ( PhysicalDeviceSamplerFilterMinmaxProperties 4 | , SamplerReductionModeCreateInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data PhysicalDeviceSamplerFilterMinmaxProperties 12 | 13 | instance ToCStruct PhysicalDeviceSamplerFilterMinmaxProperties 14 | instance Show PhysicalDeviceSamplerFilterMinmaxProperties 15 | 16 | instance FromCStruct PhysicalDeviceSamplerFilterMinmaxProperties 17 | 18 | 19 | data SamplerReductionModeCreateInfo 20 | 21 | instance ToCStruct SamplerReductionModeCreateInfo 22 | instance Show SamplerReductionModeCreateInfo 23 | 24 | instance FromCStruct SamplerReductionModeCreateInfo 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_scalar_block_layout" 3 | module Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceScalarBlockLayoutFeatures 10 | 11 | instance ToCStruct PhysicalDeviceScalarBlockLayoutFeatures 12 | instance Show PhysicalDeviceScalarBlockLayoutFeatures 13 | 14 | instance FromCStruct PhysicalDeviceScalarBlockLayoutFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_separate_stencil_usage" 3 | module Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data ImageStencilUsageCreateInfo 10 | 11 | instance ToCStruct ImageStencilUsageCreateInfo 12 | instance Show ImageStencilUsageCreateInfo 13 | 14 | instance FromCStruct ImageStencilUsageCreateInfo 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_8bit_storage" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage (PhysicalDevice8BitStorageFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDevice8BitStorageFeatures 10 | 11 | instance ToCStruct PhysicalDevice8BitStorageFeatures 12 | instance Show PhysicalDevice8BitStorageFeatures 13 | 14 | instance FromCStruct PhysicalDevice8BitStorageFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_depth_stencil_resolve" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve ( PhysicalDeviceDepthStencilResolveProperties 4 | , SubpassDescriptionDepthStencilResolve 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data PhysicalDeviceDepthStencilResolveProperties 12 | 13 | instance ToCStruct PhysicalDeviceDepthStencilResolveProperties 14 | instance Show PhysicalDeviceDepthStencilResolveProperties 15 | 16 | instance FromCStruct PhysicalDeviceDepthStencilResolveProperties 17 | 18 | 19 | data SubpassDescriptionDepthStencilResolve 20 | 21 | instance ToCStruct SubpassDescriptionDepthStencilResolve 22 | instance Show SubpassDescriptionDepthStencilResolve 23 | 24 | instance FromCStruct SubpassDescriptionDepthStencilResolve 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_driver_properties" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_driver_properties ( ConformanceVersion 4 | , PhysicalDeviceDriverProperties 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data ConformanceVersion 12 | 13 | instance ToCStruct ConformanceVersion 14 | instance Show ConformanceVersion 15 | 16 | instance FromCStruct ConformanceVersion 17 | 18 | 19 | data PhysicalDeviceDriverProperties 20 | 21 | instance ToCStruct PhysicalDeviceDriverProperties 22 | instance Show PhysicalDeviceDriverProperties 23 | 24 | instance FromCStruct PhysicalDeviceDriverProperties 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_image_format_list" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_image_format_list (ImageFormatListCreateInfo) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data ImageFormatListCreateInfo 10 | 11 | instance ToCStruct ImageFormatListCreateInfo 12 | instance Show ImageFormatListCreateInfo 13 | 14 | instance FromCStruct ImageFormatListCreateInfo 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_imageless_framebuffer" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer ( FramebufferAttachmentImageInfo 4 | , FramebufferAttachmentsCreateInfo 5 | , PhysicalDeviceImagelessFramebufferFeatures 6 | , RenderPassAttachmentBeginInfo 7 | ) where 8 | 9 | import Vulkan.CStruct (FromCStruct) 10 | import Vulkan.CStruct (ToCStruct) 11 | import Data.Kind (Type) 12 | 13 | data FramebufferAttachmentImageInfo 14 | 15 | instance ToCStruct FramebufferAttachmentImageInfo 16 | instance Show FramebufferAttachmentImageInfo 17 | 18 | instance FromCStruct FramebufferAttachmentImageInfo 19 | 20 | 21 | data FramebufferAttachmentsCreateInfo 22 | 23 | instance ToCStruct FramebufferAttachmentsCreateInfo 24 | instance Show FramebufferAttachmentsCreateInfo 25 | 26 | instance FromCStruct FramebufferAttachmentsCreateInfo 27 | 28 | 29 | data PhysicalDeviceImagelessFramebufferFeatures 30 | 31 | instance ToCStruct PhysicalDeviceImagelessFramebufferFeatures 32 | instance Show PhysicalDeviceImagelessFramebufferFeatures 33 | 34 | instance FromCStruct PhysicalDeviceImagelessFramebufferFeatures 35 | 36 | 37 | data RenderPassAttachmentBeginInfo 38 | 39 | instance ToCStruct RenderPassAttachmentBeginInfo 40 | instance Show RenderPassAttachmentBeginInfo 41 | 42 | instance FromCStruct RenderPassAttachmentBeginInfo 43 | 44 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_separate_depth_stencil_layouts" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts ( AttachmentDescriptionStencilLayout 4 | , AttachmentReferenceStencilLayout 5 | , PhysicalDeviceSeparateDepthStencilLayoutsFeatures 6 | ) where 7 | 8 | import Vulkan.CStruct (FromCStruct) 9 | import Vulkan.CStruct (ToCStruct) 10 | import Data.Kind (Type) 11 | 12 | data AttachmentDescriptionStencilLayout 13 | 14 | instance ToCStruct AttachmentDescriptionStencilLayout 15 | instance Show AttachmentDescriptionStencilLayout 16 | 17 | instance FromCStruct AttachmentDescriptionStencilLayout 18 | 19 | 20 | data AttachmentReferenceStencilLayout 21 | 22 | instance ToCStruct AttachmentReferenceStencilLayout 23 | instance Show AttachmentReferenceStencilLayout 24 | 25 | instance FromCStruct AttachmentReferenceStencilLayout 26 | 27 | 28 | data PhysicalDeviceSeparateDepthStencilLayoutsFeatures 29 | 30 | instance ToCStruct PhysicalDeviceSeparateDepthStencilLayoutsFeatures 31 | instance Show PhysicalDeviceSeparateDepthStencilLayoutsFeatures 32 | 33 | instance FromCStruct PhysicalDeviceSeparateDepthStencilLayoutsFeatures 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_atomic_int64" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceShaderAtomicInt64Features 10 | 11 | instance ToCStruct PhysicalDeviceShaderAtomicInt64Features 12 | instance Show PhysicalDeviceShaderAtomicInt64Features 13 | 14 | instance FromCStruct PhysicalDeviceShaderAtomicInt64Features 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_float16_int8" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceShaderFloat16Int8Features 10 | 11 | instance ToCStruct PhysicalDeviceShaderFloat16Int8Features 12 | instance Show PhysicalDeviceShaderFloat16Int8Features 13 | 14 | instance FromCStruct PhysicalDeviceShaderFloat16Int8Features 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_float_controls" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceFloatControlsProperties 10 | 11 | instance ToCStruct PhysicalDeviceFloatControlsProperties 12 | instance Show PhysicalDeviceFloatControlsProperties 13 | 14 | instance FromCStruct PhysicalDeviceFloatControlsProperties 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_subgroup_extended_types" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceShaderSubgroupExtendedTypesFeatures 10 | 11 | instance ToCStruct PhysicalDeviceShaderSubgroupExtendedTypesFeatures 12 | instance Show PhysicalDeviceShaderSubgroupExtendedTypesFeatures 13 | 14 | instance FromCStruct PhysicalDeviceShaderSubgroupExtendedTypesFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_uniform_buffer_standard_layout" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceUniformBufferStandardLayoutFeatures 10 | 11 | instance ToCStruct PhysicalDeviceUniformBufferStandardLayoutFeatures 12 | instance Show PhysicalDeviceUniformBufferStandardLayoutFeatures 13 | 14 | instance FromCStruct PhysicalDeviceUniformBufferStandardLayoutFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_vulkan_memory_model" 3 | module Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceVulkanMemoryModelFeatures 10 | 11 | instance ToCStruct PhysicalDeviceVulkanMemoryModelFeatures 12 | instance Show PhysicalDeviceVulkanMemoryModelFeatures 13 | 14 | instance FromCStruct PhysicalDeviceVulkanMemoryModelFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Core13" 3 | module Vulkan.Core13 ( PhysicalDeviceVulkan13Features 4 | , PhysicalDeviceVulkan13Properties 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data PhysicalDeviceVulkan13Features 12 | 13 | instance ToCStruct PhysicalDeviceVulkan13Features 14 | instance Show PhysicalDeviceVulkan13Features 15 | 16 | instance FromCStruct PhysicalDeviceVulkan13Features 17 | 18 | 19 | data PhysicalDeviceVulkan13Properties 20 | 21 | instance ToCStruct PhysicalDeviceVulkan13Properties 22 | instance Show PhysicalDeviceVulkan13Properties 23 | 24 | instance FromCStruct PhysicalDeviceVulkan13Properties 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Enums" 3 | module Vulkan.Core13.Enums ( module Vulkan.Core13.Enums.AccessFlags2 4 | , module Vulkan.Core13.Enums.FormatFeatureFlags2 5 | , module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits 6 | , module Vulkan.Core13.Enums.PipelineStageFlags2 7 | , module Vulkan.Core13.Enums.PrivateDataSlotCreateFlags 8 | , module Vulkan.Core13.Enums.RenderingFlagBits 9 | , module Vulkan.Core13.Enums.SubmitFlagBits 10 | , module Vulkan.Core13.Enums.ToolPurposeFlagBits 11 | ) where 12 | import Vulkan.Core13.Enums.AccessFlags2 13 | import Vulkan.Core13.Enums.FormatFeatureFlags2 14 | import Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits 15 | import Vulkan.Core13.Enums.PipelineStageFlags2 16 | import Vulkan.Core13.Enums.PrivateDataSlotCreateFlags 17 | import Vulkan.Core13.Enums.RenderingFlagBits 18 | import Vulkan.Core13.Enums.SubmitFlagBits 19 | import Vulkan.Core13.Enums.ToolPurposeFlagBits 20 | 21 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/AccessFlags2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "AccessFlags2" 3 | module Vulkan.Core13.Enums.AccessFlags2 ( AccessFlags2 4 | , AccessFlagBits2 5 | ) where 6 | 7 | 8 | 9 | type AccessFlags2 = AccessFlagBits2 10 | 11 | data AccessFlagBits2 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "FormatFeatureFlags2" 3 | module Vulkan.Core13.Enums.FormatFeatureFlags2 ( FormatFeatureFlags2 4 | , FormatFeatureFlagBits2 5 | ) where 6 | 7 | 8 | 9 | type FormatFeatureFlags2 = FormatFeatureFlagBits2 10 | 11 | data FormatFeatureFlagBits2 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PipelineCreationFeedbackFlagBits" 3 | module Vulkan.Core13.Enums.PipelineCreationFeedbackFlagBits ( PipelineCreationFeedbackFlags 4 | , PipelineCreationFeedbackFlagBits 5 | ) where 6 | 7 | 8 | 9 | type PipelineCreationFeedbackFlags = PipelineCreationFeedbackFlagBits 10 | 11 | data PipelineCreationFeedbackFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/PipelineStageFlags2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PipelineStageFlags2" 3 | module Vulkan.Core13.Enums.PipelineStageFlags2 ( PipelineStageFlags2 4 | , PipelineStageFlagBits2 5 | ) where 6 | 7 | 8 | 9 | type PipelineStageFlags2 = PipelineStageFlagBits2 10 | 11 | data PipelineStageFlagBits2 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlags.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "PrivateDataSlotCreateFlags" 3 | module Vulkan.Core13.Enums.PrivateDataSlotCreateFlags (PrivateDataSlotCreateFlags) where 4 | 5 | 6 | 7 | data PrivateDataSlotCreateFlags 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/RenderingFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "RenderingFlagBits" 3 | module Vulkan.Core13.Enums.RenderingFlagBits ( RenderingFlags 4 | , RenderingFlagBits 5 | ) where 6 | 7 | 8 | 9 | type RenderingFlags = RenderingFlagBits 10 | 11 | data RenderingFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/SubmitFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "SubmitFlagBits" 3 | module Vulkan.Core13.Enums.SubmitFlagBits ( SubmitFlags 4 | , SubmitFlagBits 5 | ) where 6 | 7 | 8 | 9 | type SubmitFlags = SubmitFlagBits 10 | 11 | data SubmitFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "ToolPurposeFlagBits" 3 | module Vulkan.Core13.Enums.ToolPurposeFlagBits ( ToolPurposeFlags 4 | , ToolPurposeFlagBits 5 | ) where 6 | 7 | 8 | 9 | type ToolPurposeFlags = ToolPurposeFlagBits 10 | 11 | data ToolPurposeFlagBits 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Handles.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Handles" 3 | module Vulkan.Core13.Handles (PrivateDataSlot) where 4 | 5 | 6 | 7 | data PrivateDataSlot 8 | 9 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_image_robustness.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_image_robustness" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceImageRobustnessFeatures 10 | 11 | instance ToCStruct PhysicalDeviceImageRobustnessFeatures 12 | instance Show PhysicalDeviceImageRobustnessFeatures 13 | 14 | instance FromCStruct PhysicalDeviceImageRobustnessFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_cache_control.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_cache_control" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDevicePipelineCreationCacheControlFeatures 10 | 11 | instance ToCStruct PhysicalDevicePipelineCreationCacheControlFeatures 12 | instance Show PhysicalDevicePipelineCreationCacheControlFeatures 13 | 14 | instance FromCStruct PhysicalDevicePipelineCreationCacheControlFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_pipeline_creation_feedback" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback ( PipelineCreationFeedback 4 | , PipelineCreationFeedbackCreateInfo 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data PipelineCreationFeedback 12 | 13 | instance ToCStruct PipelineCreationFeedback 14 | instance Show PipelineCreationFeedback 15 | 16 | instance FromCStruct PipelineCreationFeedback 17 | 18 | 19 | data PipelineCreationFeedbackCreateInfo 20 | 21 | instance ToCStruct PipelineCreationFeedbackCreateInfo 22 | instance Show PipelineCreationFeedbackCreateInfo 23 | 24 | instance FromCStruct PipelineCreationFeedbackCreateInfo 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_private_data" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_private_data ( DevicePrivateDataCreateInfo 4 | , PhysicalDevicePrivateDataFeatures 5 | , PrivateDataSlotCreateInfo 6 | ) where 7 | 8 | import Vulkan.CStruct (FromCStruct) 9 | import Vulkan.CStruct (ToCStruct) 10 | import Data.Kind (Type) 11 | 12 | data DevicePrivateDataCreateInfo 13 | 14 | instance ToCStruct DevicePrivateDataCreateInfo 15 | instance Show DevicePrivateDataCreateInfo 16 | 17 | instance FromCStruct DevicePrivateDataCreateInfo 18 | 19 | 20 | data PhysicalDevicePrivateDataFeatures 21 | 22 | instance ToCStruct PhysicalDevicePrivateDataFeatures 23 | instance Show PhysicalDevicePrivateDataFeatures 24 | 25 | instance FromCStruct PhysicalDevicePrivateDataFeatures 26 | 27 | 28 | data PrivateDataSlotCreateInfo 29 | 30 | instance ToCStruct PrivateDataSlotCreateInfo 31 | instance Show PrivateDataSlotCreateInfo 32 | 33 | instance FromCStruct PrivateDataSlotCreateInfo 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_shader_demote_to_helper_invocation.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_shader_demote_to_helper_invocation" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceShaderDemoteToHelperInvocationFeatures 10 | 11 | instance ToCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures 12 | instance Show PhysicalDeviceShaderDemoteToHelperInvocationFeatures 13 | 14 | instance FromCStruct PhysicalDeviceShaderDemoteToHelperInvocationFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_subgroup_size_control" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control ( PhysicalDeviceSubgroupSizeControlFeatures 4 | , PhysicalDeviceSubgroupSizeControlProperties 5 | , PipelineShaderStageRequiredSubgroupSizeCreateInfo 6 | ) where 7 | 8 | import Vulkan.CStruct (FromCStruct) 9 | import Vulkan.CStruct (ToCStruct) 10 | import Data.Kind (Type) 11 | 12 | data PhysicalDeviceSubgroupSizeControlFeatures 13 | 14 | instance ToCStruct PhysicalDeviceSubgroupSizeControlFeatures 15 | instance Show PhysicalDeviceSubgroupSizeControlFeatures 16 | 17 | instance FromCStruct PhysicalDeviceSubgroupSizeControlFeatures 18 | 19 | 20 | data PhysicalDeviceSubgroupSizeControlProperties 21 | 22 | instance ToCStruct PhysicalDeviceSubgroupSizeControlProperties 23 | instance Show PhysicalDeviceSubgroupSizeControlProperties 24 | 25 | instance FromCStruct PhysicalDeviceSubgroupSizeControlProperties 26 | 27 | 28 | data PipelineShaderStageRequiredSubgroupSizeCreateInfo 29 | 30 | instance ToCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo 31 | instance Show PipelineShaderStageRequiredSubgroupSizeCreateInfo 32 | 33 | instance FromCStruct PipelineShaderStageRequiredSubgroupSizeCreateInfo 34 | 35 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_texel_buffer_alignment" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentProperties) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceTexelBufferAlignmentProperties 10 | 11 | instance ToCStruct PhysicalDeviceTexelBufferAlignmentProperties 12 | instance Show PhysicalDeviceTexelBufferAlignmentProperties 13 | 14 | instance FromCStruct PhysicalDeviceTexelBufferAlignmentProperties 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_texture_compression_astc_hdr.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_texture_compression_astc_hdr" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr (PhysicalDeviceTextureCompressionASTCHDRFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceTextureCompressionASTCHDRFeatures 10 | 11 | instance ToCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures 12 | instance Show PhysicalDeviceTextureCompressionASTCHDRFeatures 13 | 14 | instance FromCStruct PhysicalDeviceTextureCompressionASTCHDRFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_EXT_tooling_info" 3 | module Vulkan.Core13.Promoted_From_VK_EXT_tooling_info (PhysicalDeviceToolProperties) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceToolProperties 10 | 11 | instance ToCStruct PhysicalDeviceToolProperties 12 | instance Show PhysicalDeviceToolProperties 13 | 14 | instance FromCStruct PhysicalDeviceToolProperties 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_KHR_format_feature_flags2.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_format_feature_flags2" 3 | module Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data FormatProperties3 10 | 11 | instance ToCStruct FormatProperties3 12 | instance Show FormatProperties3 13 | 14 | instance FromCStruct FormatProperties3 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_maintenance4" 3 | module Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 ( DeviceBufferMemoryRequirements 4 | , DeviceImageMemoryRequirements 5 | , PhysicalDeviceMaintenance4Features 6 | , PhysicalDeviceMaintenance4Properties 7 | ) where 8 | 9 | import Vulkan.CStruct (FromCStruct) 10 | import Vulkan.CStruct (ToCStruct) 11 | import Data.Kind (Type) 12 | 13 | data DeviceBufferMemoryRequirements 14 | 15 | instance ToCStruct DeviceBufferMemoryRequirements 16 | instance Show DeviceBufferMemoryRequirements 17 | 18 | instance FromCStruct DeviceBufferMemoryRequirements 19 | 20 | 21 | data DeviceImageMemoryRequirements 22 | 23 | instance ToCStruct DeviceImageMemoryRequirements 24 | instance Show DeviceImageMemoryRequirements 25 | 26 | instance FromCStruct DeviceImageMemoryRequirements 27 | 28 | 29 | data PhysicalDeviceMaintenance4Features 30 | 31 | instance ToCStruct PhysicalDeviceMaintenance4Features 32 | instance Show PhysicalDeviceMaintenance4Features 33 | 34 | instance FromCStruct PhysicalDeviceMaintenance4Features 35 | 36 | 37 | data PhysicalDeviceMaintenance4Properties 38 | 39 | instance ToCStruct PhysicalDeviceMaintenance4Properties 40 | instance Show PhysicalDeviceMaintenance4Properties 41 | 42 | instance FromCStruct PhysicalDeviceMaintenance4Properties 43 | 44 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_integer_dot_product" 3 | module Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product ( PhysicalDeviceShaderIntegerDotProductFeatures 4 | , PhysicalDeviceShaderIntegerDotProductProperties 5 | ) where 6 | 7 | import Vulkan.CStruct (FromCStruct) 8 | import Vulkan.CStruct (ToCStruct) 9 | import Data.Kind (Type) 10 | 11 | data PhysicalDeviceShaderIntegerDotProductFeatures 12 | 13 | instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeatures 14 | instance Show PhysicalDeviceShaderIntegerDotProductFeatures 15 | 16 | instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeatures 17 | 18 | 19 | data PhysicalDeviceShaderIntegerDotProductProperties 20 | 21 | instance ToCStruct PhysicalDeviceShaderIntegerDotProductProperties 22 | instance Show PhysicalDeviceShaderIntegerDotProductProperties 23 | 24 | instance FromCStruct PhysicalDeviceShaderIntegerDotProductProperties 25 | 26 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_KHR_shader_terminate_invocation.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_shader_terminate_invocation" 3 | module Vulkan.Core13.Promoted_From_VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceShaderTerminateInvocationFeatures 10 | 11 | instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeatures 12 | instance Show PhysicalDeviceShaderTerminateInvocationFeatures 13 | 14 | instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Core13/Promoted_From_VK_KHR_zero_initialize_workgroup_memory.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Promoted_From_VK_KHR_zero_initialize_workgroup_memory" 3 | module Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) where 4 | 5 | import Vulkan.CStruct (FromCStruct) 6 | import Vulkan.CStruct (ToCStruct) 7 | import Data.Kind (Type) 8 | 9 | data PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures 10 | 11 | instance ToCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures 12 | instance Show PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures 13 | 14 | instance FromCStruct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures 15 | 16 | -------------------------------------------------------------------------------- /src/Vulkan/Dynamic.hs-boot: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Dynamic" 3 | module Vulkan.Dynamic ( InstanceCmds 4 | , DeviceCmds 5 | ) where 6 | 7 | 8 | 9 | data InstanceCmds 10 | 11 | data DeviceCmds 12 | 13 | -------------------------------------------------------------------------------- /src/Vulkan/Extensions/Dependencies.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "Dependencies" 3 | module Vulkan.Extensions.Dependencies ( extensionDependencies 4 | , extensionCoreRequirement 5 | ) where 6 | 7 | import Data.Word (Word32) 8 | import Data.ByteString (ByteString) 9 | import Vulkan.NamedType ((:::)) 10 | import Vulkan.Core10 (pattern API_VERSION_1_0) 11 | -- | The set of other extensions required to use this extension 12 | extensionDependencies :: ("extensionName" ::: ByteString) -> [ByteString] 13 | extensionDependencies = \case 14 | _ -> [] 15 | 16 | -- | The minimum required API version to use this extension 17 | extensionCoreRequirement :: ("extensionName" ::: ByteString) -> Word32 18 | extensionCoreRequirement = \case 19 | _ -> API_VERSION_1_0 20 | -------------------------------------------------------------------------------- /src/Vulkan/NamedType.hs: -------------------------------------------------------------------------------- 1 | {-# language CPP #-} 2 | -- No documentation found for Chapter "NamedType" 3 | module Vulkan.NamedType ((:::)) where 4 | 5 | 6 | 7 | -- | Annotate a type with a name 8 | type (name :: k) ::: a = a 9 | 10 | -------------------------------------------------------------------------------- /stack.yaml: -------------------------------------------------------------------------------- 1 | resolver: lts-22.44 2 | packages: 3 | - . 4 | - utils 5 | - examples 6 | - VulkanMemoryAllocator 7 | - openxr 8 | extra-deps: 9 | # - autoapply-0.4.1.1 10 | - git: https://github.com/dpwiz/autoapply.git 11 | commit: 640ed1a689484fc307e1bab7c06db1027b28c87c 12 | - unification-fd-0.12.0.2 13 | - derive-storable-0.3.1.0 14 | - derive-storable-plugin-0.2.3.7 15 | 16 | # use ghcup, nix, setup actions 17 | system-ghc: true 18 | install-ghc: false 19 | 20 | allow-newer: true 21 | 22 | nix: 23 | enable: false 24 | packages: [vulkan-loader vulkan-headers glslang pkg-config SDL2 zlib] 25 | -------------------------------------------------------------------------------- /test/Driver.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -F -pgmF tasty-discover #-} 2 | -------------------------------------------------------------------------------- /test/VkCtx.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE QuasiQuotes #-} 2 | {-# LANGUAGE TemplateHaskell #-} 3 | 4 | module VkCtx (vkCtx) where 5 | 6 | import qualified Data.Map as Map 7 | import qualified Language.C.Inline as C 8 | import qualified Language.C.Inline.Context as C 9 | import qualified Language.C.Types as C 10 | import qualified Vulkan as Vk 11 | import Language.Haskell.TH 12 | 13 | vkCtx :: C.Context 14 | vkCtx = mempty { C.ctxTypesTable = Map.fromList ts } 15 | where 16 | ts = 17 | [ (C.TypeName "VkExtent3D", [t| Vk.Extent3D |]) 18 | , ( C.TypeName "VkAccelerationStructureInstanceKHR" 19 | , [t| Vk.AccelerationStructureInstanceKHR |] 20 | ) 21 | , (C.TypeName "VkApplicationInfo", [t| Vk.ApplicationInfo |]) 22 | , ( C.TypeName "VkBindBufferMemoryDeviceGroupInfo" 23 | , [t| Vk.BindBufferMemoryDeviceGroupInfo |] 24 | ) 25 | ] 26 | -------------------------------------------------------------------------------- /utils/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Ellie Hermaszewska (c) 2020 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Ellie Hermaszewska nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /utils/Setup.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Distribution.Extra.Doctest (defaultMainWithDoctests) 4 | 5 | main :: IO () 6 | main = defaultMainWithDoctests "doctests" 7 | -------------------------------------------------------------------------------- /utils/cbits/DebugCallback.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | VKAPI_ATTR VkBool32 VKAPI_CALL 6 | debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 7 | VkDebugUtilsMessageTypeFlagsEXT messageType, 8 | const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, 9 | void *pUserData) { 10 | fprintf(stderr, "Validation: %s\n", pCallbackData->pMessage); 11 | return VK_FALSE; 12 | } 13 | 14 | VKAPI_ATTR VkBool32 VKAPI_CALL 15 | debugCallbackFatal(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 16 | VkDebugUtilsMessageTypeFlagsEXT messageType, 17 | const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, 18 | void *pUserData) { 19 | debugCallback(messageSeverity, messageType, pCallbackData, pUserData); 20 | 21 | if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { 22 | fprintf(stderr, "Aborting on validation error.\n"); 23 | abort(); 24 | } 25 | return VK_FALSE; 26 | } 27 | -------------------------------------------------------------------------------- /utils/hie.yaml: -------------------------------------------------------------------------------- 1 | cradle: 2 | cabal: 3 | -------------------------------------------------------------------------------- /utils/readme.md: -------------------------------------------------------------------------------- 1 | # vulkan-utils 2 | 3 | Some utilities to make using the `vulkan` package a little more convenient. 4 | -------------------------------------------------------------------------------- /utils/src/Vulkan/Utils/Debug.hs: -------------------------------------------------------------------------------- 1 | module Vulkan.Utils.Debug 2 | ( debugCallbackPtr 3 | , debugCallbackFatalPtr 4 | , nameObject 5 | ) where 6 | 7 | import Control.Monad.IO.Class 8 | import Data.ByteString 9 | 10 | import Vulkan.Core10 11 | import Vulkan.Extensions.VK_EXT_debug_utils 12 | 13 | -- | A debug callback which prints the message prefixed with "Validation: " to 14 | -- stderr. 15 | foreign import ccall unsafe "DebugCallback.c &debugCallback" 16 | debugCallbackPtr :: PFN_vkDebugUtilsMessengerCallbackEXT 17 | 18 | -- | A debug callback the same as 'debugCallbackPtr' except it will call 19 | -- @abort@ when @VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT@ is set. 20 | foreign import ccall unsafe "DebugCallback.c &debugCallbackFatal" 21 | debugCallbackFatalPtr :: PFN_vkDebugUtilsMessengerCallbackEXT 22 | 23 | -- | Assign a name to a handle using 'setDebugUtilsObjectNameEXT', note that 24 | -- the @VK_EXT_debug_utils@ extension must be enabled. 25 | nameObject :: (HasObjectType a, MonadIO m) => Device -> a -> ByteString -> m () 26 | nameObject device object name = setDebugUtilsObjectNameEXT 27 | device 28 | (uncurry DebugUtilsObjectNameInfoEXT (objectTypeAndHandle object) (Just name)) 29 | -------------------------------------------------------------------------------- /utils/src/Vulkan/Utils/Internal.hs: -------------------------------------------------------------------------------- 1 | module Vulkan.Utils.Internal where 2 | 3 | import Control.Monad.IO.Class 4 | import GHC.IO ( throwIO ) 5 | import GHC.IO.Exception ( IOErrorType(..) 6 | , IOException(..) 7 | ) 8 | import System.IO ( hPutStrLn 9 | , stderr 10 | ) 11 | import Language.Haskell.TH.Quote 12 | 13 | ---------------------------------------------------------------- 14 | -- Internal utils 15 | ---------------------------------------------------------------- 16 | 17 | unsatisfiedConstraints :: String -> IO a 18 | unsatisfiedConstraints message = 19 | throwIO $ IOError Nothing UnsatisfiedConstraints "" message Nothing Nothing 20 | 21 | noSuchThing :: String -> IO a 22 | noSuchThing message = 23 | throwIO $ IOError Nothing NoSuchThing "" message Nothing Nothing 24 | 25 | sayErr :: MonadIO m => String -> m () 26 | sayErr = liftIO . hPutStrLn stderr 27 | 28 | badQQ :: String -> QuasiQuoter 29 | badQQ name = QuasiQuoter (bad "expression") 30 | (bad "pattern") 31 | (bad "type") 32 | (bad "declaration") 33 | where 34 | bad :: String -> a 35 | bad context = 36 | error $ "Can't use " <> name <> " quote in a " <> context <> " context" 37 | -------------------------------------------------------------------------------- /utils/src/Vulkan/Utils/ShaderQQ/Backend/Glslang.hs: -------------------------------------------------------------------------------- 1 | module Vulkan.Utils.ShaderQQ.Backend.Glslang 2 | ( GlslangError 3 | , GlslangWarning 4 | , processGlslangMessages 5 | ) where 6 | 7 | import qualified Data.ByteString.Lazy.Char8 as BSL 8 | import Data.List.Extra 9 | import System.FilePath 10 | 11 | type GlslangError = String 12 | type GlslangWarning = String 13 | 14 | processGlslangMessages :: BSL.ByteString -> ([GlslangWarning], [GlslangError]) 15 | processGlslangMessages = 16 | foldr grep ([], []) . filter (not . null) . lines . BSL.unpack 17 | where 18 | grep line (ws, es) | "WARNING: " `isPrefixOf` line = (cut line : ws, es) 19 | | "ERROR: " `isPrefixOf` line = (ws, cut line : es) 20 | | otherwise = (ws, es) 21 | 22 | cut line = takeFileName path <> msg 23 | where (path, msg) = break (== ':') . drop 1 $ dropWhile (/= ' ') line 24 | -------------------------------------------------------------------------------- /utils/src/Vulkan/Utils/ShaderQQ/Backend/Internal.hs: -------------------------------------------------------------------------------- 1 | module Vulkan.Utils.ShaderQQ.Backend.Internal 2 | ( messageProcess 3 | ) where 4 | 5 | import Data.ByteString ( ByteString ) 6 | import Data.List.Extra 7 | 8 | messageProcess 9 | :: (Applicative m, Monad m) 10 | => String 11 | -- ^ tool name 12 | -> (String -> m ()) 13 | -- ^ warning 14 | -> (String -> m ByteString) 15 | -- ^ error 16 | -> ([String], Either [String] ByteString) 17 | -- ^ Spir-V bytecode with warnings or errors 18 | -> m ByteString 19 | -- ^ Spir-V bytecode 20 | messageProcess tool warn err (warnings, result) = do 21 | case warnings of 22 | [] -> pure () 23 | _some -> warn $ prepare warnings 24 | case result of 25 | Left [] -> err $ tool ++ " failed with no errors" 26 | Left errors -> do 27 | _ <- err $ prepare errors 28 | pure mempty 29 | Right bs -> pure bs 30 | where 31 | prepare [singleLine] = singleLine 32 | prepare multiline = 33 | intercalate "\n" $ (tool ++ ":") : map (mappend " ") multiline 34 | -------------------------------------------------------------------------------- /utils/src/Vulkan/Utils/ShaderQQ/ShaderType.hs: -------------------------------------------------------------------------------- 1 | module Vulkan.Utils.ShaderQQ.ShaderType 2 | ( ShaderType (..) 3 | ) where 4 | 5 | import Data.String (IsString (..)) 6 | 7 | data ShaderType 8 | = GLSL 9 | | HLSL 10 | 11 | instance IsString ShaderType where 12 | fromString = \case 13 | "glsl" -> GLSL 14 | "hlsl" -> HLSL 15 | t -> error $ "not support '" ++ t ++ "' shader" 16 | 17 | instance Show ShaderType where 18 | show = \case 19 | GLSL -> "glsl" 20 | HLSL -> "hlsl" 21 | -------------------------------------------------------------------------------- /utils/test/doctest/Doctests.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Build_doctests ( flags 4 | , module_sources 5 | , pkgs 6 | ) 7 | import Test.DocTest ( doctest ) 8 | 9 | main :: IO () 10 | main = doctest $ flags ++ pkgs ++ module_sources 11 | -------------------------------------------------------------------------------- /weeder.dhall: -------------------------------------------------------------------------------- 1 | { roots = [ "^Main.main$" 2 | , "Documentation.main" 3 | , "RunAsciiDoctor.main" 4 | , "^Paths_.*" 5 | , "^Text.InterpolatedString.Perl6.Unindented.*" 6 | , "Documentation.isHeaderLE" 7 | ] 8 | , type-class-roots = True } 9 | 10 | --------------------------------------------------------------------------------