summaryrefslogtreecommitdiff
path: root/shaders/skia/1357.shader_test
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/skia/1357.shader_test')
-rw-r--r--shaders/skia/1357.shader_test126
1 files changed, 126 insertions, 0 deletions
diff --git a/shaders/skia/1357.shader_test b/shaders/skia/1357.shader_test
new file mode 100644
index 0000000..93995b7
--- /dev/null
+++ b/shaders/skia/1357.shader_test
@@ -0,0 +1,126 @@
+[require]
+GLSL >= 1.40
+
+[fragment shader]
+#version 140
+
+#extension GL_KHR_blend_equation_advanced : require
+#extension GL_ARB_fragment_coord_conventions : require
+layout(origin_upper_left) in vec4 gl_FragCoord;
+out vec4 sk_FragColor;
+layout (blend_support_all_equations) out ;
+uniform vec2 uImageIncrement_Stage1_c0_c0;
+uniform vec4 uKernel_Stage1_c0_c0[2];
+uniform vec4 ucircleData_Stage1_c1_c0;
+uniform sampler2D uTextureSampler_0_Stage0;
+uniform sampler2D uTextureSampler_0_Stage1;
+uniform sampler2D uTextureSampler_1_Stage1;
+in vec2 vTextureCoords_Stage0;
+flat in int vTexIndex_Stage0;
+in vec2 vIntTextureCoords_Stage0;
+in vec4 vinColor_Stage0;
+in vec2 vTransformedCoords_0_Stage0;
+vec4 GaussianConvolution_Stage1_c0_c0(vec4 _input) {
+ vec4 _output;
+ _output = vec4(0.0, 0.0, 0.0, 0.0);
+ vec2 coord = vTransformedCoords_0_Stage0 - 3.0 * uImageIncrement_Stage1_c0_c0;
+ vec2 coordSampled = vec2(0.0, 0.0);
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[0].x;
+ coord += uImageIncrement_Stage1_c0_c0;
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[0].y;
+ coord += uImageIncrement_Stage1_c0_c0;
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[0].z;
+ coord += uImageIncrement_Stage1_c0_c0;
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[0].w;
+ coord += uImageIncrement_Stage1_c0_c0;
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[1].x;
+ coord += uImageIncrement_Stage1_c0_c0;
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[1].y;
+ coord += uImageIncrement_Stage1_c0_c0;
+ coordSampled = coord;
+ _output += texture(uTextureSampler_0_Stage1, coordSampled) * uKernel_Stage1_c0_c0[1].z;
+ coord += uImageIncrement_Stage1_c0_c0;
+ _output *= _input;
+ return _output;
+}
+vec4 CircleBlurFragmentProcessor_Stage1_c1_c0(vec4 _input) {
+ vec4 _output;
+ vec2 vec = vec2((gl_FragCoord.x - ucircleData_Stage1_c1_c0.x) * ucircleData_Stage1_c1_c0.w, (gl_FragCoord.y - ucircleData_Stage1_c1_c0.y) * ucircleData_Stage1_c1_c0.w);
+ float dist = length(vec) + (0.5 - ucircleData_Stage1_c1_c0.z) * ucircleData_Stage1_c1_c0.w;
+ _output = _input * texture(uTextureSampler_1_Stage1, vec2(dist, 0.5)).w;
+ return _output;
+}
+vec4 blend_src_over(vec4 src, vec4 dst) {
+ return src + (1.0 - src.w) * dst;
+}
+void main() {
+ vec4 outputColor_Stage0;
+ vec4 outputCoverage_Stage0;
+ {
+ outputColor_Stage0 = vinColor_Stage0;
+ vec2 uv = vTextureCoords_Stage0;
+ vec4 texColor;
+ {
+ texColor = texture(uTextureSampler_0_Stage0, uv);
+ }
+ float distance = 7.96875 * (texColor.x - 0.50196081399917603);
+ float afwidth;
+ vec2 dist_grad = vec2(dFdx(distance), -dFdy(distance));
+ float dg_len2 = dot(dist_grad, dist_grad);
+ if (dg_len2 < 9.9999997473787516e-05) {
+ dist_grad = vec2(0.70709997415542603, 0.70709997415542603);
+ } else {
+ dist_grad = dist_grad * inversesqrt(dg_len2);
+ }
+ vec2 Jdx = dFdx(vIntTextureCoords_Stage0);
+ vec2 Jdy = -dFdy(vIntTextureCoords_Stage0);
+ vec2 grad = vec2(dist_grad.x * Jdx.x + dist_grad.y * Jdy.x, dist_grad.x * Jdx.y + dist_grad.y * Jdy.y);
+ afwidth = 0.64999997615814209 * length(grad);
+ float val = smoothstep(-afwidth, afwidth, distance);
+ outputCoverage_Stage0 = vec4(val);
+ }
+ vec4 output_Stage1;
+ {
+ vec4 inputColor = vec4(outputColor_Stage0.xyz, 1.0);
+ output_Stage1 = blend_src_over(GaussianConvolution_Stage1_c0_c0(inputColor), CircleBlurFragmentProcessor_Stage1_c1_c0(inputColor));
+ output_Stage1 *= outputColor_Stage0.w;
+ }
+ {
+ sk_FragColor = outputCoverage_Stage0 * output_Stage1;
+ }
+}
+
+[vertex shader]
+#version 140
+
+uniform vec4 sk_RTAdjust;
+uniform vec2 uAtlasDimensionsInv_Stage0;
+uniform mat3 uViewM_Stage0;
+uniform mat3 uCoordTransformMatrix_0_Stage0;
+in vec2 inPosition;
+in vec4 inColor;
+in uvec2 inTextureCoords;
+out vec2 vTextureCoords_Stage0;
+flat out int vTexIndex_Stage0;
+out vec2 vIntTextureCoords_Stage0;
+out vec4 vinColor_Stage0;
+out vec2 vTransformedCoords_0_Stage0;
+void main() {
+ ivec2 signedCoords = ivec2(int(inTextureCoords.x), int(inTextureCoords.y));
+ vec2 unormTexCoords = vec2(float(signedCoords.x / 2), float(signedCoords.y / 2));
+ vTextureCoords_Stage0 = unormTexCoords * uAtlasDimensionsInv_Stage0;
+ vTexIndex_Stage0 = 0;
+ vIntTextureCoords_Stage0 = unormTexCoords;
+ vinColor_Stage0 = inColor;
+ vec3 pos3 = uViewM_Stage0 * vec3(inPosition, 1.0);
+ vTransformedCoords_0_Stage0 = (uCoordTransformMatrix_0_Stage0 * vec3(inPosition, 1.0)).xy;
+ gl_Position = vec4(pos3.x, pos3.y, 0.0, pos3.z);
+ gl_Position = vec4(gl_Position.xy * sk_RTAdjust.xz + gl_Position.ww * sk_RTAdjust.yw, 0.0, gl_Position.w);
+}
+