12.1: feathered selections, Select Subject, Soft Light, the fixed-width font menu (Compositor 1.1.1–1.1.4)

This commit is contained in:
雷电芽衣 committed 2026-09-26 17:15:26 -04:00
1 parent 3e52fd90ee
commit ee34c338d4
42 files changed
+1087 -94

No files matched your search

+6 -1
View File
@@ -70,6 +70,11 @@ Rgb reference(LayerBlendMode mode, const Rgb &backdrop, const Rgb &source)
case LayerBlendMode::multiply: result[channel] = b * s; break;
case LayerBlendMode::screen: result[channel] = b + s - b * s; break;
case LayerBlendMode::overlay: result[channel] = hardLight(s, b); break;
case LayerBlendMode::softLight: {
const double d = b <= 0.25 ? ((16 * b - 12) * b + 4) * b : std::sqrt(b);
result[channel] = s <= 0.5 ? b - (1 - 2 * s) * b * (1 - b) : b + (2 * s - 1) * (d - b);
break;
}
case LayerBlendMode::darken: result[channel] = std::min(b, s); break;
case LayerBlendMode::lighten: result[channel] = std::max(b, s); break;
case LayerBlendMode::difference: result[channel] = std::abs(b - s); break;
@@ -132,7 +137,7 @@ void BlendModeTests::everyBlendModeMatchesThePdfFormulas_data()
QTest::addColumn<LayerBlendMode>("mode");
const std::pair<const char *, LayerBlendMode> modes[] = {
{"normal", LayerBlendMode::normal}, {"multiply", LayerBlendMode::multiply}, {"screen", LayerBlendMode::screen},
{"overlay", LayerBlendMode::overlay}, {"darken", LayerBlendMode::darken}, {"lighten", LayerBlendMode::lighten},
{"overlay", LayerBlendMode::overlay}, {"softLight", LayerBlendMode::softLight}, {"darken", LayerBlendMode::darken}, {"lighten", LayerBlendMode::lighten},
{"difference", LayerBlendMode::difference}, {"colorDodge", LayerBlendMode::colorDodge},
{"colorBurn", LayerBlendMode::colorBurn}, {"hue", LayerBlendMode::hue}, {"saturation", LayerBlendMode::saturation},
{"color", LayerBlendMode::color}, {"luminosity", LayerBlendMode::luminosity}};