[fxtf-drafts] [css-compositing-2] Remove plus-darker (#447)

jakearchibald has just created a new issue for https://github.com/w3c/fxtf-drafts:

== [css-compositing-2] Remove plus-darker ==
https://drafts.fxtf.org/compositing/#porterduffcompositingoperators_plus_darker

The definition here seems plain wrong. For instance:

```
co = max(0, 1 - αs x Cs + 1 - αb x Cb)
// Assuming
// αs = 1
// αb = 1
// Cs = 0.5
// Cb = 0
co = max(0, 1 - 1 x 0.5 + 1 - 1 x 0)
co = max(0, 1.5)
co = 1.5
```

`max(0, x)` is used, which suggests `x` will be a maximum of 1, but the definition produces values 0-2 (assuming pixel values are 0-1).

Safari supports the `plus-darker` value for `mix-blend-mode`.

The [definition in Apple's docs](https://developer.apple.com/documentation/appkit/nscompositingoperation/plusdarker) matches the spec, so it's incorrect for the same reasons. The implementation is closed source, so I can't check how it actually works.

It seems like, on WebKit Linux (via cairo), [`plus-darker` is an alias of `darken`](https://github.com/WebKit/WebKit/blob/ffef6b24a7a6aa068445259128edc473e11c2285/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp#L140), which doesn't match what I see in Safari. I might not be interpreting the source correctly.

We heard any use-cases for plus-darker, although maybe that will become clearer with correct documentation.

Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/447 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 12 January 2022 15:03:07 UTC