summaryrefslogtreecommitdiff
path: root/shaders/skia/874.shader_test
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/skia/874.shader_test')
-rw-r--r--shaders/skia/874.shader_test238
1 files changed, 238 insertions, 0 deletions
diff --git a/shaders/skia/874.shader_test b/shaders/skia/874.shader_test
new file mode 100644
index 0000000..d0fb6d0
--- /dev/null
+++ b/shaders/skia/874.shader_test
@@ -0,0 +1,238 @@
+[require]
+GLSL >= 1.40
+
+[fragment shader]
+#version 140
+
+#extension GL_ARB_fragment_coord_conventions : require
+layout(origin_upper_left) in vec4 gl_FragCoord;
+out vec4 sk_FragColor;
+uniform float uPixelSize_Stage1;
+uniform vec2 uRange_Stage1;
+uniform vec4 ucircleData_Stage2;
+uniform vec4 uleftBorderColor_Stage3_c0_c0;
+uniform vec4 urightBorderColor_Stage3_c0_c0;
+uniform vec4 uscale0_1_Stage3_c0_c0_c1_c0;
+uniform vec4 uscale2_3_Stage3_c0_c0_c1_c0;
+uniform vec4 uscale4_5_Stage3_c0_c0_c1_c0;
+uniform vec4 uscale6_7_Stage3_c0_c0_c1_c0;
+uniform vec4 ubias0_1_Stage3_c0_c0_c1_c0;
+uniform vec4 ubias2_3_Stage3_c0_c0_c1_c0;
+uniform vec4 ubias4_5_Stage3_c0_c0_c1_c0;
+uniform vec4 ubias6_7_Stage3_c0_c0_c1_c0;
+uniform vec4 uthresholds1_7_Stage3_c0_c0_c1_c0;
+uniform vec4 uthresholds9_13_Stage3_c0_c0_c1_c0;
+uniform vec2 ubaseFrequency_Stage4_c1_c0;
+uniform vec2 ustitchData_Stage4_c1_c0;
+uniform sampler2D uTextureSampler_0_Stage0;
+uniform sampler2D uTextureSampler_0_Stage1;
+uniform sampler2D uTextureSampler_0_Stage2;
+uniform sampler2D uTextureSampler_0_Stage4;
+uniform sampler2D uTextureSampler_1_Stage4;
+in vec2 vTextureCoords_Stage0;
+flat in int vTexIndex_Stage0;
+in vec2 vIntTextureCoords_Stage0;
+in vec4 vinColor_Stage0;
+in vec2 vTransformedCoords_0_Stage0;
+in vec2 vTransformedCoords_1_Stage0;
+in vec2 vTransformedCoords_2_Stage0;
+vec4 LinearGradientLayout_Stage3_c0_c0_c0_c0(vec4 _input) {
+ vec4 _output;
+ float t = vTransformedCoords_1_Stage0.x + 9.9999997473787516e-06;
+ _output = vec4(t, 1.0, 0.0, 0.0);
+ return _output;
+}
+vec4 UnrolledBinaryGradientColorizer_Stage3_c0_c0_c1_c0(vec4 _input) {
+ vec4 _output;
+ float t = _input.x;
+ vec4 scale, bias;
+ {
+ if (t < uthresholds1_7_Stage3_c0_c0_c1_c0.y) {
+ if (t < uthresholds1_7_Stage3_c0_c0_c1_c0.x) {
+ scale = uscale0_1_Stage3_c0_c0_c1_c0;
+ bias = ubias0_1_Stage3_c0_c0_c1_c0;
+ } else {
+ scale = uscale2_3_Stage3_c0_c0_c1_c0;
+ bias = ubias2_3_Stage3_c0_c0_c1_c0;
+ }
+ } else {
+ if (t < uthresholds1_7_Stage3_c0_c0_c1_c0.z) {
+ scale = uscale4_5_Stage3_c0_c0_c1_c0;
+ bias = ubias4_5_Stage3_c0_c0_c1_c0;
+ } else {
+ scale = uscale6_7_Stage3_c0_c0_c1_c0;
+ bias = ubias6_7_Stage3_c0_c0_c1_c0;
+ }
+ }
+ }
+ _output = t * scale + bias;
+ return _output;
+}
+vec4 ClampedGradientEffect_Stage3_c0_c0(vec4 _input) {
+ vec4 _output;
+ vec4 t = LinearGradientLayout_Stage3_c0_c0_c0_c0(vec4(1.0));
+ if (t.x < 0.0) {
+ _output = uleftBorderColor_Stage3_c0_c0;
+ } else if (t.x > 1.0) {
+ _output = urightBorderColor_Stage3_c0_c0;
+ } else {
+ _output = UnrolledBinaryGradientColorizer_Stage3_c0_c0_c1_c0(t);
+ }
+ {
+ _output.xyz *= _output.w;
+ }
+ return _output;
+}
+float perlinnoise_Stage4_c1_c0(float chanCoord, vec2 noiseVec, vec2 stitchData) {
+ vec4 floorVal;
+ floorVal.xy = floor(noiseVec);
+ floorVal.zw = floorVal.xy + vec2(1.0);
+ vec2 fractVal = fract(noiseVec);
+ vec2 noiseSmooth = (fractVal * fractVal) * (vec2(3.0) - vec2(2.0) * fractVal);
+ if (floorVal.x >= stitchData.x) {
+ floorVal.x -= stitchData.x;
+ }
+ if (floorVal.y >= stitchData.y) {
+ floorVal.y -= stitchData.y;
+ }
+ if (floorVal.z >= stitchData.x) {
+ floorVal.z -= stitchData.x;
+ }
+ if (floorVal.w >= stitchData.y) {
+ floorVal.w -= stitchData.y;
+ }
+ floorVal = fract(floor(mod(floorVal, 256.0)) / vec4(256.0));
+ vec2 latticeIdx;
+ latticeIdx.x = texture(uTextureSampler_0_Stage4, vec2(floorVal.x, 0.5)).x;
+ latticeIdx.y = texture(uTextureSampler_0_Stage4, vec2(floorVal.z, 0.5)).x;
+ vec4 bcoords = fract(latticeIdx.xyxy + floorVal.yyww);
+ vec2 uv;
+ vec4 lattice = texture(uTextureSampler_1_Stage4, vec2(bcoords.x, chanCoord)).zyxw;
+ uv.x = dot((lattice.yw + lattice.xz * vec2(0.00390625)) * vec2(2.0) - vec2(1.0), fractVal);
+ fractVal.x -= 1.0;
+ lattice = texture(uTextureSampler_1_Stage4, vec2(bcoords.y, chanCoord)).zyxw;
+ uv.y = dot((lattice.yw + lattice.xz * vec2(0.00390625)) * vec2(2.0) - vec2(1.0), fractVal);
+ vec2 ab;
+ ab.x = mix(uv.x, uv.y, noiseSmooth.x);
+ fractVal.y -= 1.0;
+ lattice = texture(uTextureSampler_1_Stage4, vec2(bcoords.w, chanCoord)).zyxw;
+ uv.y = dot((lattice.yw + lattice.xz * vec2(0.00390625)) * vec2(2.0) - vec2(1.0), fractVal);
+ fractVal.x += 1.0;
+ lattice = texture(uTextureSampler_1_Stage4, vec2(bcoords.z, chanCoord)).zyxw;
+ uv.x = dot((lattice.yw + lattice.xz * vec2(0.00390625)) * vec2(2.0) - vec2(1.0), fractVal);
+ ab.y = mix(uv.x, uv.y, noiseSmooth.x);
+ return mix(ab.x, ab.y, noiseSmooth.y);
+}
+vec4 PerlinNoise_Stage4_c1_c0(vec4 _input) {
+ vec4 _output;
+ vec2 noiseVec = floor(vTransformedCoords_2_Stage0) * ubaseFrequency_Stage4_c1_c0;
+ _output = vec4(0.0);
+ vec2 stitchData = ustitchData_Stage4_c1_c0;
+ float ratio = 1.0;
+ for (int octave = 0;octave < 8; ++octave) {
+ _output += vec4(perlinnoise_Stage4_c1_c0(0.125, noiseVec, stitchData), perlinnoise_Stage4_c1_c0(0.375, noiseVec, stitchData), perlinnoise_Stage4_c1_c0(0.625, noiseVec, stitchData), perlinnoise_Stage4_c1_c0(0.875, noiseVec, stitchData)) * ratio;
+ noiseVec *= vec2(2.0);
+ ratio *= 0.5;
+ stitchData *= vec2(2.0);
+ }
+ _output = _output * vec4(0.5) + vec4(0.5);
+ _output = clamp(_output, 0.0, 1.0);
+ _output = vec4(_output.xyz * _output.www, _output.w);
+ return _output;
+}
+vec4 blend_src_in(vec4 src, vec4 dst) {
+ return src * dst.w;
+}
+vec4 blend_dst_in(vec4 src, vec4 dst) {
+ return blend_src_in(dst, src);
+}
+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;
+ {
+ output_Stage1 = vec4(1.0, 1.0, 1.0, 1.0);
+ vec2 coord = vTransformedCoords_0_Stage0;
+ coord.y -= 4.0 * uPixelSize_Stage1;
+ for (int i = 0;i < 9; i++) {
+ output_Stage1 = min(output_Stage1, texture(uTextureSampler_0_Stage1, coord));
+ coord.y += uPixelSize_Stage1;
+ }
+ output_Stage1 *= outputCoverage_Stage0;
+ }
+ vec4 output_Stage2;
+ {
+ vec2 vec = vec2((gl_FragCoord.x - ucircleData_Stage2.x) * ucircleData_Stage2.w, (gl_FragCoord.y - ucircleData_Stage2.y) * ucircleData_Stage2.w);
+ float dist = length(vec) + (0.5 - ucircleData_Stage2.z) * ucircleData_Stage2.w;
+ output_Stage2 = output_Stage1 * texture(uTextureSampler_0_Stage2, vec2(dist, 0.5)).w;
+ }
+ vec4 output_Stage3;
+ {
+ output_Stage3 = blend_dst_in(output_Stage2, ClampedGradientEffect_Stage3_c0_c0(vec4(1.0)));
+ }
+ vec4 output_Stage4;
+ {
+ output_Stage4 = blend_dst_in(output_Stage3, PerlinNoise_Stage4_c1_c0(vec4(1.0)));
+ }
+ {
+ sk_FragColor = outputColor_Stage0 * output_Stage4;
+ }
+}
+
+[vertex shader]
+#version 140
+
+uniform vec4 sk_RTAdjust;
+uniform vec2 uAtlasDimensionsInv_Stage0;
+uniform mat3 uViewM_Stage0;
+uniform mat3 uCoordTransformMatrix_0_Stage0;
+uniform mat3 uCoordTransformMatrix_1_Stage0;
+uniform mat3 uCoordTransformMatrix_2_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;
+out vec2 vTransformedCoords_1_Stage0;
+out vec2 vTransformedCoords_2_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;
+ vTransformedCoords_1_Stage0 = (uCoordTransformMatrix_1_Stage0 * vec3(inPosition, 1.0)).xy;
+ vTransformedCoords_2_Stage0 = (uCoordTransformMatrix_2_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);
+}
+