| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Utils.Requirements
Synopsis
- checkInstanceRequirements :: forall m o r es. (MonadIO m, Traversable r, Traversable o) => r InstanceRequirement -> o InstanceRequirement -> InstanceCreateInfo es -> m (Maybe (InstanceCreateInfo es), r RequirementResult, o RequirementResult)
- checkDeviceRequirements :: forall m o r. (MonadIO m, Traversable r, Traversable o) => r DeviceRequirement -> o DeviceRequirement -> PhysicalDevice -> DeviceCreateInfo '[] -> m (Maybe (SomeStruct DeviceCreateInfo), r RequirementResult, o RequirementResult)
- data RequirementResult
- = Satisfied
- | UnattemptedProperties ByteString
- | UnattemptedFeatures ByteString
- | MissingLayer ByteString
- | UnsatisfiedDeviceVersion (Unsatisfied Word32)
- | UnsatisfiedInstanceVersion (Unsatisfied Word32)
- | UnsatisfiedLayerVersion ByteString (Unsatisfied Word32)
- | UnsatisfiedFeature ByteString
- | UnsatisfiedProperty ByteString
- | UnsatisfiedDeviceExtension ByteString
- | UnsatisfiedInstanceExtension ByteString
- data Unsatisfied a = Unsatisfied {
- unsatisfiedMinimum :: a
- unsatisfiedActual :: a
- requirementReport :: (Foldable r, Foldable o) => r RequirementResult -> o RequirementResult -> Maybe String
- prettyRequirementResult :: RequirementResult -> String
Instance requirements
checkInstanceRequirements Source #
Arguments
| :: forall m o r es. (MonadIO m, Traversable r, Traversable o) | |
| => r InstanceRequirement | Required requests |
| -> o InstanceRequirement | Optional requests |
| -> InstanceCreateInfo es | An |
| -> m (Maybe (InstanceCreateInfo es), r RequirementResult, o RequirementResult) |
Device requirements
checkDeviceRequirements Source #
Arguments
| :: forall m o r. (MonadIO m, Traversable r, Traversable o) | |
| => r DeviceRequirement | Required requests |
| -> o DeviceRequirement | Optional requests |
| -> PhysicalDevice | |
| -> DeviceCreateInfo '[] | A deviceCreateInfo with no extensions. If you need elements in the
struct chain you can add them later with
|
| -> m (Maybe (SomeStruct DeviceCreateInfo), r RequirementResult, o RequirementResult) |
Results
data RequirementResult Source #
Constructors
| Satisfied | All the requirements were met |
| UnattemptedProperties ByteString | Didn't attempt this check because it required getPhysicalDeviceProperties2 which wasn't loaded |
| UnattemptedFeatures ByteString | Didn't attempt this check because it required getPhysicalDeviceFeatures2 which wasn't loaded |
| MissingLayer ByteString | A Layer was not found |
| UnsatisfiedDeviceVersion (Unsatisfied Word32) | A device version didn't meet the minimum requested |
| UnsatisfiedInstanceVersion (Unsatisfied Word32) | The instance version didn't meet the minimum requested |
| UnsatisfiedLayerVersion ByteString (Unsatisfied Word32) | A layer version didn't meet the minimum requested |
| UnsatisfiedFeature ByteString | A feature was missing |
| UnsatisfiedProperty ByteString | A propery was not an appropriate value |
| UnsatisfiedDeviceExtension ByteString | A device extension was missing |
| UnsatisfiedInstanceExtension ByteString | An instance extension was missing |
Instances
| Eq RequirementResult Source # | |
Defined in Vulkan.Utils.Requirements Methods (==) :: RequirementResult -> RequirementResult -> Bool # (/=) :: RequirementResult -> RequirementResult -> Bool # | |
| Ord RequirementResult Source # | |
Defined in Vulkan.Utils.Requirements Methods compare :: RequirementResult -> RequirementResult -> Ordering # (<) :: RequirementResult -> RequirementResult -> Bool # (<=) :: RequirementResult -> RequirementResult -> Bool # (>) :: RequirementResult -> RequirementResult -> Bool # (>=) :: RequirementResult -> RequirementResult -> Bool # max :: RequirementResult -> RequirementResult -> RequirementResult # min :: RequirementResult -> RequirementResult -> RequirementResult # | |
data Unsatisfied a Source #
Constructors
| Unsatisfied | |
Fields
| |
Instances
| Eq a => Eq (Unsatisfied a) Source # | |
Defined in Vulkan.Utils.Requirements Methods (==) :: Unsatisfied a -> Unsatisfied a -> Bool # (/=) :: Unsatisfied a -> Unsatisfied a -> Bool # | |
| Ord a => Ord (Unsatisfied a) Source # | |
Defined in Vulkan.Utils.Requirements Methods compare :: Unsatisfied a -> Unsatisfied a -> Ordering # (<) :: Unsatisfied a -> Unsatisfied a -> Bool # (<=) :: Unsatisfied a -> Unsatisfied a -> Bool # (>) :: Unsatisfied a -> Unsatisfied a -> Bool # (>=) :: Unsatisfied a -> Unsatisfied a -> Bool # max :: Unsatisfied a -> Unsatisfied a -> Unsatisfied a # min :: Unsatisfied a -> Unsatisfied a -> Unsatisfied a # | |
requirementReport :: (Foldable r, Foldable o) => r RequirementResult -> o RequirementResult -> Maybe String Source #
Generate a string describing which requirements were not met, if
everything was satisfied return Nothing.