aeae3a58e3
This CL also updates the blend tests to use sk_FragColor instead of returning a half4, as the Metal backend assumes that a fragment processor's `main` will return void and always synthesizes a `return *_out;` at the end. (context link: https://osscs.corp.google.com/android/platform/superproject/+/master:external/skqp/src/sksl/SkSLMetalCodeGenerator.cpp;l=803;drc=842d31b14159626054e01dd32826563a8f4214bf ) BYPASS_INCLUSIVE_LANGUAGE_REASON=see http://b/168134166 Change-Id: I330a456bf25ee72d3a29c59cd624625378ae80a0 Bug: skia:10649, skia:10757, skia:10758, skia:10759, skia:10760, skia:10761, skia:10762 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319409 Commit-Queue: John Stiles <johnstiles@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
33 lines
763 B
GLSL
33 lines
763 B
GLSL
#version 400
|
|
out vec4 sk_FragColor;
|
|
in vec4 src, dst;
|
|
vec4 blend_src_over(vec4 src, vec4 dst) {
|
|
return src + (1.0 - src.w) * dst;
|
|
}
|
|
vec4 blend_darken(vec4 src, vec4 dst) {
|
|
vec4 _2_blend_src_over;
|
|
{
|
|
_2_blend_src_over = src + (1.0 - src.w) * dst;
|
|
}
|
|
vec4 result = _2_blend_src_over;
|
|
|
|
result.xyz = min(result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
|
|
return result;
|
|
}
|
|
void main() {
|
|
vec4 _0_blend_darken;
|
|
{
|
|
vec4 _3_blend_src_over;
|
|
{
|
|
_3_blend_src_over = src + (1.0 - src.w) * dst;
|
|
}
|
|
vec4 _1_result = _3_blend_src_over;
|
|
|
|
_1_result.xyz = min(_1_result.xyz, (1.0 - dst.w) * src.xyz + dst.xyz);
|
|
_0_blend_darken = _1_result;
|
|
}
|
|
|
|
sk_FragColor = _0_blend_darken;
|
|
|
|
}
|