1layout(binding=0) sampler2D uTextureSampler_0_Stage1; 2layout (binding=0) uniform uniformBuffer 3{ 4 layout(offset=0) float4 sk_RTAdjust; 5 layout(offset=16) half2 uIncrement_Stage1_c0; 6 layout(offset=32) half4 uKernel_Stage1_c0[7]; 7 layout(offset=144) float3x3 umatrix_Stage1_c0_c0; 8 layout(offset=192) half4 uborder_Stage1_c0_c0_c0; 9 layout(offset=208) float4 usubset_Stage1_c0_c0_c0; 10 layout(offset=224) float4 unorm_Stage1_c0_c0_c0; 11}; 12layout(location = 0) in float2 vLocalCoord_Stage0; 13half4 TextureEffect_Stage1_c0_c0_c0(half4 _input, float2 _coords) 14{ 15 half4 _output; 16 float2 inCoord = _coords; 17 inCoord *= unorm_Stage1_c0_c0_c0.xy; 18 float2 subsetCoord; 19 subsetCoord.x = inCoord.x; 20 subsetCoord.y = inCoord.y; 21 float2 clampedCoord; 22 clampedCoord = subsetCoord; 23 half4 textureColor = sample(uTextureSampler_0_Stage1, (clampedCoord) * unorm_Stage1_c0_c0_c0.zw); 24 float snappedX = floor(inCoord.x + 0.001) + 0.5; 25 if (snappedX < usubset_Stage1_c0_c0_c0.x || snappedX > usubset_Stage1_c0_c0_c0.z) 26 { 27 textureColor = uborder_Stage1_c0_c0_c0; 28 } 29 return textureColor; 30} 31half4 MatrixEffect_Stage1_c0_c0(half4 _input, float2 _coords) 32{ 33 half4 _output; 34 return TextureEffect_Stage1_c0_c0_c0(_input, ((umatrix_Stage1_c0_c0) * _coords.xy1).xy); 35} 36inline half4 GaussianConvolution_Stage1_c0(half4 _input) 37{ 38 half4 _output; 39 _output = half4(0, 0, 0, 0); 40 float2 coord = vLocalCoord_Stage0 - 12.0 * uIncrement_Stage1_c0; 41 float2 coordSampled = half2(0, 0); 42 coordSampled = coord; 43 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[0].x; 44 coord += uIncrement_Stage1_c0; 45 coordSampled = coord; 46 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[0].y; 47 coord += uIncrement_Stage1_c0; 48 coordSampled = coord; 49 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[0].z; 50 coord += uIncrement_Stage1_c0; 51 coordSampled = coord; 52 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[0].w; 53 coord += uIncrement_Stage1_c0; 54 coordSampled = coord; 55 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[1].x; 56 coord += uIncrement_Stage1_c0; 57 coordSampled = coord; 58 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[1].y; 59 coord += uIncrement_Stage1_c0; 60 coordSampled = coord; 61 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[1].z; 62 coord += uIncrement_Stage1_c0; 63 coordSampled = coord; 64 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[1].w; 65 coord += uIncrement_Stage1_c0; 66 coordSampled = coord; 67 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[2].x; 68 coord += uIncrement_Stage1_c0; 69 coordSampled = coord; 70 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[2].y; 71 coord += uIncrement_Stage1_c0; 72 coordSampled = coord; 73 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[2].z; 74 coord += uIncrement_Stage1_c0; 75 coordSampled = coord; 76 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[2].w; 77 coord += uIncrement_Stage1_c0; 78 coordSampled = coord; 79 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[3].x; 80 coord += uIncrement_Stage1_c0; 81 coordSampled = coord; 82 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[3].y; 83 coord += uIncrement_Stage1_c0; 84 coordSampled = coord; 85 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[3].z; 86 coord += uIncrement_Stage1_c0; 87 coordSampled = coord; 88 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[3].w; 89 coord += uIncrement_Stage1_c0; 90 coordSampled = coord; 91 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[4].x; 92 coord += uIncrement_Stage1_c0; 93 coordSampled = coord; 94 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[4].y; 95 coord += uIncrement_Stage1_c0; 96 coordSampled = coord; 97 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[4].z; 98 coord += uIncrement_Stage1_c0; 99 coordSampled = coord; 100 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[4].w; 101 coord += uIncrement_Stage1_c0; 102 coordSampled = coord; 103 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[5].x; 104 coord += uIncrement_Stage1_c0; 105 coordSampled = coord; 106 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[5].y; 107 coord += uIncrement_Stage1_c0; 108 coordSampled = coord; 109 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[5].z; 110 coord += uIncrement_Stage1_c0; 111 coordSampled = coord; 112 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[5].w; 113 coord += uIncrement_Stage1_c0; 114 coordSampled = coord; 115 _output += MatrixEffect_Stage1_c0_c0(_input, coordSampled) * uKernel_Stage1_c0[6].x; 116 coord += uIncrement_Stage1_c0; 117 _output *= _input; 118 return _output; 119} 120void main() 121{ 122 half4 outputColor_Stage0; 123 half4 outputCoverage_Stage0; 124 { 125 // Stage 0, QuadPerEdgeAAGeometryProcessor 126 outputColor_Stage0 = half4(1); 127 outputCoverage_Stage0 = half4(1); 128 } 129 half4 output_Stage1; 130 output_Stage1 = GaussianConvolution_Stage1_c0(outputColor_Stage0); 131 { 132 // Xfer Processor: Porter Duff 133 sk_FragColor = output_Stage1 * outputCoverage_Stage0; 134 } 135} 136