vulkan-utils-0.5.4: Utils for the vulkan package
Safe HaskellNone
LanguageHaskell2010

Vulkan.Utils.Requirements

Synopsis

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 InstanceCreateInfo, this will be returned appropriately modified by the requirements

-> 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 extendSomeStruct

-> 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

UnsatisfiedDeviceExtensionVersion ByteString (Unsatisfied Word32)

A device extension was found but the version didn't meet requirements

UnsatisfiedInstanceExtension ByteString

An instance extension was missing

UnsatisfiedInstanceExtensionVersion ByteString (Unsatisfied Word32)

An instance extension was found but the version didn't meet requirements

data Unsatisfied a Source #

Constructors

Unsatisfied 

Fields

Instances

Instances details
Eq a => Eq (Unsatisfied a) Source # 
Instance details

Defined in Vulkan.Utils.Requirements

Ord a => Ord (Unsatisfied a) Source # 
Instance details

Defined in Vulkan.Utils.Requirements

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.