Implement Color Operations for Color
#13285
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
Color
type #13214Solution
Delegates to internal type when possible, otherwise uses
ChosenColorSpace
as an intermediary. This will double convert, but this is considered an acceptable compromise since use of specific colour types in performance critical colour operations is already encouraged.ChosenColorSpace
isOklcha
since it's perceptually uniform while supporting all required operations, and in my opinion is the "best" for this task. Using different spaces for different operations will make documenting this double-conversion behaviour more challenging.Testing
Changes straightforward enough to not require testing beyond current CI in my opinion.
Changelog
Color
:Luminance
Hue
Mix
EuclideanDistance
ClampColor
Color
explaining the behaviour of these operations (possible conversion, etc.)