summaryrefslogtreecommitdiff
path: root/shaders/skia/52-61.shader_test
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/skia/52-61.shader_test')
-rw-r--r--shaders/skia/52-61.shader_test176
1 files changed, 176 insertions, 0 deletions
diff --git a/shaders/skia/52-61.shader_test b/shaders/skia/52-61.shader_test
new file mode 100644
index 0000000..e3fd699
--- /dev/null
+++ b/shaders/skia/52-61.shader_test
@@ -0,0 +1,176 @@
+[require]
+GLSL >= 1.40
+
+[fragment shader]
+#version 140
+
+#extension GL_KHR_blend_equation_advanced : require
+out vec4 sk_FragColor;
+layout (blend_support_all_equations) out ;
+uniform vec2 uImageIncrement_Stage1;
+uniform vec4 uKernel_Stage1[2];
+uniform vec2 uKernelOffset_Stage1;
+uniform float uGain_Stage1;
+uniform float uBias_Stage1;
+uniform vec4 uTexDom_Stage1;
+uniform sampler2D uTextureSampler_0_Stage0;
+uniform sampler2D uTextureSampler_0_Stage1;
+in vec2 vTextureCoords_Stage0;
+flat in int vTexIndex_Stage0;
+in vec2 vIntTextureCoords_Stage0;
+in vec4 vinColor_Stage0;
+in vec2 vTransformedCoords_0_Stage0;
+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 = clamp((distance + afwidth) / (2.0 * afwidth), 0.0, 1.0);
+ outputCoverage_Stage0 = vec4(val);
+ }
+ vec4 output_Stage1;
+ {
+ vec4 sum = vec4(0.0, 0.0, 0.0, 0.0);
+ vec2 coord = vTransformedCoords_0_Stage0 - uKernelOffset_Stage1 * uImageIncrement_Stage1;
+ vec4 c;
+ {
+ float k = uKernel_Stage1[0].x;
+ {
+ vec2 origCoord = coord;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ c.xyz /= c.w;
+ c.xyz = clamp(c.xyz, 0.0, 1.0);
+ sum += c * k;
+ }
+ {
+ float k = uKernel_Stage1[0].y;
+ {
+ vec2 origCoord = coord + vec2(0.0, 1.0) * uImageIncrement_Stage1;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ c.xyz /= c.w;
+ c.xyz = clamp(c.xyz, 0.0, 1.0);
+ sum += c * k;
+ }
+ {
+ float k = uKernel_Stage1[0].z;
+ {
+ vec2 origCoord = coord + vec2(0.0, 2.0) * uImageIncrement_Stage1;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ c.xyz /= c.w;
+ c.xyz = clamp(c.xyz, 0.0, 1.0);
+ sum += c * k;
+ }
+ {
+ float k = uKernel_Stage1[0].w;
+ {
+ vec2 origCoord = coord + vec2(0.0, 3.0) * uImageIncrement_Stage1;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ c.xyz /= c.w;
+ c.xyz = clamp(c.xyz, 0.0, 1.0);
+ sum += c * k;
+ }
+ {
+ float k = uKernel_Stage1[1].x;
+ {
+ vec2 origCoord = coord + vec2(0.0, 4.0) * uImageIncrement_Stage1;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ c.xyz /= c.w;
+ c.xyz = clamp(c.xyz, 0.0, 1.0);
+ sum += c * k;
+ }
+ {
+ float k = uKernel_Stage1[1].y;
+ {
+ vec2 origCoord = coord + vec2(0.0, 5.0) * uImageIncrement_Stage1;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ c.xyz /= c.w;
+ c.xyz = clamp(c.xyz, 0.0, 1.0);
+ sum += c * k;
+ }
+ {
+ vec2 origCoord = vTransformedCoords_0_Stage0;
+ vec2 clampedCoord;
+ clampedCoord = clamp(origCoord, uTexDom_Stage1.xy, uTexDom_Stage1.zw);
+ vec4 textureColor = texture(uTextureSampler_0_Stage1, clampedCoord);
+ c = textureColor;
+ }
+ output_Stage1.w = c.w;
+ output_Stage1.xyz = clamp(sum.xyz * uGain_Stage1 + uBias_Stage1, 0.0, 1.0);
+ output_Stage1.xyz *= output_Stage1.w;
+ output_Stage1 *= outputCoverage_Stage0;
+ }
+ {
+ sk_FragColor = output_Stage1 * outputColor_Stage0;
+ }
+}
+
+[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);
+}
+