| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Vulkan.Utils.Requirements.TH
Synopsis
- req :: QuasiQuoter
- reqs :: QuasiQuoter
Documentation
req :: QuasiQuoter Source #
Parse a requirement and produce an appropriate DeviceRequirement
DeviceVersionRequirements are specified by in the form
major.minor[.patch]
DeviceFeatureRequirements are specified in the form name.<member
name> and produce a RequireDeviceFeature which checks and sets this
feature.
DevicePropertyRequirements are specified like feature requirements except
with an additional description of the constraint. This may be any of
myFunctionName: To check with an in-scope function taking the property type and returningBool> 123: To indicate a minimum bound on a integral property>= 123: To indicate an inclusive minimum bound on a integral property& SOMETHING_BIT: To indicate that the specified bit must be present in the bitmask value
DeviceExtensionRequirements are specified in the form name
version. name must start with VK_. The version
will be compared against the specVersion field of the
ExtensionProperties record.
- Names may be qualified.
- The separator between the type and member can be any of
.:::->or any amount of space
>>>let r = [req|PhysicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline|]>>>featureName r"PhysicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline"
>>>let r = [req|PhysicalDeviceVulkan11Features.multiview|]>>>featureName r"PhysicalDeviceVulkan11Features.multiview"
>>>let r = [reqs| PhysicalDeviceTimelineSemaphoreFeatures.timelineSemaphore |]>>>featureName <$> r["PhysicalDeviceTimelineSemaphoreFeatures.timelineSemaphore"]
>>>let r = [req|PhysicalDeviceMultiviewFeatures.doesn'tExist|]... • Couldn't find member "doesn'tExist" in Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures ...
>>>let r = [req|Doesn'tExist.multiview|]... • Couldn't find type name "Doesn'tExist" ...
>>>let r = [req|Either.multiview|]... • Data.Either.Either doesn't seem to be the type of a record constructor ...
reqs :: QuasiQuoter Source #
Like reqs except that this parses a list of newline separated
requirements
It ignores
- Blank lines
- Lines beginning with
--or#