diff --git a/backend/src/glass/LiquidField.zig b/backend/src/glass/LiquidField.zig index 0813f3394..c1912f611 100644 --- a/backend/src/glass/LiquidField.zig +++ b/backend/src/glass/LiquidField.zig @@ -414,9 +414,11 @@ pub const uniform_vec4s = header_vec4s + shape_vec4s * max_shapes; pub const Uniforms = extern struct { /// Where the frost starts, and 1 / its size: physical pixels to its uv. frost_map: [4]f32, - /// Merge width, the soft field's softness, the refraction's depth, the light's depth. + /// Merge width, the soft field's softness, the refraction's depth, the light's depth; the last + /// three unfitted, the program fitting them to each shape (`fitHalf`). depths: [4]f32, - /// How far the rim reaches out, how clear it is, the rim line's width, how much light. + /// How far the rim reaches out (unfitted, as `depths`), how clear it is, the rim line's width, + /// how much light. rim: [4]f32, /// Premultiplied. tint: [4]f32, @@ -461,13 +463,12 @@ fn look(self: *const LiquidField) liquid_glass.Look { return .{ .refraction = self.refraction }; } -/// The scale the rim is drawn at (`liquid_glass.rimScale`), fitted to the smallest shape: the -/// program's rim is one for the whole field, and on a smaller shape a rim sized for a bigger one -/// would be all rim. Every shape is glass whatever its size (`liquid_glass.fit`). -fn rimScale(self: *const LiquidField, depth_px: f32) f32 { - var f: f32 = 1; - for (0..self.shapeCount()) |i| f = @min(f, liquid_glass.fit(self.shapeAt(i).rect, depth_px)); - return self.scale * f; +/// How much of its rim a shape of shorter half `half` has room for, its curve `depth_px` deep +/// (`liquid_glass.fit`): each shape's own, blended across a bridge, so a small drop beside a bar +/// draws a rim its own size and leaves the bar's whole. The program's `fitTo`. +fn fitHalf(half: f32, depth_px: f32) f32 { + if (depth_px <= 0) return 1; + return std.math.clamp(half / (liquid_glass.room * depth_px), 0, 1); } /// The uniforms for drawing over `frost`, a picture of `covered`, the shapes in `order`: the @@ -479,13 +480,12 @@ pub fn pack(self: *const LiquidField, covered: dvui.Rect.Physical, has_sharp: bo const a = @as(f32, @floatFromInt(t.a)) / 255; break :blk .{ @as(f32, @floatFromInt(t.r)) / 255 * a, @as(f32, @floatFromInt(t.g)) / 255 * a, @as(f32, @floatFromInt(t.b)) / 255 * a, a }; } else @splat(0); - // The curve, its reach and its corners at the fitted scale; the rim line at the field's. - const rim = self.rimScale(liquid_glass.depthPx(self.look(), s)); - const glow = self.rimScale(liquid_glass.falloff * s); + // The curve, its reach and its corners at the field's scale, unfitted: the program fits them + // to each shape (`fitHalf`). var u: Uniforms = .{ .frost_map = .{ covered.x, covered.y, 1 / @max(covered.w, 1), 1 / @max(covered.h, 1) }, - .depths = .{ self.merge_px, liquid_glass.softness * rim, liquid_glass.depthPx(self.look(), rim), liquid_glass.falloff * glow }, - .rim = .{ liquid_glass.refraction * rim * self.refraction, liquid_glass.clarity * @min(1, self.refraction), rim_line_width * s, @min(1, self.refraction) }, + .depths = .{ self.merge_px, liquid_glass.softness * s, liquid_glass.depthPx(self.look(), s), liquid_glass.falloff * s }, + .rim = .{ liquid_glass.refraction * s * self.refraction, liquid_glass.clarity * @min(1, self.refraction), rim_line_width * s, @min(1, self.refraction) }, .tint = tint, .face = .{ if (self.window) 2 else std.math.clamp(self.mix, 0, 1), std.math.clamp(self.lift, 0, 1), if (self.tint != null) 1 else 0, if (has_sharp) 1 else 0 }, .dither = .{ 1.0 / 255.0, 0, 0, 0 }, @@ -824,14 +824,15 @@ pub fn sampleWith(self: *const LiquidField, p: dvui.Point.Physical, l: glass_loo var d2: f32 = big; var m1: [3]f32 = @splat(0); var m2: [3]f32 = @splat(0); + var h1: f32 = 1e9; + var h2: f32 = 1e9; var f1: f32 = big; var f2: f32 = big; var o1: [2]f32 = @splat(0); var o2: [2]f32 = @splat(0); var al1: [2]f32 = @splat(0); var al2: [2]f32 = @splat(0); - const rim = self.rimScale(liquid_glass.depthPx(self.look(), self.scale)); - const soft_k = liquid_glass.softness * rim; + const depth = liquid_glass.depthPx(self.look(), self.scale); for (0..self.shapeCount()) |shape_index| { const sh = self.shapeAt(shape_index); const is_panel = shape_index == self.len and self.panel != null; @@ -841,6 +842,7 @@ pub fn sampleWith(self: *const LiquidField, p: dvui.Point.Physical, l: glass_loo const lim = @min(half[0], half[1]); const radii: [4]f32 = .{ @min(sh.radii[0], lim), @min(sh.radii[1], lim), @min(sh.radii[2], lim), @min(sh.radii[3], lim) }; const d = if (is_panel) panelDistance(self.panel.?, .{ p.x, p.y }, 0, &g) else roundBox(.{ p.x - c[0], p.y - c[1] }, half, radii, &g); + const soft_k = liquid_glass.softness * self.scale * fitHalf(lim, depth); const mat: [3]f32 = .{ sh.blur, sh.lens, sh.light }; var al: [2]f32 = .{ 0, 0 }; if (lanes.edge[3] > 0) { @@ -854,26 +856,21 @@ pub fn sampleWith(self: *const LiquidField, p: dvui.Point.Physical, l: glass_loo if (d < d1) { d2 = d1; m2 = m1; + h2 = h1; al2 = al1; d1 = d; m1 = mat; + h1 = lim; al1 = al; } else if (d < d2) { d2 = d; m2 = mat; + h2 = lim; al2 = al; } var o: [2]f32 = g; const f = if (is_panel) panelDistance(self.panel.?, .{ p.x, p.y }, soft_k, &o) else if (sh.round) d else softBox(.{ p.x, p.y }, c, half, soft_k, &o); - if (f < f1) { - f2 = f1; - o2 = o1; - f1 = f; - o1 = o; - } else if (f < f2) { - f2 = f; - o2 = o; - } + keepNearest(f, o, &f1, &o1, &f2, &o2); } // The place (`edge`): its outside one more shape, its outline cutting the coverage. var in_place: f32 = -big; @@ -891,28 +888,23 @@ pub fn sampleWith(self: *const LiquidField, p: dvui.Point.Physical, l: glass_loo if (self.edge != null and !cut) { const d = edge_gap - in_place; const mat: [3]f32 = .{ m1[0], m1[1], 0 }; + const hs = h1; if (d < d1) { d2 = d1; m2 = m1; + h2 = h1; al2 = al1; d1 = d; m1 = mat; + h1 = hs; al1 = .{ 0, 0 }; } else if (d < d2) { d2 = d; m2 = mat; + h2 = hs; al2 = .{ 0, 0 }; } - const o: [2]f32 = .{ -place_out[0], -place_out[1] }; - if (d < f1) { - f2 = f1; - o2 = o1; - f1 = d; - o1 = o; - } else if (d < f2) { - f2 = d; - o2 = o; - } + keepNearest(d, .{ -place_out[0], -place_out[1] }, &f1, &o1, &f2, &o2); } const k = @max(self.merge_px, 0.0001); var wm: f32 = 0; @@ -954,7 +946,7 @@ pub fn sampleWith(self: *const LiquidField, p: dvui.Point.Physical, l: glass_loo .d = dist, .coverage = coverage, .out = .{ .x = out[0], .y = out[1] }, - .steep = @exp(-soft / liquid_glass.depthPx(self.look(), rim)), + .steep = @exp(-soft / (depth * fitHalf(std.math.lerp(h1, h2, wm), depth))), .blur = std.math.lerp(m1[0], m2[0], wm), .lens = lens, .light = std.math.lerp(m1[2], m2[2], wm), @@ -966,6 +958,20 @@ pub fn sampleWith(self: *const LiquidField, p: dvui.Point.Physical, l: glass_loo }; } +/// Keep the two nearest soft distances and their ways out, `f1` the nearest: the program's +/// `f1`/`f2` and `o1`/`o2`. +fn keepNearest(f: f32, o: [2]f32, f1: *f32, o1: *[2]f32, f2: *f32, o2: *[2]f32) void { + if (f < f1.*) { + f2.* = f1.*; + o2.* = o1.*; + f1.* = f; + o1.* = o; + } else if (f < f2.*) { + f2.* = f; + o2.* = o; + } +} + /// The program's `sh` at `p`, where the glass covers `coverage` and its lens is `lens`: one /// falloff of the joined outline, moved by the offset. fn shadowAt(self: *const LiquidField, p: dvui.Point.Physical, coverage: f32, lens: f32) f32 { diff --git a/backend/src/glass/liquid_field_tests.zig b/backend/src/glass/liquid_field_tests.zig index 0998e82f7..e5d8ffba1 100644 --- a/backend/src/glass/liquid_field_tests.zig +++ b/backend/src/glass/liquid_field_tests.zig @@ -650,3 +650,42 @@ test "the shadow grows the bounds and packs in vec4 11" { const u = f.pack(.{ .x = 0, .y = 0, .w = 200, .h = 120 }, false, &.{0}); try testing.expectEqual([4]f32{ shadow_fade, shadow_offset[0], shadow_offset[1], shadow_alpha }, u.vec4s()[11]); } + +/// A 300 x 44 bar at (0, 0), radius 22, and `bead`, a 12 pt drop, when there is one. +fn barWith(bead: ?Point) LiquidField { + var f: LiquidField = .{ .merge_px = 14 }; + f.add(.{ .rect = .{ .x = 0, .y = 0, .w = 300, .h = 44 }, .radii = @splat(22) }); + if (bead) |c| f.add(Shape.circle(c, 6)); + return f; +} + +test "a small drop elsewhere leaves a bar's rim whole" { + const alone = barWith(null); + const with = barWith(.{ .x = 150, .y = 200 }); + for ([_]Point{ .{ .x = 150, .y = 3 }, .{ .x = 40, .y = 8 }, .{ .x = 4, .y = 22 } }) |p| { + const a = alone.sampleWith(p, dropLook()); + const b = with.sampleWith(p, dropLook()); + try testing.expectApproxEqAbs(a.steep, b.steep, 1e-4); + try testing.expectApproxEqAbs(a.out.x, b.out.x, 1e-4); + try testing.expectApproxEqAbs(a.out.y, b.out.y, 1e-4); + } +} + +test "a bead joined to a bar leaves its rim whole away from the neck" { + const alone = barWith(null); + const with = barWith(.{ .x = 270, .y = 52 }); + try testing.expectEqual(@as(usize, 1), with.clusters().count); + for ([_]Point{ .{ .x = 40, .y = 3 }, .{ .x = 40, .y = 41 }, .{ .x = 4, .y = 22 } }) |p| { + const a = alone.sampleWith(p, dropLook()); + const b = with.sampleWith(p, dropLook()); + try testing.expectApproxEqAbs(a.steep, b.steep, 1e-4); + } +} + +test "a small drop's own rim still fits it" { + const with = barWith(.{ .x = 150, .y = 200 }); + var lone: LiquidField = .{ .merge_px = 14 }; + lone.add(Shape.circle(.{ .x = 150, .y = 200 }, 6)); + const p: Point = .{ .x = 150, .y = 195 }; + try testing.expectApproxEqAbs(lone.sampleWith(p, dropLook()).steep, with.sampleWith(p, dropLook()).steep, 1e-4); +} diff --git a/backend/src/glass/shaders/compiled/dxil/liquid_glass.fragment.dxil b/backend/src/glass/shaders/compiled/dxil/liquid_glass.fragment.dxil index 02fc3930e..aa011b9b4 100644 Binary files a/backend/src/glass/shaders/compiled/dxil/liquid_glass.fragment.dxil and b/backend/src/glass/shaders/compiled/dxil/liquid_glass.fragment.dxil differ diff --git a/backend/src/glass/shaders/compiled/glsl/liquid_glass.fragment.glsl b/backend/src/glass/shaders/compiled/glsl/liquid_glass.fragment.glsl index 3bc995cad..b32c5c392 100644 --- a/backend/src/glass/shaders/compiled/glsl/liquid_glass.fragment.glsl +++ b/backend/src/glass/shaders/compiled/glsl/liquid_glass.fragment.glsl @@ -12,308 +12,308 @@ layout(location = 0) out highp vec4 out_var_SV_Target0; void main() { - highp vec4 _2007; + highp vec4 _2027; do { - int _114 = int((vColor.y * 255.0) + 0.5); - int _119 = int((vColor.z * 255.0) + 0.5); - bool _145 = uData[5].y > 0.0; - highp vec4 _147; - highp vec4 _150; - highp vec2 _152; - highp float _154; - highp vec2 _156; - highp vec2 _158; - highp vec2 _160; - highp float _162; - highp float _164; - highp vec2 _166; - highp vec2 _168; - highp float _170; - highp float _172; - highp float _174; - _147 = vec4(0.0); - _150 = vec4(0.0); - _152 = vec2(0.0, 1.0); - _154 = 1000000000.0; - _156 = vec2(0.0); - _158 = vec2(0.0); - _160 = vec2(0.0); - _162 = 1000000000.0; - _164 = 1000000000.0; - _166 = vec2(0.0); - _168 = vec2(0.0, 1.0); - _170 = 1000000000.0; - _172 = 1000000000.0; - _174 = 1000000000.0; - highp vec4 _151; - highp vec2 _161; - highp float _165; - highp vec2 _167; - highp float _173; - highp float _175; - int _180; + int _115 = int((vColor.y * 255.0) + 0.5); + int _120 = int((vColor.z * 255.0) + 0.5); + bool _146 = uData[5].y > 0.0; highp vec4 _148; + highp vec4 _151; highp vec2 _153; highp float _155; highp vec2 _157; highp vec2 _159; + highp vec2 _161; highp float _163; + highp float _165; + highp vec2 _167; highp vec2 _169; highp float _171; - int _176 = _114; + highp float _173; + highp float _175; + _148 = vec4(0.0); + _151 = vec4(0.0); + _153 = vec2(0.0, 1.0); + _155 = 1000000000.0; + _157 = vec2(0.0); + _159 = vec2(0.0); + _161 = vec2(0.0); + _163 = 1000000000.0; + _165 = 1000000000.0; + _167 = vec2(0.0); + _169 = vec2(0.0, 1.0); + _171 = 1000000000.0; + _173 = 1000000000.0; + _175 = 1000000000.0; + highp vec4 _152; + highp vec2 _162; + highp float _166; + highp vec2 _168; + highp float _174; + highp float _176; + int _181; + highp vec4 _149; + highp vec2 _154; + highp float _156; + highp vec2 _158; + highp vec2 _160; + highp float _164; + highp vec2 _170; + highp float _172; + int _177 = _115; for (;;) { - _180 = _114 + _119; - bool _185; - if (_176 < _180) + _181 = _115 + _120; + bool _186; + if (_177 < _181) { - _185 = _176 < 16; + _186 = _177 < 16; } else { - _185 = false; + _186 = false; } - if (_185) + if (_186) { - int _187 = 3 * _176; - int _194 = _187 + 14; - bool _202; - if (uData[_194 * 1 + 0].w >= (-0.5)) + int _188 = 3 * _177; + int _195 = _188 + 14; + bool _203; + if (uData[_195 * 1 + 0].w >= (-0.5)) { - _202 = uData[_194 * 1 + 0].w > 3.5; + _203 = uData[_195 * 1 + 0].w > 3.5; } else { - _202 = true; + _203 = true; } - highp vec4 _212; highp vec4 _213; highp vec4 _214; - if (_202) + highp vec4 _215; + if (_203) { - highp vec4 _210 = uData[59]; - _210.z = 0.0; - _212 = _210; - _213 = uData[57]; - _214 = uData[58]; + highp vec4 _211 = uData[59]; + _211.z = 0.0; + _213 = _211; + _214 = uData[57]; + _215 = uData[58]; } else { - _212 = uData[_194 * 1 + 0]; - _213 = uData[(12 + _187) * 1 + 0]; - _214 = uData[(_187 + 13) * 1 + 0]; + _213 = uData[_195 * 1 + 0]; + _214 = uData[(12 + _188) * 1 + 0]; + _215 = uData[(_188 + 13) * 1 + 0]; } - highp float _217 = min(_213.z, _213.w); - highp vec4 _219 = min(_214, vec4(_217)); - highp vec2 _504; - highp float _505; - if (_202) + highp float _218 = min(_214.z, _214.w); + highp vec4 _220 = min(_215, vec4(_218)); + highp vec2 _505; + highp float _506; + if (_203) { - highp vec4 _294 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); - int _297 = int(uData[59].z); - highp vec2 _299 = vTextureCoord - uData[57].xy; - highp float _301 = _299.x; - highp float _322; - if (_301 > 0.0) + highp vec4 _295 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); + int _298 = int(uData[59].z); + highp vec2 _300 = vTextureCoord - uData[57].xy; + highp float _302 = _300.x; + highp float _323; + if (_302 > 0.0) { - highp float _321; - if (_299.y > 0.0) + highp float _322; + if (_300.y > 0.0) { - _321 = _294.z; + _322 = _295.z; } else { - _321 = _294.y; + _322 = _295.y; } - _322 = _321; + _323 = _322; } else { - highp float _313; - if (_299.y > 0.0) + highp float _314; + if (_300.y > 0.0) { - _313 = _294.w; + _314 = _295.w; } else { - _313 = _294.x; + _314 = _295.x; } - _322 = _313; + _323 = _314; } - highp vec2 _326 = (abs(_299) - uData[57].zw) + vec2(_322); - highp float _328 = (_301 < 0.0) ? (-1.0) : 1.0; - highp float _331 = (_299.y < 0.0) ? (-1.0) : 1.0; - highp float _333 = _326.x; - bool _339; - if (_333 > 0.0) + highp vec2 _327 = (abs(_300) - uData[57].zw) + vec2(_323); + highp float _329 = (_302 < 0.0) ? (-1.0) : 1.0; + highp float _332 = (_300.y < 0.0) ? (-1.0) : 1.0; + highp float _334 = _327.x; + bool _340; + if (_334 > 0.0) { - _339 = _326.y > 0.0; + _340 = _327.y > 0.0; } else { - _339 = false; + _340 = false; } - highp vec2 _353; - if (_339) + highp vec2 _354; + if (_340) { - _353 = normalize(_326) * vec2(_328, _331); + _354 = normalize(_327) * vec2(_329, _332); } else { - highp vec2 _350; - if (_333 > _326.y) + highp vec2 _351; + if (_334 > _327.y) { - _350 = vec2(_328, 0.0); + _351 = vec2(_329, 0.0); } else { - _350 = vec2(0.0, _331); + _351 = vec2(0.0, _332); } - _353 = _350; + _354 = _351; } - highp vec2 _362; - highp float _365; - _362 = _353; - _365 = (min(max(_333, _326.y), 0.0) + length(max(_326, vec2(0.0)))) - _322; highp vec2 _363; highp float _366; - int _367 = 0; + _363 = _354; + _366 = (min(max(_334, _327.y), 0.0) + length(max(_327, vec2(0.0)))) - _323; + highp vec2 _364; + highp float _367; + int _368 = 0; for (;;) { - bool _375; - if (_367 < _297) + bool _376; + if (_368 < _298) { - _375 = _367 < 4; + _376 = _368 < 4; } else { - _375 = false; + _376 = false; } - if (_375) + if (_376) { - int _377 = 14 - _367; - int _378 = 3 * _377; - int _379 = 12 + _378; - int _382 = _378 + 13; - if (uData[_382 * 1 + 0].x == 0.0) + int _378 = 14 - _368; + int _379 = 3 * _378; + int _380 = 12 + _379; + int _383 = _379 + 13; + if (uData[_383 * 1 + 0].x == 0.0) { - _363 = _362; - _366 = _365; - int _368 = _367 + 1; - _362 = _363; - _365 = _366; - _367 = _368; + _364 = _363; + _367 = _366; + int _369 = _368 + 1; + _363 = _364; + _366 = _367; + _368 = _369; continue; } - highp float _391 = clamp(uData[_382 * 1 + 0].x / uData[_382 * 1 + 0].y, 0.0, 1.0); - bool _393 = uData[_379 * 1 + 0].x < 0.5; - highp float _401; - if (_393) + highp float _392 = clamp(uData[_383 * 1 + 0].x / uData[_383 * 1 + 0].y, 0.0, 1.0); + bool _394 = uData[_380 * 1 + 0].x < 0.5; + highp float _402; + if (_394) { - _401 = vTextureCoord.y; + _402 = vTextureCoord.y; } else { - _401 = vTextureCoord.x; + _402 = vTextureCoord.x; } - highp float _409; - if (_393) + highp float _410; + if (_394) { - _409 = vTextureCoord.x; + _410 = vTextureCoord.x; } else { - _409 = vTextureCoord.y; + _410 = vTextureCoord.y; } - highp float _411 = _409 - uData[_379 * 1 + 0].y; - highp float _412 = uData[_382 * 1 + 0].x * 0.5; - highp float _415 = uData[_379 * 1 + 0].w - uData[_379 * 1 + 0].z; - highp float _416 = smoothstep(0.0, 0.60000002384185791015625, _391); - highp float _445; + highp float _412 = _410 - uData[_380 * 1 + 0].y; + highp float _413 = uData[_383 * 1 + 0].x * 0.5; + highp float _416 = uData[_380 * 1 + 0].w - uData[_380 * 1 + 0].z; + highp float _417 = smoothstep(0.0, 0.60000002384185791015625, _392); highp float _446; - if (uData[_382 * 1 + 0].w > 2.5) + highp float _447; + if (uData[_383 * 1 + 0].w > 2.5) { - highp float _436 = _401 - ((uData[_379 * 1 + 0].z + uData[_379 * 1 + 0].w) * 0.5); - _445 = (_436 < 0.0) ? 1.0 : (-1.0); - _446 = max(((_415 * 0.5) * (1.0 - _416)) - abs(_436), 0.0); + highp float _437 = _402 - ((uData[_380 * 1 + 0].z + uData[_380 * 1 + 0].w) * 0.5); + _446 = (_437 < 0.0) ? 1.0 : (-1.0); + _447 = max(((_416 * 0.5) * (1.0 - _417)) - abs(_437), 0.0); } else { - bool _422 = uData[_382 * 1 + 0].w < 1.5; - highp float _428; - if (_422) + bool _423 = uData[_383 * 1 + 0].w < 1.5; + highp float _429; + if (_423) { - _428 = _401 - uData[_379 * 1 + 0].z; + _429 = _402 - uData[_380 * 1 + 0].z; } else { - _428 = uData[_379 * 1 + 0].w - _401; + _429 = uData[_380 * 1 + 0].w - _402; } - _445 = _422 ? 1.0 : (-1.0); - _446 = max(_428 - ((_415 - _412) * _416), 0.0); + _446 = _423 ? 1.0 : (-1.0); + _447 = max(_429 - ((_416 - _413) * _417), 0.0); } - highp float _448 = length(vec2(_411, _446)); - highp float _449 = _448 - _412; - highp vec2 _464; - if (_448 > 0.0) + highp float _449 = length(vec2(_412, _447)); + highp float _450 = _449 - _413; + highp vec2 _465; + if (_449 > 0.0) { - highp vec2 _458 = vec2(-_411, (-_446) * _445) / vec2(_448); - highp vec2 _463; - if (uData[_379 * 1 + 0].x > 0.5) + highp vec2 _459 = vec2(-_412, (-_447) * _446) / vec2(_449); + highp vec2 _464; + if (uData[_380 * 1 + 0].x > 0.5) { - _463 = _458.yx; + _464 = _459.yx; } else { - _463 = _458; + _464 = _459; } - _464 = _463; + _465 = _464; } else { - _464 = vec2(0.0); + _465 = vec2(0.0); } - highp float _466 = uData[_382 * 1 + 0].z * _391; - highp vec2 _470 = max(vec2(_466 + _365, _466 - _449), vec2(0.0)); - highp float _471 = length(_470); - bool _476; - if (_466 > 0.0) + highp float _467 = uData[_383 * 1 + 0].z * _392; + highp vec2 _471 = max(vec2(_467 + _366, _467 - _450), vec2(0.0)); + highp float _472 = length(_471); + bool _477; + if (_467 > 0.0) { - _476 = _471 > 0.0; + _477 = _472 > 0.0; } else { - _476 = false; + _477 = false; } - highp vec2 _491; - if (_476) + highp vec2 _492; + if (_477) { - _491 = ((_362 * _470.x) + (_464 * _470.y)) / vec2(_471); + _492 = ((_363 * _471.x) + (_465 * _471.y)) / vec2(_472); } else { - bvec2 _482 = bvec2((-_449) > _365); - _491 = vec2(_482.x ? _464.x : _362.x, _482.y ? _464.y : _362.y); + bvec2 _483 = bvec2((-_450) > _366); + _492 = vec2(_483.x ? _465.x : _363.x, _483.y ? _465.y : _363.y); } - highp float _492 = -_449; - highp float _503; + highp float _493 = -_450; + highp float _504; do { - if (_466 == 0.0) + if (_467 == 0.0) { - _503 = max(_365, _492); + _504 = max(_366, _493); break; } - _503 = min(-_466, max(_365, _492)) + _471; + _504 = min(-_467, max(_366, _493)) + _472; break; } while(false); - _363 = _491; - _366 = _503; - int _368 = _367 + 1; - _362 = _363; - _365 = _366; - _367 = _368; + _364 = _492; + _367 = _504; + int _369 = _368 + 1; + _363 = _364; + _366 = _367; + _368 = _369; continue; } else @@ -321,465 +321,466 @@ void main() break; } } - _504 = _362; - _505 = _365; + _505 = _363; + _506 = _366; } else { - highp vec2 _224 = vTextureCoord - _213.xy; - highp float _226 = _224.x; - highp float _247; - if (_226 > 0.0) + highp vec2 _225 = vTextureCoord - _214.xy; + highp float _227 = _225.x; + highp float _248; + if (_227 > 0.0) { - highp float _246; - if (_224.y > 0.0) + highp float _247; + if (_225.y > 0.0) { - _246 = _219.z; + _247 = _220.z; } else { - _246 = _219.y; + _247 = _220.y; } - _247 = _246; + _248 = _247; } else { - highp float _238; - if (_224.y > 0.0) + highp float _239; + if (_225.y > 0.0) { - _238 = _219.w; + _239 = _220.w; } else { - _238 = _219.x; + _239 = _220.x; } - _247 = _238; + _248 = _239; } - highp vec2 _251 = (abs(_224) - _213.zw) + vec2(_247); - highp float _253 = (_226 < 0.0) ? (-1.0) : 1.0; - highp float _256 = (_224.y < 0.0) ? (-1.0) : 1.0; - highp float _258 = _251.x; - bool _264; - if (_258 > 0.0) + highp vec2 _252 = (abs(_225) - _214.zw) + vec2(_248); + highp float _254 = (_227 < 0.0) ? (-1.0) : 1.0; + highp float _257 = (_225.y < 0.0) ? (-1.0) : 1.0; + highp float _259 = _252.x; + bool _265; + if (_259 > 0.0) { - _264 = _251.y > 0.0; + _265 = _252.y > 0.0; } else { - _264 = false; + _265 = false; } - highp vec2 _278; - if (_264) + highp vec2 _279; + if (_265) { - _278 = normalize(_251) * vec2(_253, _256); + _279 = normalize(_252) * vec2(_254, _257); } else { - highp vec2 _275; - if (_258 > _251.y) + highp vec2 _276; + if (_259 > _252.y) { - _275 = vec2(_253, 0.0); + _276 = vec2(_254, 0.0); } else { - _275 = vec2(0.0, _256); + _276 = vec2(0.0, _257); } - _278 = _275; + _279 = _276; } - _504 = _278; - _505 = (min(max(_258, _251.y), 0.0) + length(max(_251, vec2(0.0)))) - _247; + _505 = _279; + _506 = (min(max(_259, _252.y), 0.0) + length(max(_252, vec2(0.0)))) - _248; } - highp vec2 _653; + highp vec2 _654; if (uData[10].w > 0.0) { - highp float _514 = (uData[9].x < 0.0) ? (-1.0) : 1.0; - highp float _517 = (uData[9].y < 0.0) ? (-1.0) : 1.0; - highp float _537; - if (_514 < 0.0) + highp float _515 = (uData[9].x < 0.0) ? (-1.0) : 1.0; + highp float _518 = (uData[9].y < 0.0) ? (-1.0) : 1.0; + highp float _538; + if (_515 < 0.0) { - highp float _536; - if (_517 < 0.0) + highp float _537; + if (_518 < 0.0) { - _536 = _219.x; + _537 = _220.x; } else { - _536 = _219.w; + _537 = _220.w; } - _537 = _536; + _538 = _537; } else { - highp float _529; - if (_517 < 0.0) + highp float _530; + if (_518 < 0.0) { - _529 = _219.y; + _530 = _220.y; } else { - _529 = _219.z; + _530 = _220.z; } - _537 = _529; + _538 = _530; } - highp vec2 _541 = max(_213.zw - vec2(_537), vec2(0.0)); - highp vec2 _546 = (_213.xy + (vec2(_514, _517) * _541)) + (uData[9].xy * _537); - highp vec2 _561; + highp vec2 _542 = max(_214.zw - vec2(_538), vec2(0.0)); + highp vec2 _547 = (_214.xy + (vec2(_515, _518) * _542)) + (uData[9].xy * _538); + highp vec2 _562; if (abs(uData[9].x) < 0.001000000047497451305389404296875) { - highp float _554 = _541.x; - highp vec2 _560 = _546; - _560.x = clamp(vTextureCoord.x, _213.x - _554, _213.x + _554) + (_537 * uData[9].x); - _561 = _560; + highp float _555 = _542.x; + highp vec2 _561 = _547; + _561.x = clamp(vTextureCoord.x, _214.x - _555, _214.x + _555) + (_538 * uData[9].x); + _562 = _561; } else { - _561 = _546; + _562 = _547; } - highp vec2 _576; + highp vec2 _577; if (abs(uData[9].y) < 0.001000000047497451305389404296875) { - highp float _569 = _541.y; - highp vec2 _575 = _561; - _575.y = clamp(vTextureCoord.y, _213.y - _569, _213.y + _569) + (_537 * uData[9].y); - _576 = _575; + highp float _570 = _542.y; + highp vec2 _576 = _562; + _576.y = clamp(vTextureCoord.y, _214.y - _570, _214.y + _570) + (_538 * uData[9].y); + _577 = _576; } else { - _576 = _561; + _577 = _562; } - highp float _579 = max(uData[10].w - max(uData[8].w, 1.0), 0.0); - highp vec2 _584 = -uData[9].xy; - highp float _585 = _584.x; - highp float _587 = (_585 < 0.0) ? (-1.0) : 1.0; - highp float _588 = _584.y; - highp float _590 = (_588 < 0.0) ? (-1.0) : 1.0; - highp float _610; - if (_587 < 0.0) + highp float _580 = max(uData[10].w - max(uData[8].w, 1.0), 0.0); + highp vec2 _585 = -uData[9].xy; + highp float _586 = _585.x; + highp float _588 = (_586 < 0.0) ? (-1.0) : 1.0; + highp float _589 = _585.y; + highp float _591 = (_589 < 0.0) ? (-1.0) : 1.0; + highp float _611; + if (_588 < 0.0) { - highp float _609; - if (_590 < 0.0) + highp float _610; + if (_591 < 0.0) { - _609 = _219.x; + _610 = _220.x; } else { - _609 = _219.w; + _610 = _220.w; } - _610 = _609; + _611 = _610; } else { - highp float _602; - if (_590 < 0.0) + highp float _603; + if (_591 < 0.0) { - _602 = _219.y; + _603 = _220.y; } else { - _602 = _219.z; + _603 = _220.z; } - _610 = _602; + _611 = _603; } - highp vec2 _613 = max(_213.zw - vec2(_610), vec2(0.0)); - highp vec2 _617 = (_213.xy + (vec2(_587, _590) * _613)) + (_584 * _610); - highp vec2 _632; - if (abs(_585) < 0.001000000047497451305389404296875) + highp vec2 _614 = max(_214.zw - vec2(_611), vec2(0.0)); + highp vec2 _618 = (_214.xy + (vec2(_588, _591) * _614)) + (_585 * _611); + highp vec2 _633; + if (abs(_586) < 0.001000000047497451305389404296875) { - highp float _625 = _613.x; - highp vec2 _631 = _617; - _631.x = clamp(vTextureCoord.x, _213.x - _625, _213.x + _625) + (_610 * _585); - _632 = _631; + highp float _626 = _614.x; + highp vec2 _632 = _618; + _632.x = clamp(vTextureCoord.x, _214.x - _626, _214.x + _626) + (_611 * _586); + _633 = _632; } else { - _632 = _617; + _633 = _618; } - highp vec2 _647; - if (abs(_588) < 0.001000000047497451305389404296875) + highp vec2 _648; + if (abs(_589) < 0.001000000047497451305389404296875) { - highp float _640 = _613.y; - highp vec2 _646 = _632; - _646.y = clamp(vTextureCoord.y, _213.y - _640, _213.y + _640) + (_610 * _588); - _647 = _646; + highp float _641 = _614.y; + highp vec2 _647 = _633; + _647.y = clamp(vTextureCoord.y, _214.y - _641, _214.y + _641) + (_611 * _589); + _648 = _647; } else { - _647 = _632; + _648 = _633; } - _653 = vec2(1.0 - smoothstep(_579, uData[10].w, length(vTextureCoord - _576)), 1.0 - smoothstep(_579, uData[10].w, length(vTextureCoord - _647))); + _654 = vec2(1.0 - smoothstep(_580, uData[10].w, length(vTextureCoord - _577)), 1.0 - smoothstep(_580, uData[10].w, length(vTextureCoord - _648))); } else { - _653 = vec2(0.0); + _654 = vec2(0.0); } - bool _654 = _505 < _172; - if (_654) + bool _655 = _506 < _173; + if (_655) { - _148 = _150; - _153 = _168; - _155 = _174; - _157 = _166; - _169 = _213.yw; - _171 = _172; + _149 = _151; + _154 = _169; + _156 = _175; + _158 = _167; + _170 = _214.yw; + _172 = _173; } else { - bool _658 = _505 < _170; - highp vec2 _662; - if (_658) + bool _659 = _506 < _171; + highp vec2 _663; + if (_659) { - _662 = _213.yw; + _663 = _214.yw; } else { - _662 = _152; + _663 = _153; } - bvec4 _663 = bvec4(_658); - bvec2 _666 = bvec2(_658); - _148 = vec4(_663.x ? _212.x : _147.x, _663.y ? _212.y : _147.y, _663.z ? _212.z : _147.z, _663.w ? _212.w : _147.w); - _153 = _662; - _155 = _658 ? _217 : _154; - _157 = vec2(_666.x ? _653.x : _156.x, _666.y ? _653.y : _156.y); - _169 = _168; - _171 = _658 ? _505 : _170; + bvec4 _664 = bvec4(_659); + bvec2 _667 = bvec2(_659); + _149 = vec4(_664.x ? _213.x : _148.x, _664.y ? _213.y : _148.y, _664.z ? _213.z : _148.z, _664.w ? _213.w : _148.w); + _154 = _663; + _156 = _659 ? _218 : _155; + _158 = vec2(_667.x ? _654.x : _157.x, _667.y ? _654.y : _157.y); + _170 = _169; + _172 = _659 ? _506 : _171; } - bvec4 _670 = bvec4(_654); - _151 = vec4(_670.x ? _212.x : _150.x, _670.y ? _212.y : _150.y, _670.z ? _212.z : _150.z, _670.w ? _212.w : _150.w); - bvec2 _671 = bvec2(_654); - _167 = vec2(_671.x ? _653.x : _166.x, _671.y ? _653.y : _166.y); - _173 = _654 ? _505 : _172; - _175 = _654 ? _217 : _174; - highp vec2 _984; - highp float _985; - if (_202) + bvec4 _671 = bvec4(_655); + _152 = vec4(_671.x ? _213.x : _151.x, _671.y ? _213.y : _151.y, _671.z ? _213.z : _151.z, _671.w ? _213.w : _151.w); + bvec2 _672 = bvec2(_655); + _168 = vec2(_672.x ? _654.x : _167.x, _672.y ? _654.y : _167.y); + _174 = _655 ? _506 : _173; + _176 = _655 ? _218 : _175; + highp vec2 _995; + highp float _996; + if (_203) { - highp vec4 _730 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); - int _733 = int(uData[59].z); - highp vec2 _839; - highp float _840; - if (uData[1].y > 0.0) + highp float _732 = uData[1].y * clamp(_218 / (3.0 * uData[1].z), 9.9999997473787516355514526367188e-05, 1.0); + highp vec4 _741 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); + int _744 = int(uData[59].z); + highp vec2 _850; + highp float _851; + if (_732 > 0.0) { - highp float _805 = (vTextureCoord.x - uData[57].x) + uData[57].z; - highp float _807 = (uData[57].x + uData[57].z) - vTextureCoord.x; - highp float _812 = (vTextureCoord.y - uData[57].y) + uData[57].w; - highp float _814 = (uData[57].y + uData[57].w) - vTextureCoord.y; - highp float _818 = min(min(_805, _807), min(_812, _814)); - highp vec4 _823 = exp((vec4(_818) - vec4(_805, _807, _812, _814)) / vec4(uData[1].y)); - highp float _824 = _823.x; - highp float _825 = _823.y; - highp float _827 = _823.z; - highp float _829 = _823.w; - highp float _830 = ((_824 + _825) + _827) + _829; - _839 = vec2(_825 - _824, _829 - _827) / vec2(_830); - _840 = (uData[1].y * log(_830)) - _818; + highp float _816 = (vTextureCoord.x - uData[57].x) + uData[57].z; + highp float _818 = (uData[57].x + uData[57].z) - vTextureCoord.x; + highp float _823 = (vTextureCoord.y - uData[57].y) + uData[57].w; + highp float _825 = (uData[57].y + uData[57].w) - vTextureCoord.y; + highp float _829 = min(min(_816, _818), min(_823, _825)); + highp vec4 _834 = exp((vec4(_829) - vec4(_816, _818, _823, _825)) / vec4(_732)); + highp float _835 = _834.x; + highp float _836 = _834.y; + highp float _838 = _834.z; + highp float _840 = _834.w; + highp float _841 = ((_835 + _836) + _838) + _840; + _850 = vec2(_836 - _835, _840 - _838) / vec2(_841); + _851 = (_732 * log(_841)) - _829; } else { - highp vec2 _739 = vTextureCoord - uData[57].xy; - highp float _741 = _739.x; - highp float _762; - if (_741 > 0.0) + highp vec2 _750 = vTextureCoord - uData[57].xy; + highp float _752 = _750.x; + highp float _773; + if (_752 > 0.0) { - highp float _761; - if (_739.y > 0.0) + highp float _772; + if (_750.y > 0.0) { - _761 = _730.z; + _772 = _741.z; } else { - _761 = _730.y; + _772 = _741.y; } - _762 = _761; + _773 = _772; } else { - highp float _753; - if (_739.y > 0.0) + highp float _764; + if (_750.y > 0.0) { - _753 = _730.w; + _764 = _741.w; } else { - _753 = _730.x; + _764 = _741.x; } - _762 = _753; + _773 = _764; } - highp vec2 _766 = (abs(_739) - uData[57].zw) + vec2(_762); - highp float _768 = (_741 < 0.0) ? (-1.0) : 1.0; - highp float _771 = (_739.y < 0.0) ? (-1.0) : 1.0; - highp float _773 = _766.x; - bool _779; - if (_773 > 0.0) + highp vec2 _777 = (abs(_750) - uData[57].zw) + vec2(_773); + highp float _779 = (_752 < 0.0) ? (-1.0) : 1.0; + highp float _782 = (_750.y < 0.0) ? (-1.0) : 1.0; + highp float _784 = _777.x; + bool _790; + if (_784 > 0.0) { - _779 = _766.y > 0.0; + _790 = _777.y > 0.0; } else { - _779 = false; + _790 = false; } - highp vec2 _793; - if (_779) + highp vec2 _804; + if (_790) { - _793 = normalize(_766) * vec2(_768, _771); + _804 = normalize(_777) * vec2(_779, _782); } else { - highp vec2 _790; - if (_773 > _766.y) + highp vec2 _801; + if (_784 > _777.y) { - _790 = vec2(_768, 0.0); + _801 = vec2(_779, 0.0); } else { - _790 = vec2(0.0, _771); + _801 = vec2(0.0, _782); } - _793 = _790; + _804 = _801; } - _839 = _793; - _840 = (min(max(_773, _766.y), 0.0) + length(max(_766, vec2(0.0)))) - _762; + _850 = _804; + _851 = (min(max(_784, _777.y), 0.0) + length(max(_777, vec2(0.0)))) - _773; } - highp vec2 _842; - highp float _845; - _842 = _839; - _845 = _840; - highp vec2 _843; - highp float _846; - int _847 = 0; + highp vec2 _853; + highp float _856; + _853 = _850; + _856 = _851; + highp vec2 _854; + highp float _857; + int _858 = 0; for (;;) { - bool _855; - if (_847 < _733) + bool _866; + if (_858 < _744) { - _855 = _847 < 4; + _866 = _858 < 4; } else { - _855 = false; + _866 = false; } - if (_855) + if (_866) { - int _857 = 14 - _847; - int _858 = 3 * _857; - int _859 = 12 + _858; - int _862 = _858 + 13; - if (uData[_862 * 1 + 0].x == 0.0) + int _868 = 14 - _858; + int _869 = 3 * _868; + int _870 = 12 + _869; + int _873 = _869 + 13; + if (uData[_873 * 1 + 0].x == 0.0) { - _843 = _842; - _846 = _845; - int _848 = _847 + 1; - _842 = _843; - _845 = _846; - _847 = _848; + _854 = _853; + _857 = _856; + int _859 = _858 + 1; + _853 = _854; + _856 = _857; + _858 = _859; continue; } - highp float _871 = clamp(uData[_862 * 1 + 0].x / uData[_862 * 1 + 0].y, 0.0, 1.0); - bool _873 = uData[_859 * 1 + 0].x < 0.5; - highp float _881; - if (_873) + highp float _882 = clamp(uData[_873 * 1 + 0].x / uData[_873 * 1 + 0].y, 0.0, 1.0); + bool _884 = uData[_870 * 1 + 0].x < 0.5; + highp float _892; + if (_884) { - _881 = vTextureCoord.y; + _892 = vTextureCoord.y; } else { - _881 = vTextureCoord.x; + _892 = vTextureCoord.x; } - highp float _889; - if (_873) + highp float _900; + if (_884) { - _889 = vTextureCoord.x; + _900 = vTextureCoord.x; } else { - _889 = vTextureCoord.y; + _900 = vTextureCoord.y; } - highp float _891 = _889 - uData[_859 * 1 + 0].y; - highp float _892 = uData[_862 * 1 + 0].x * 0.5; - highp float _895 = uData[_859 * 1 + 0].w - uData[_859 * 1 + 0].z; - highp float _896 = smoothstep(0.0, 0.60000002384185791015625, _871); - highp float _925; - highp float _926; - if (uData[_862 * 1 + 0].w > 2.5) + highp float _902 = _900 - uData[_870 * 1 + 0].y; + highp float _903 = uData[_873 * 1 + 0].x * 0.5; + highp float _906 = uData[_870 * 1 + 0].w - uData[_870 * 1 + 0].z; + highp float _907 = smoothstep(0.0, 0.60000002384185791015625, _882); + highp float _936; + highp float _937; + if (uData[_873 * 1 + 0].w > 2.5) { - highp float _916 = _881 - ((uData[_859 * 1 + 0].z + uData[_859 * 1 + 0].w) * 0.5); - _925 = (_916 < 0.0) ? 1.0 : (-1.0); - _926 = max(((_895 * 0.5) * (1.0 - _896)) - abs(_916), 0.0); + highp float _927 = _892 - ((uData[_870 * 1 + 0].z + uData[_870 * 1 + 0].w) * 0.5); + _936 = (_927 < 0.0) ? 1.0 : (-1.0); + _937 = max(((_906 * 0.5) * (1.0 - _907)) - abs(_927), 0.0); } else { - bool _902 = uData[_862 * 1 + 0].w < 1.5; - highp float _908; - if (_902) + bool _913 = uData[_873 * 1 + 0].w < 1.5; + highp float _919; + if (_913) { - _908 = _881 - uData[_859 * 1 + 0].z; + _919 = _892 - uData[_870 * 1 + 0].z; } else { - _908 = uData[_859 * 1 + 0].w - _881; + _919 = uData[_870 * 1 + 0].w - _892; } - _925 = _902 ? 1.0 : (-1.0); - _926 = max(_908 - ((_895 - _892) * _896), 0.0); + _936 = _913 ? 1.0 : (-1.0); + _937 = max(_919 - ((_906 - _903) * _907), 0.0); } - highp float _928 = length(vec2(_891, _926)); - highp float _929 = _928 - _892; - highp vec2 _944; - if (_928 > 0.0) + highp float _939 = length(vec2(_902, _937)); + highp float _940 = _939 - _903; + highp vec2 _955; + if (_939 > 0.0) { - highp vec2 _938 = vec2(-_891, (-_926) * _925) / vec2(_928); - highp vec2 _943; - if (uData[_859 * 1 + 0].x > 0.5) + highp vec2 _949 = vec2(-_902, (-_937) * _936) / vec2(_939); + highp vec2 _954; + if (uData[_870 * 1 + 0].x > 0.5) { - _943 = _938.yx; + _954 = _949.yx; } else { - _943 = _938; + _954 = _949; } - _944 = _943; + _955 = _954; } else { - _944 = vec2(0.0); + _955 = vec2(0.0); } - highp float _946 = uData[_862 * 1 + 0].z * _871; - highp vec2 _950 = max(vec2(_946 + _845, _946 - _929), vec2(0.0)); - highp float _951 = length(_950); - bool _956; - if (_946 > 0.0) + highp float _957 = uData[_873 * 1 + 0].z * _882; + highp vec2 _961 = max(vec2(_957 + _856, _957 - _940), vec2(0.0)); + highp float _962 = length(_961); + bool _967; + if (_957 > 0.0) { - _956 = _951 > 0.0; + _967 = _962 > 0.0; } else { - _956 = false; + _967 = false; } - highp vec2 _971; - if (_956) + highp vec2 _982; + if (_967) { - _971 = ((_842 * _950.x) + (_944 * _950.y)) / vec2(_951); + _982 = ((_853 * _961.x) + (_955 * _961.y)) / vec2(_962); } else { - bvec2 _962 = bvec2((-_929) > _845); - _971 = vec2(_962.x ? _944.x : _842.x, _962.y ? _944.y : _842.y); + bvec2 _973 = bvec2((-_940) > _856); + _982 = vec2(_973.x ? _955.x : _853.x, _973.y ? _955.y : _853.y); } - highp float _972 = -_929; - highp float _983; + highp float _983 = -_940; + highp float _994; do { - if (_946 == 0.0) + if (_957 == 0.0) { - _983 = max(_845, _972); + _994 = max(_856, _983); break; } - _983 = min(-_946, max(_845, _972)) + _951; + _994 = min(-_957, max(_856, _983)) + _962; break; } while(false); - _843 = _971; - _846 = _983; - int _848 = _847 + 1; - _842 = _843; - _845 = _846; - _847 = _848; + _854 = _982; + _857 = _994; + int _859 = _858 + 1; + _853 = _854; + _856 = _857; + _858 = _859; continue; } else @@ -787,68 +788,69 @@ void main() break; } } - _984 = _842; - _985 = _845; + _995 = _853; + _996 = _856; } else { - highp vec2 _719; - highp float _720; - if (_212.w < 0.5) + highp vec2 _725; + highp float _726; + if (_213.w < 0.5) { - highp float _685 = (vTextureCoord.x - _213.x) + _213.z; - highp float _687 = (_213.x + _213.z) - vTextureCoord.x; - highp float _692 = (vTextureCoord.y - _213.y) + _213.w; - highp float _694 = (_213.y + _213.w) - vTextureCoord.y; - highp float _698 = min(min(_685, _687), min(_692, _694)); - highp vec4 _703 = exp((vec4(_698) - vec4(_685, _687, _692, _694)) / vec4(uData[1].y)); - highp float _704 = _703.x; - highp float _705 = _703.y; - highp float _707 = _703.z; - highp float _709 = _703.w; - highp float _710 = ((_704 + _705) + _707) + _709; - _719 = vec2(_705 - _704, _709 - _707) / vec2(_710); - _720 = (uData[1].y * log(_710)) - _698; + highp float _686 = uData[1].y * clamp(_218 / (3.0 * uData[1].z), 9.9999997473787516355514526367188e-05, 1.0); + highp float _691 = (vTextureCoord.x - _214.x) + _214.z; + highp float _693 = (_214.x + _214.z) - vTextureCoord.x; + highp float _698 = (vTextureCoord.y - _214.y) + _214.w; + highp float _700 = (_214.y + _214.w) - vTextureCoord.y; + highp float _704 = min(min(_691, _693), min(_698, _700)); + highp vec4 _709 = exp((vec4(_704) - vec4(_691, _693, _698, _700)) / vec4(_686)); + highp float _710 = _709.x; + highp float _711 = _709.y; + highp float _713 = _709.z; + highp float _715 = _709.w; + highp float _716 = ((_710 + _711) + _713) + _715; + _725 = vec2(_711 - _710, _715 - _713) / vec2(_716); + _726 = (_686 * log(_716)) - _704; } else { - _719 = _504; - _720 = _505; + _725 = _505; + _726 = _506; } - _984 = _719; - _985 = _720; + _995 = _725; + _996 = _726; } - bool _986 = _985 < _164; - if (_986) + bool _997 = _996 < _165; + if (_997) { - _159 = _160; - _163 = _164; + _160 = _161; + _164 = _165; } else { - bool _990 = _985 < _162; - bvec2 _991 = bvec2(_990); - _159 = vec2(_991.x ? _984.x : _158.x, _991.y ? _984.y : _158.y); - _163 = _990 ? _985 : _162; + bool _1001 = _996 < _163; + bvec2 _1002 = bvec2(_1001); + _160 = vec2(_1002.x ? _995.x : _159.x, _1002.y ? _995.y : _159.y); + _164 = _1001 ? _996 : _163; } - bvec2 _994 = bvec2(_986); - _161 = vec2(_994.x ? _984.x : _160.x, _994.y ? _984.y : _160.y); - _165 = _986 ? _985 : _164; - _147 = _148; - _150 = _151; - _152 = _153; - _154 = _155; - _156 = _157; - _158 = _159; - _160 = _161; - _162 = _163; - _164 = _165; - _166 = _167; - _168 = _169; - _170 = _171; - _172 = _173; - _174 = _175; - _176++; + bvec2 _1005 = bvec2(_997); + _162 = vec2(_1005.x ? _995.x : _161.x, _1005.y ? _995.y : _161.y); + _166 = _997 ? _996 : _165; + _148 = _149; + _151 = _152; + _153 = _154; + _155 = _156; + _157 = _158; + _159 = _160; + _161 = _162; + _163 = _164; + _165 = _166; + _167 = _168; + _169 = _170; + _171 = _172; + _173 = _174; + _175 = _176; + _177++; continue; } else @@ -856,424 +858,424 @@ void main() break; } } - bool _1004; + bool _1015; if (uData[59].w > 2.5) { - _1004 = uData[59].w < 3.5; + _1015 = uData[59].w < 3.5; } else { - _1004 = false; + _1015 = false; } - bool _1005 = uData[59].w > 1.5; - bool _1009; - if (_1005) + bool _1016 = uData[59].w > 1.5; + bool _1020; + if (_1016) { - _1009 = uData[59].w < 3.5; + _1020 = uData[59].w < 3.5; } else { - _1009 = false; + _1020 = false; } - highp float _1082; - highp vec2 _1083; - if (_1009) + highp float _1093; + highp vec2 _1094; + if (_1020) { - highp vec2 _1015 = vTextureCoord - uData[57].xy; - highp vec4 _1021 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); - highp float _1022 = _1015.x; - highp float _1043; - if (_1022 > 0.0) + highp vec2 _1026 = vTextureCoord - uData[57].xy; + highp vec4 _1032 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); + highp float _1033 = _1026.x; + highp float _1054; + if (_1033 > 0.0) { - highp float _1042; - if (_1015.y > 0.0) + highp float _1053; + if (_1026.y > 0.0) { - _1042 = _1021.z; + _1053 = _1032.z; } else { - _1042 = _1021.y; + _1053 = _1032.y; } - _1043 = _1042; + _1054 = _1053; } else { - highp float _1034; - if (_1015.y > 0.0) + highp float _1045; + if (_1026.y > 0.0) { - _1034 = _1021.w; + _1045 = _1032.w; } else { - _1034 = _1021.x; + _1045 = _1032.x; } - _1043 = _1034; + _1054 = _1045; } - highp vec2 _1047 = (abs(_1015) - uData[57].zw) + vec2(_1043); - highp float _1049 = (_1022 < 0.0) ? (-1.0) : 1.0; - highp float _1052 = (_1015.y < 0.0) ? (-1.0) : 1.0; - highp float _1054 = _1047.x; - bool _1060; - if (_1054 > 0.0) + highp vec2 _1058 = (abs(_1026) - uData[57].zw) + vec2(_1054); + highp float _1060 = (_1033 < 0.0) ? (-1.0) : 1.0; + highp float _1063 = (_1026.y < 0.0) ? (-1.0) : 1.0; + highp float _1065 = _1058.x; + bool _1071; + if (_1065 > 0.0) { - _1060 = _1047.y > 0.0; + _1071 = _1058.y > 0.0; } else { - _1060 = false; + _1071 = false; } - highp vec2 _1074; - if (_1060) + highp vec2 _1085; + if (_1071) { - _1074 = normalize(_1047) * vec2(_1049, _1052); + _1085 = normalize(_1058) * vec2(_1060, _1063); } else { - highp vec2 _1071; - if (_1054 > _1047.y) + highp vec2 _1082; + if (_1065 > _1058.y) { - _1071 = vec2(_1049, 0.0); + _1082 = vec2(_1060, 0.0); } else { - _1071 = vec2(0.0, _1052); + _1082 = vec2(0.0, _1063); } - _1074 = _1071; + _1085 = _1082; } - _1082 = (min(max(_1054, _1047.y), 0.0) + length(max(_1047, vec2(0.0)))) - _1043; - _1083 = _1074; + _1093 = (min(max(_1065, _1058.y), 0.0) + length(max(_1058, vec2(0.0)))) - _1054; + _1094 = _1085; } else { - _1082 = -1000000000.0; - _1083 = vec2(0.0); + _1093 = -1000000000.0; + _1094 = vec2(0.0); } - bool _1087; - if (_1005) + bool _1098; + if (_1016) { - _1087 = uData[59].w < 3.5; + _1098 = uData[59].w < 3.5; } else { - _1087 = false; + _1098 = false; } - bool _1091; - if (_1087) + bool _1102; + if (_1098) { - _1091 = !_1004; + _1102 = !_1015; } else { - _1091 = false; - } - highp vec4 _1136; - highp vec4 _1137; - highp vec2 _1138; - highp vec2 _1139; - highp float _1140; - highp vec2 _1141; - highp vec2 _1142; - highp vec2 _1143; - highp vec2 _1144; - highp float _1145; - highp float _1146; - highp float _1147; - highp float _1148; - if (_1091) - { - highp float _1094 = 1.0 - _1082; - bool _1095 = _1094 < _172; - highp vec4 _1111; - highp vec2 _1112; - highp vec2 _1113; - highp float _1114; - highp vec2 _1115; - highp float _1116; - if (_1095) + _1102 = false; + } + highp vec4 _1147; + highp vec4 _1148; + highp vec2 _1149; + highp vec2 _1150; + highp float _1151; + highp vec2 _1152; + highp vec2 _1153; + highp vec2 _1154; + highp vec2 _1155; + highp float _1156; + highp float _1157; + highp float _1158; + highp float _1159; + if (_1102) + { + highp float _1105 = 1.0 - _1093; + bool _1106 = _1105 < _173; + highp vec4 _1122; + highp vec2 _1123; + highp vec2 _1124; + highp float _1125; + highp vec2 _1126; + highp float _1127; + if (_1106) { - _1111 = _150; - _1112 = _168; - _1113 = uData[57].yw; - _1114 = _174; - _1115 = _166; - _1116 = _172; + _1122 = _151; + _1123 = _169; + _1124 = uData[57].yw; + _1125 = _175; + _1126 = _167; + _1127 = _173; } else { - bool _1099 = _1094 < _170; - highp vec2 _1103; - if (_1099) + bool _1110 = _1105 < _171; + highp vec2 _1114; + if (_1110) { - _1103 = uData[57].yw; + _1114 = uData[57].yw; } else { - _1103 = _152; + _1114 = _153; } - bvec4 _1104 = bvec4(_1099); - bvec2 _1107 = bvec2(_1099); - _1111 = vec4(_1104.x ? uData[59].x : _147.x, _1104.y ? uData[59].y : _147.y, _1104.z ? uData[59].z : _147.z, _1104.w ? uData[59].w : _147.w); - _1112 = _1103; - _1113 = _168; - _1114 = _1099 ? _174 : _154; - _1115 = vec2(_1107.x ? vec2(0.0).x : _156.x, _1107.y ? vec2(0.0).y : _156.y); - _1116 = _1099 ? _1094 : _170; + bvec4 _1115 = bvec4(_1110); + bvec2 _1118 = bvec2(_1110); + _1122 = vec4(_1115.x ? uData[59].x : _148.x, _1115.y ? uData[59].y : _148.y, _1115.z ? uData[59].z : _148.z, _1115.w ? uData[59].w : _148.w); + _1123 = _1114; + _1124 = _169; + _1125 = _1110 ? _175 : _155; + _1126 = vec2(_1118.x ? vec2(0.0).x : _157.x, _1118.y ? vec2(0.0).y : _157.y); + _1127 = _1110 ? _1105 : _171; } - bvec4 _1117 = bvec4(_1095); - bvec2 _1119 = bvec2(_1095); - highp vec2 _1122 = -_1083; - bool _1123 = _1094 < _164; - highp vec2 _1131; - highp float _1132; - if (_1123) + bvec4 _1128 = bvec4(_1106); + bvec2 _1130 = bvec2(_1106); + highp vec2 _1133 = -_1094; + bool _1134 = _1105 < _165; + highp vec2 _1142; + highp float _1143; + if (_1134) { - _1131 = _160; - _1132 = _164; + _1142 = _161; + _1143 = _165; } else { - bool _1127 = _1094 < _162; - bvec2 _1128 = bvec2(_1127); - _1131 = vec2(_1128.x ? _1122.x : _158.x, _1128.y ? _1122.y : _158.y); - _1132 = _1127 ? _1094 : _162; + bool _1138 = _1105 < _163; + bvec2 _1139 = bvec2(_1138); + _1142 = vec2(_1139.x ? _1133.x : _159.x, _1139.y ? _1133.y : _159.y); + _1143 = _1138 ? _1105 : _163; } - bvec2 _1133 = bvec2(_1123); - _1136 = _1111; - _1137 = vec4(_1117.x ? uData[59].x : _150.x, _1117.y ? uData[59].y : _150.y, _1117.z ? uData[59].z : _150.z, _1117.w ? uData[59].w : _150.w); - _1138 = _1112; - _1139 = _1113; - _1140 = _1114; - _1141 = _1115; - _1142 = vec2(_1119.x ? vec2(0.0).x : _166.x, _1119.y ? vec2(0.0).y : _166.y); - _1143 = _1131; - _1144 = vec2(_1133.x ? _1122.x : _160.x, _1133.y ? _1122.y : _160.y); - _1145 = _1132; - _1146 = _1123 ? _1094 : _164; - _1147 = _1116; - _1148 = _1095 ? _1094 : _172; + bvec2 _1144 = bvec2(_1134); + _1147 = _1122; + _1148 = vec4(_1128.x ? uData[59].x : _151.x, _1128.y ? uData[59].y : _151.y, _1128.z ? uData[59].z : _151.z, _1128.w ? uData[59].w : _151.w); + _1149 = _1123; + _1150 = _1124; + _1151 = _1125; + _1152 = _1126; + _1153 = vec2(_1130.x ? vec2(0.0).x : _167.x, _1130.y ? vec2(0.0).y : _167.y); + _1154 = _1142; + _1155 = vec2(_1144.x ? _1133.x : _161.x, _1144.y ? _1133.y : _161.y); + _1156 = _1143; + _1157 = _1134 ? _1105 : _165; + _1158 = _1127; + _1159 = _1106 ? _1105 : _173; } else { - _1136 = _147; - _1137 = _150; - _1138 = _152; - _1139 = _168; - _1140 = _154; - _1141 = _156; - _1142 = _166; - _1143 = _158; - _1144 = _160; - _1145 = _162; - _1146 = _164; - _1147 = _170; - _1148 = _172; - } - highp float _1150 = max(uData[1].x, 9.9999997473787516355514526367188e-05); - highp float _1155 = max(_1150 - abs(_1148 - _1147), 0.0) / _1150; - highp float _1156 = _1155 * _1155; - highp float _1157 = _1156 * 0.5; - highp float _1162; - if (_1147 < _1148) - { - _1162 = 1.0 - _1157; + _1147 = _148; + _1148 = _151; + _1149 = _153; + _1150 = _169; + _1151 = _155; + _1152 = _157; + _1153 = _167; + _1154 = _159; + _1155 = _161; + _1156 = _163; + _1157 = _165; + _1158 = _171; + _1159 = _173; + } + highp float _1161 = max(uData[1].x, 9.9999997473787516355514526367188e-05); + highp float _1166 = max(_1161 - abs(_1159 - _1158), 0.0) / _1161; + highp float _1167 = _1166 * _1166; + highp float _1168 = _1167 * 0.5; + highp float _1173; + if (_1158 < _1159) + { + _1173 = 1.0 - _1168; } else { - _1162 = _1157; + _1173 = _1168; } - highp float _1166 = min(_1148, _1147) - ((_1156 * _1150) * 0.25); - highp float _1171 = max(_1150 - abs(_1146 - _1145), 0.0) / _1150; - highp float _1172 = _1171 * _1171; - highp float _1173 = _1172 * 0.5; - highp float _1178; - if (_1145 < _1146) + highp float _1177 = min(_1159, _1158) - ((_1167 * _1161) * 0.25); + highp float _1182 = max(_1161 - abs(_1157 - _1156), 0.0) / _1161; + highp float _1183 = _1182 * _1182; + highp float _1184 = _1183 * 0.5; + highp float _1189; + if (_1156 < _1157) { - _1178 = 1.0 - _1173; + _1189 = 1.0 - _1184; } else { - _1178 = _1173; + _1189 = _1184; } - highp float _1182 = min(_1146, _1145) - ((_1172 * _1150) * 0.25); - highp float _1186; - if (_1004) + highp float _1193 = min(_1157, _1156) - ((_1183 * _1161) * 0.25); + highp float _1197; + if (_1015) { - _1186 = max(_1166, _1082); + _1197 = max(_1177, _1093); } else { - _1186 = _1166; + _1197 = _1177; } - highp float _1188 = uData[2].z * 1.25; - bool _1189 = _1188 <= 1.25; - highp float _1194 = clamp(0.5 - (max(_1186, _1082) / (_1189 ? 1.39999997615814208984375 : 1.0)), 0.0, 1.0); - bool _1200; + highp float _1199 = uData[2].z * 1.25; + bool _1200 = _1199 <= 1.25; + highp float _1205 = clamp(0.5 - (max(_1197, _1093) / (_1200 ? 1.39999997615814208984375 : 1.0)), 0.0, 1.0); + bool _1211; if (uData[11].w > 0.0) { - _1200 = _1194 < 1.0; + _1211 = _1205 < 1.0; } else { - _1200 = false; + _1211 = false; } - highp float _1458; - if (_1200) + highp float _1469; + if (_1211) { - highp vec2 _1204 = vTextureCoord - uData[11].yz; - highp float _1206; - highp float _1209; - _1206 = 1000000000.0; - _1209 = 1000000000.0; - highp float _1210; - highp float _1207; - int _1211 = _114; + highp vec2 _1215 = vTextureCoord - uData[11].yz; + highp float _1217; + highp float _1220; + _1217 = 1000000000.0; + _1220 = 1000000000.0; + highp float _1221; + highp float _1218; + int _1222 = _115; for (;;) { - bool _1219; - if (_1211 < _180) + bool _1230; + if (_1222 < _181) { - _1219 = _1211 < 16; + _1230 = _1222 < 16; } else { - _1219 = false; + _1230 = false; } - if (_1219) + if (_1230) { - int _1221 = 3 * _1211; - int _1222 = 12 + _1221; - int _1228 = _1221 + 14; - bool _1236; - if (uData[_1228 * 1 + 0].w >= (-0.5)) + int _1232 = 3 * _1222; + int _1233 = 12 + _1232; + int _1239 = _1232 + 14; + bool _1247; + if (uData[_1239 * 1 + 0].w >= (-0.5)) { - _1236 = uData[_1228 * 1 + 0].w > 3.5; + _1247 = uData[_1239 * 1 + 0].w > 3.5; } else { - _1236 = true; + _1247 = true; } - highp float _1427; - if (_1236) + highp float _1438; + if (_1247) { - highp vec4 _1288 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); - int _1291 = int(uData[59].z); - highp vec2 _1293 = _1204 - uData[57].xy; - highp float _1316; - if (_1293.x > 0.0) + highp vec4 _1299 = min(uData[58], vec4(min(uData[57].z, uData[57].w))); + int _1302 = int(uData[59].z); + highp vec2 _1304 = _1215 - uData[57].xy; + highp float _1327; + if (_1304.x > 0.0) { - highp float _1315; - if (_1293.y > 0.0) + highp float _1326; + if (_1304.y > 0.0) { - _1315 = _1288.z; + _1326 = _1299.z; } else { - _1315 = _1288.y; + _1326 = _1299.y; } - _1316 = _1315; + _1327 = _1326; } else { - highp float _1307; - if (_1293.y > 0.0) + highp float _1318; + if (_1304.y > 0.0) { - _1307 = _1288.w; + _1318 = _1299.w; } else { - _1307 = _1288.x; + _1318 = _1299.x; } - _1316 = _1307; + _1327 = _1318; } - highp vec2 _1320 = (abs(_1293) - uData[57].zw) + vec2(_1316); - highp float _1330; - _1330 = (min(max(_1320.x, _1320.y), 0.0) + length(max(_1320, vec2(0.0)))) - _1316; - highp float _1331; - int _1333 = 0; + highp vec2 _1331 = (abs(_1304) - uData[57].zw) + vec2(_1327); + highp float _1341; + _1341 = (min(max(_1331.x, _1331.y), 0.0) + length(max(_1331, vec2(0.0)))) - _1327; + highp float _1342; + int _1344 = 0; for (;;) { - bool _1341; - if (_1333 < _1291) + bool _1352; + if (_1344 < _1302) { - _1341 = _1333 < 4; + _1352 = _1344 < 4; } else { - _1341 = false; + _1352 = false; } - if (_1341) + if (_1352) { - int _1343 = 14 - _1333; - int _1344 = 3 * _1343; - int _1345 = 12 + _1344; - int _1348 = _1344 + 13; - if (uData[_1348 * 1 + 0].x == 0.0) + int _1354 = 14 - _1344; + int _1355 = 3 * _1354; + int _1356 = 12 + _1355; + int _1359 = _1355 + 13; + if (uData[_1359 * 1 + 0].x == 0.0) { - _1331 = _1330; - int _1334 = _1333 + 1; - _1330 = _1331; - _1333 = _1334; + _1342 = _1341; + int _1345 = _1344 + 1; + _1341 = _1342; + _1344 = _1345; continue; } - highp float _1357 = clamp(uData[_1348 * 1 + 0].x / uData[_1348 * 1 + 0].y, 0.0, 1.0); - bool _1359 = uData[_1345 * 1 + 0].x < 0.5; - highp float _1365; - if (_1359) + highp float _1368 = clamp(uData[_1359 * 1 + 0].x / uData[_1359 * 1 + 0].y, 0.0, 1.0); + bool _1370 = uData[_1356 * 1 + 0].x < 0.5; + highp float _1376; + if (_1370) { - _1365 = _1204.y; + _1376 = _1215.y; } else { - _1365 = _1204.x; + _1376 = _1215.x; } - highp float _1371; - if (_1359) + highp float _1382; + if (_1370) { - _1371 = _1204.x; + _1382 = _1215.x; } else { - _1371 = _1204.y; + _1382 = _1215.y; } - highp float _1374 = uData[_1348 * 1 + 0].x * 0.5; - highp float _1377 = uData[_1345 * 1 + 0].w - uData[_1345 * 1 + 0].z; - highp float _1378 = smoothstep(0.0, 0.60000002384185791015625, _1357); - highp float _1404; - if (uData[_1348 * 1 + 0].w > 2.5) + highp float _1385 = uData[_1359 * 1 + 0].x * 0.5; + highp float _1388 = uData[_1356 * 1 + 0].w - uData[_1356 * 1 + 0].z; + highp float _1389 = smoothstep(0.0, 0.60000002384185791015625, _1368); + highp float _1415; + if (uData[_1359 * 1 + 0].w > 2.5) { - _1404 = max(((_1377 * 0.5) * (1.0 - _1378)) - abs(_1365 - ((uData[_1345 * 1 + 0].z + uData[_1345 * 1 + 0].w) * 0.5)), 0.0); + _1415 = max(((_1388 * 0.5) * (1.0 - _1389)) - abs(_1376 - ((uData[_1356 * 1 + 0].z + uData[_1356 * 1 + 0].w) * 0.5)), 0.0); } else { - highp float _1390; - if (uData[_1348 * 1 + 0].w < 1.5) + highp float _1401; + if (uData[_1359 * 1 + 0].w < 1.5) { - _1390 = _1365 - uData[_1345 * 1 + 0].z; + _1401 = _1376 - uData[_1356 * 1 + 0].z; } else { - _1390 = uData[_1345 * 1 + 0].w - _1365; + _1401 = uData[_1356 * 1 + 0].w - _1376; } - _1404 = max(_1390 - ((_1377 - _1374) * _1378), 0.0); + _1415 = max(_1401 - ((_1388 - _1385) * _1389), 0.0); } - highp float _1407 = length(vec2(_1371 - uData[_1345 * 1 + 0].y, _1404)) - _1374; - highp float _1409 = uData[_1348 * 1 + 0].z * _1357; - highp float _1410 = -_1407; - highp float _1426; + highp float _1418 = length(vec2(_1382 - uData[_1356 * 1 + 0].y, _1415)) - _1385; + highp float _1420 = uData[_1359 * 1 + 0].z * _1368; + highp float _1421 = -_1418; + highp float _1437; do { - if (_1409 == 0.0) + if (_1420 == 0.0) { - _1426 = max(_1330, _1410); + _1437 = max(_1341, _1421); break; } - _1426 = min(-_1409, max(_1330, _1410)) + length(max(vec2(_1409 + _1330, _1409 - _1407), vec2(0.0))); + _1437 = min(-_1420, max(_1341, _1421)) + length(max(vec2(_1420 + _1341, _1420 - _1418), vec2(0.0))); break; } while(false); - _1331 = _1426; - int _1334 = _1333 + 1; - _1330 = _1331; - _1333 = _1334; + _1342 = _1437; + int _1345 = _1344 + 1; + _1341 = _1342; + _1344 = _1345; continue; } else @@ -1281,55 +1283,55 @@ void main() break; } } - _1427 = _1330; + _1438 = _1341; } else { - highp vec2 _1241 = _1204 - uData[_1222 * 1 + 0].xy; - highp vec4 _1247 = min(uData[(_1221 + 13) * 1 + 0], vec4(min(uData[_1222 * 1 + 0].z, uData[_1222 * 1 + 0].w))); - highp float _1269; - if (_1241.x > 0.0) + highp vec2 _1252 = _1215 - uData[_1233 * 1 + 0].xy; + highp vec4 _1258 = min(uData[(_1232 + 13) * 1 + 0], vec4(min(uData[_1233 * 1 + 0].z, uData[_1233 * 1 + 0].w))); + highp float _1280; + if (_1252.x > 0.0) { - highp float _1268; - if (_1241.y > 0.0) + highp float _1279; + if (_1252.y > 0.0) { - _1268 = _1247.z; + _1279 = _1258.z; } else { - _1268 = _1247.y; + _1279 = _1258.y; } - _1269 = _1268; + _1280 = _1279; } else { - highp float _1260; - if (_1241.y > 0.0) + highp float _1271; + if (_1252.y > 0.0) { - _1260 = _1247.w; + _1271 = _1258.w; } else { - _1260 = _1247.x; + _1271 = _1258.x; } - _1269 = _1260; + _1280 = _1271; } - highp vec2 _1273 = (abs(_1241) - uData[_1222 * 1 + 0].zw) + vec2(_1269); - _1427 = (min(max(_1273.x, _1273.y), 0.0) + length(max(_1273, vec2(0.0)))) - _1269; + highp vec2 _1284 = (abs(_1252) - uData[_1233 * 1 + 0].zw) + vec2(_1280); + _1438 = (min(max(_1284.x, _1284.y), 0.0) + length(max(_1284, vec2(0.0)))) - _1280; } - bool _1428 = _1427 < _1209; - if (_1428) + bool _1439 = _1438 < _1220; + if (_1439) { - _1207 = _1209; + _1218 = _1220; } else { - _1207 = (_1427 < _1206) ? _1427 : _1206; + _1218 = (_1438 < _1217) ? _1438 : _1217; } - _1210 = _1428 ? _1427 : _1209; - _1206 = _1207; - _1209 = _1210; - _1211++; + _1221 = _1439 ? _1438 : _1220; + _1217 = _1218; + _1220 = _1221; + _1222++; continue; } else @@ -1337,401 +1339,403 @@ void main() break; } } - highp float _1436 = max(uData[1].x, 9.9999997473787516355514526367188e-05); - highp float _1441 = max(_1436 - abs(_1209 - _1206), 0.0) / _1436; - highp float _1450 = 1.0 - clamp((min(_1209, _1206) - (((_1441 * _1441) * _1436) * 0.25)) / uData[11].x, 0.0, 1.0); - _1458 = ((uData[11].w * _1450) * _1450) * clamp(mix(_1137.y, _1136.y, _1162), 0.0, 1.0); + highp float _1447 = max(uData[1].x, 9.9999997473787516355514526367188e-05); + highp float _1452 = max(_1447 - abs(_1220 - _1217), 0.0) / _1447; + highp float _1461 = 1.0 - clamp((min(_1220, _1217) - (((_1452 * _1452) * _1447) * 0.25)) / uData[11].x, 0.0, 1.0); + _1469 = ((uData[11].w * _1461) * _1461) * clamp(mix(_1148.y, _1147.y, _1173), 0.0, 1.0); } else { - _1458 = 0.0; + _1469 = 0.0; } - bool _1459 = _1194 <= 0.0; - bool _1463; - if (_1459) + bool _1470 = _1205 <= 0.0; + bool _1474; + if (_1470) { - _1463 = _1458 <= 0.00200000009499490261077880859375; + _1474 = _1469 <= 0.00200000009499490261077880859375; } else { - _1463 = false; + _1474 = false; } - if (_1463) + if (_1474) { discard; } if (vColor.x < 0.5) { - _2007 = vec4(0.0, 0.0, 0.0, _1194 + ((1.0 - _1194) * _1458)); + _2027 = vec4(0.0, 0.0, 0.0, _1205 + ((1.0 - _1205) * _1469)); break; } - if (_1459) + if (_1470) { discard; } - highp vec4 _1478 = mix(_1137, _1136, vec4(_1162)); - highp vec2 _1480 = mix(_1144, _1143, vec2(_1178)); - bool _1484; - if (_1004) + highp vec4 _1489 = mix(_1148, _1147, vec4(_1173)); + highp vec2 _1491 = mix(_1155, _1154, vec2(_1189)); + bool _1495; + if (_1015) { - _1484 = _1082 > _1182; + _1495 = _1093 > _1193; } else { - _1484 = false; - } - bvec2 _1486 = bvec2(_1484); - highp vec2 _1487 = vec2(_1486.x ? _1083.x : _1480.x, _1486.y ? _1083.y : _1480.y); - highp vec2 _1488 = vec2(_1162); - highp vec2 _1492 = mix(_1142, _1141, _1488) * min(length(_1487), 1.0); - highp float _1494 = max(0.0, -(_1484 ? _1082 : _1182)); - highp float _1495 = -_1494; - highp float _1498 = exp(_1495 / uData[1].z); - highp float _1504 = _1478.y; - highp float _1538; - highp float _1539; - highp vec2 _1540; - if (_145) - { - highp float _1522 = max(min(uData[5].y * mix(_174, _1140, _1162), uData[6].w), 1.0); - highp float _1525 = clamp(1.0 - (_1494 / _1522), 0.0, 1.0); - highp float _1530 = (((uData[5].z * _1522) * _1504) * _1525) * _1525; - _1538 = _1525; - _1539 = _1530; - _1540 = clamp(((vTextureCoord - (_1487 * _1530)) - uData[0].xy) * uData[0].zw, vec2(0.0), vec2(1.0)); + _1495 = false; + } + bvec2 _1497 = bvec2(_1495); + highp vec2 _1498 = vec2(_1497.x ? _1094.x : _1491.x, _1497.y ? _1094.y : _1491.y); + highp vec2 _1499 = vec2(_1173); + highp vec2 _1503 = mix(_1153, _1152, _1499) * min(length(_1498), 1.0); + highp float _1505 = max(0.0, -(_1495 ? _1093 : _1193)); + highp float _1506 = mix(_175, _1151, _1173); + highp float _1510 = clamp(_1506 / (3.0 * uData[1].z), 9.9999997473787516355514526367188e-05, 1.0); + highp float _1511 = -_1505; + highp float _1514 = exp(_1511 / (uData[1].z * _1510)); + highp float _1524 = _1489.y; + highp float _1558; + highp float _1559; + highp vec2 _1560; + if (_146) + { + highp float _1542 = max(min(uData[5].y * _1506, uData[6].w), 1.0); + highp float _1545 = clamp(1.0 - (_1505 / _1542), 0.0, 1.0); + highp float _1550 = (((uData[5].z * _1542) * _1524) * _1545) * _1545; + _1558 = _1545; + _1559 = _1550; + _1560 = clamp(((vTextureCoord - (_1498 * _1550)) - uData[0].xy) * uData[0].zw, vec2(0.0), vec2(1.0)); } else { - _1538 = 0.0; - _1539 = 0.0; - _1540 = clamp(((vTextureCoord + (_1487 * ((uData[2].x * _1504) * _1498))) - uData[0].xy) * uData[0].zw, vec2(0.0), vec2(1.0)); + _1558 = 0.0; + _1559 = 0.0; + _1560 = clamp(((vTextureCoord + (_1498 * (((uData[2].x * _1510) * _1524) * _1514))) - uData[0].xy) * uData[0].zw, vec2(0.0), vec2(1.0)); } - highp vec4 _1544 = textureLod(uSampler, _1540, 0.0); - bool _1546 = uData[4].w > 0.5; - highp vec4 _1554; - if (_1546) + highp vec4 _1564 = textureLod(uSampler, _1560, 0.0); + bool _1566 = uData[4].w > 0.5; + highp vec4 _1574; + if (_1566) { - _1554 = textureLod(uTex1, _1540, 0.0); + _1574 = textureLod(uTex1, _1560, 0.0); } else { - _1554 = _1544; + _1574 = _1564; } - bool _1559; - if (_145) + bool _1579; + if (_146) { - _1559 = uData[6].y > 0.0; + _1579 = uData[6].y > 0.0; } else { - _1559 = false; + _1579 = false; } - bool _1563; - if (_1559) + bool _1583; + if (_1579) { - _1563 = _1539 > 0.5; + _1583 = _1559 > 0.5; } else { - _1563 = false; - } - highp vec4 _1624; - highp vec4 _1625; - if (_1563) - { - highp vec2 _1571 = (_1487 * ((_1539 * 0.039999999105930328369140625) * uData[6].y)) * uData[0].zw; - highp vec2 _1573 = clamp(_1540 + _1571, vec2(0.0), vec2(1.0)); - highp vec2 _1575 = clamp(_1540 - _1571, vec2(0.0), vec2(1.0)); - highp vec4 _1579 = textureLod(uSampler, _1573, 0.0); - highp float _1584 = _1544.w; - highp float _1585 = (_1579.x / max(_1579.w, 9.9999997473787516355514526367188e-05)) * _1584; - highp vec4 _1586 = _1544; - _1586.x = _1585; - highp vec4 _1590 = textureLod(uSampler, _1575, 0.0); - highp float _1595 = (_1590.z / max(_1590.w, 9.9999997473787516355514526367188e-05)) * _1584; - _1586.z = _1595; - highp vec4 _1623; - if (_1546) + _1583 = false; + } + highp vec4 _1644; + highp vec4 _1645; + if (_1583) + { + highp vec2 _1591 = (_1498 * ((_1559 * 0.039999999105930328369140625) * uData[6].y)) * uData[0].zw; + highp vec2 _1593 = clamp(_1560 + _1591, vec2(0.0), vec2(1.0)); + highp vec2 _1595 = clamp(_1560 - _1591, vec2(0.0), vec2(1.0)); + highp vec4 _1599 = textureLod(uSampler, _1593, 0.0); + highp float _1604 = _1564.w; + highp float _1605 = (_1599.x / max(_1599.w, 9.9999997473787516355514526367188e-05)) * _1604; + highp vec4 _1606 = _1564; + _1606.x = _1605; + highp vec4 _1610 = textureLod(uSampler, _1595, 0.0); + highp float _1615 = (_1610.z / max(_1610.w, 9.9999997473787516355514526367188e-05)) * _1604; + _1606.z = _1615; + highp vec4 _1643; + if (_1566) { - highp vec4 _1605 = textureLod(uTex1, _1573, 0.0); - highp vec4 _1612 = _1554; - _1612.x = (_1605.x / max(_1605.w, 9.9999997473787516355514526367188e-05)) * _1554.w; - highp vec4 _1616 = textureLod(uTex1, _1575, 0.0); - _1612.z = (_1616.z / max(_1616.w, 9.9999997473787516355514526367188e-05)) * _1554.w; - _1623 = _1612; + highp vec4 _1625 = textureLod(uTex1, _1593, 0.0); + highp vec4 _1632 = _1574; + _1632.x = (_1625.x / max(_1625.w, 9.9999997473787516355514526367188e-05)) * _1574.w; + highp vec4 _1636 = textureLod(uTex1, _1595, 0.0); + _1632.z = (_1636.z / max(_1636.w, 9.9999997473787516355514526367188e-05)) * _1574.w; + _1643 = _1632; } else { - highp vec4 _1600 = _1554; - _1600.x = _1585; - _1600.z = _1595; - _1623 = _1600; + highp vec4 _1620 = _1574; + _1620.x = _1605; + _1620.z = _1615; + _1643 = _1620; } - _1624 = _1623; - _1625 = _1586; + _1644 = _1643; + _1645 = _1606; } else { - _1624 = _1554; - _1625 = _1544; + _1644 = _1574; + _1645 = _1564; } - bool _1627 = uData[4].x > 1.5; - highp float _1641; - if (_1627) + bool _1647 = uData[4].x > 1.5; + highp float _1661; + if (_1647) { - _1641 = uData[3].w; + _1661 = uData[3].w; } else { - highp float _1639; + highp float _1659; if ((uData[6].x - 2.0 * trunc(uData[6].x / 2.0)) > 0.5) { - _1639 = 1.0; + _1659 = 1.0; } else { - _1639 = _1625.w; + _1659 = _1645.w; } - _1641 = _1639; + _1661 = _1659; } - highp vec4 _1650 = vec4(_1625.xyz / vec3(max(_1625.w, 9.9999997473787516355514526367188e-05)), 1.0); - highp vec4 _1659 = vec4(_1624.xyz / vec3(max(_1624.w, 9.9999997473787516355514526367188e-05)), 1.0); - highp float _1666; - if (_1627) + highp vec4 _1670 = vec4(_1645.xyz / vec3(max(_1645.w, 9.9999997473787516355514526367188e-05)), 1.0); + highp vec4 _1679 = vec4(_1644.xyz / vec3(max(_1644.w, 9.9999997473787516355514526367188e-05)), 1.0); + highp float _1686; + if (_1647) { - _1666 = 1.0; + _1686 = 1.0; } else { - _1666 = (uData[4].z > 0.5) ? uData[4].x : 0.0; + _1686 = (uData[4].z > 0.5) ? uData[4].x : 0.0; } - bool _1670; - if (_145) + bool _1690; + if (_146) { - _1670 = !_1627; + _1690 = !_1647; } else { - _1670 = false; + _1690 = false; } - highp float _1679; - if (_1670) + highp float _1699; + if (_1690) { - _1679 = _1666 * (1.0 - ((_1538 * _1538) * (1.0 - smoothstep(0.800000011920928955078125, 1.0, _1666)))); + _1699 = _1686 * (1.0 - ((_1558 * _1558) * (1.0 - smoothstep(0.800000011920928955078125, 1.0, _1686)))); } else { - _1679 = _1666; + _1699 = _1686; } - highp float _1682 = 1.0 - _1679; - highp float _1690; - if (_145) + highp float _1702 = 1.0 - _1699; + highp float _1710; + if (_146) { - _1690 = _1538; + _1710 = _1558; } else { - _1690 = _1498 * _1498; + _1710 = _1514 * _1514; } - highp float _1693 = clamp(((uData[2].y * _1504) * _1690) * _1682, 0.0, 1.0); - highp vec4 _1699 = ((_1659 * _1693) + ((mix(_1659, _1650, vec4(clamp(_1478.x, 0.0, 1.0))) * _1682) * (1.0 - _1693))) + (uData[3] * _1679); - highp vec4 _1742; - if (_1627) + highp float _1713 = clamp(((uData[2].y * _1524) * _1710) * _1702, 0.0, 1.0); + highp vec4 _1719 = ((_1679 * _1713) + ((mix(_1679, _1670, vec4(clamp(_1489.x, 0.0, 1.0))) * _1702) * (1.0 - _1713))) + (uData[3] * _1699); + highp vec4 _1762; + if (_1647) { - _1742 = vec4(uData[3].xyz / vec3(max(uData[3].w, 9.9999997473787516355514526367188e-05)), 1.0); + _1762 = vec4(uData[3].xyz / vec3(max(uData[3].w, 9.9999997473787516355514526367188e-05)), 1.0); } else { - highp vec4 _1706 = _1699 + (_1650 * (1.0 - _1699.w)); - highp vec4 _1732; + highp vec4 _1726 = _1719 + (_1670 * (1.0 - _1719.w)); + highp vec4 _1752; if (uData[7].w < 1.0) { - highp vec3 _1711 = _1706.xyz; - highp float _1712 = dot(_1711, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875)); - highp float _1713 = 0.60000002384185791015625 * uData[7].w; - highp float _1715 = max(uData[7].w - _1713, 9.9999997473787516355514526367188e-05); - highp float _1727; - if (_1712 <= _1713) + highp vec3 _1731 = _1726.xyz; + highp float _1732 = dot(_1731, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875)); + highp float _1733 = 0.60000002384185791015625 * uData[7].w; + highp float _1735 = max(uData[7].w - _1733, 9.9999997473787516355514526367188e-05); + highp float _1747; + if (_1732 <= _1733) { - _1727 = _1712; + _1747 = _1732; } else { - _1727 = _1713 + (_1715 * (1.0 - exp((-(_1712 - _1713)) / _1715))); + _1747 = _1733 + (_1735 * (1.0 - exp((-(_1732 - _1733)) / _1735))); } - highp vec3 _1730 = _1711 * (_1727 / max(_1712, 9.9999997473787516355514526367188e-05)); - _1732 = vec4(_1730.x, _1730.y, _1730.z, _1706.w); + highp vec3 _1750 = _1731 * (_1747 / max(_1732, 9.9999997473787516355514526367188e-05)); + _1752 = vec4(_1750.x, _1750.y, _1750.z, _1726.w); } else { - _1732 = _1706; + _1752 = _1726; } - _1742 = _1732; + _1762 = _1752; } - highp float _1745 = dot(_1487, uData[9].xy); - highp float _1746 = max(_1745, 0.0); - highp float _1748 = max(-_1745, 0.0); - highp float _1749 = abs(_1745); - bool _1753; - if (_145) + highp float _1765 = dot(_1498, uData[9].xy); + highp float _1766 = max(_1765, 0.0); + highp float _1768 = max(-_1765, 0.0); + highp float _1769 = abs(_1765); + bool _1773; + if (_146) { - _1753 = uData[6].z > 0.0; + _1773 = uData[6].z > 0.0; } else { - _1753 = false; + _1773 = false; } - bool _1755 = uData[10].x > 0.0; - highp float _1783; - if (_1755) + bool _1775 = uData[10].x > 0.0; + highp float _1803; + if (_1775) { - _1783 = 0.0; + _1803 = 0.0; } else { - highp float _1782; - if (_1753) + highp float _1802; + if (_1773) { - _1782 = (uData[6].z * (1.0 - smoothstep(0.20000000298023223876953125, 0.699999988079071044921875, _1749))) * exp((-max(0.0, -_1186)) / (uData[2].z * 2.5)); + _1802 = (uData[6].z * (1.0 - smoothstep(0.20000000298023223876953125, 0.699999988079071044921875, _1769))) * exp((-max(0.0, -_1197)) / (uData[2].z * 2.5)); } else { - highp float _1767; - if (_1189) + highp float _1787; + if (_1200) { - _1767 = 0.699999988079071044921875; + _1787 = 0.699999988079071044921875; } else { - _1767 = uData[2].z * 0.625; + _1787 = uData[2].z * 0.625; } - _1782 = uData[8].x * (1.0 - smoothstep(0.0, _1767, -_1186)); + _1802 = uData[8].x * (1.0 - smoothstep(0.0, _1787, -_1197)); } - _1783 = _1782; + _1803 = _1802; } - highp float _1793; - if (_145) + highp float _1813; + if (_146) { - _1793 = max((uData[5].w * _1538) * _1538, _1783) * min(_1504, 1.0); + _1813 = max((uData[5].w * _1558) * _1558, _1803) * min(_1524, 1.0); } else { - _1793 = 0.0; + _1813 = 0.0; } - highp float _1796 = _1641 * (1.0 - _1793); - highp vec4 _1802 = vec4(_1742.xyz * _1796, _1796 + _1793); - highp float _1824; - if (_145) + highp float _1816 = _1661 * (1.0 - _1813); + highp vec4 _1822 = vec4(_1762.xyz * _1816, _1816 + _1813); + highp float _1844; + if (_146) { - highp float _1823; - if (_1753) + highp float _1843; + if (_1773) { - _1823 = uData[6].z * max(smoothstep(0.75, 1.0, _1749), max(_1492.x, _1492.y)); + _1843 = uData[6].z * max(smoothstep(0.75, 1.0, _1769), max(_1503.x, _1503.y)); } else { - _1823 = 0.25; + _1843 = 0.25; } - _1824 = _1823; + _1844 = _1843; } else { - _1824 = (0.449999988079071044921875 * ((_1746 * sqrt(_1746)) + ((0.75 * _1748) * sqrt(_1748)))) + 0.0599999986588954925537109375; + _1844 = (0.449999988079071044921875 * ((_1766 * sqrt(_1766)) + ((0.75 * _1768) * sqrt(_1768)))) + 0.0599999986588954925537109375; } - highp float _1860; - if (_1753) + highp float _1880; + if (_1773) { - _1860 = exp((-max(0.0, -_1186)) / _1188); + _1880 = exp((-max(0.0, -_1197)) / _1199); } else { - highp float _1854; - if (_145) + highp float _1874; + if (_146) { - highp float _1853; - if (_1189) + highp float _1873; + if (_1200) { - highp float _1848 = -_1186; - _1853 = smoothstep(0.0, 0.89999997615814208984375, _1848) * (1.0 - smoothstep(1.5, 2.400000095367431640625, _1848)); + highp float _1868 = -_1197; + _1873 = smoothstep(0.0, 0.89999997615814208984375, _1868) * (1.0 - smoothstep(1.5, 2.400000095367431640625, _1868)); } else { - highp float _1841 = -_1186; - _1853 = smoothstep(uData[2].z * 0.3125, uData[2].z * 0.625, _1841) * (1.0 - smoothstep(uData[2].z * 1.5, uData[2].z * 2.0, _1841)); + highp float _1861 = -_1197; + _1873 = smoothstep(uData[2].z * 0.3125, uData[2].z * 0.625, _1861) * (1.0 - smoothstep(uData[2].z * 1.5, uData[2].z * 2.0, _1861)); } - _1854 = _1853; + _1874 = _1873; } else { - _1854 = exp((-max(0.0, -_1186)) / uData[2].z); + _1874 = exp((-max(0.0, -_1197)) / uData[2].z); } - _1860 = _1854; + _1880 = _1874; } - highp float _1872; - if (_1755) + highp float _1892; + if (_1775) { - _1872 = 0.0; + _1892 = 0.0; } else { - highp float _1870; - if (_145) + highp float _1890; + if (_146) { - _1870 = 0.0; + _1890 = 0.0; } else { - _1870 = (0.039999999105930328369140625 * exp(_1495 / uData[1].w)) * _1746; + _1890 = (0.039999999105930328369140625 * exp(_1511 / (uData[1].w * clamp(_1506 / (3.0 * uData[1].w), 9.9999997473787516355514526367188e-05, 1.0)))) * _1766; } - _1872 = (_1860 * _1824) + _1870; + _1892 = (_1880 * _1844) + _1890; } - highp vec2 _1873 = mix(_1139, _1138, _1488); - highp float _1877 = _1873.y; - highp float _1883 = clamp((vTextureCoord.y - (_1873.x - _1877)) / max(2.0 * _1877, 9.9999997473787516355514526367188e-05), 0.0, 1.0); - highp float _1901; + highp vec2 _1893 = mix(_1150, _1149, _1499); + highp float _1897 = _1893.y; + highp float _1903 = clamp((vTextureCoord.y - (_1893.x - _1897)) / max(2.0 * _1897, 9.9999997473787516355514526367188e-05), 0.0, 1.0); + highp float _1921; if (uData[4].z > 0.5) { - _1901 = uData[4].y + ((uData[7].x + ((uData[7].y - uData[7].x) * _1883)) + (uData[7].z * (1.0 - smoothstep(0.0, 0.37999999523162841796875, _1883)))); + _1921 = uData[4].y + ((uData[7].x + ((uData[7].y - uData[7].x) * _1903)) + (uData[7].z * (1.0 - smoothstep(0.0, 0.37999999523162841796875, _1903)))); } else { - _1901 = 0.0; + _1921 = 0.0; } - highp vec3 _1911 = _1802.xyz + vec3(clamp((_1901 + _1478.z) + ((_1504 * uData[2].w) * _1872), 0.0, 1.0)); - highp vec4 _1983; - if (_1755) + highp vec3 _1931 = _1822.xyz + vec3(clamp((_1921 + _1489.z) + ((_1524 * uData[2].w) * _1892), 0.0, 1.0)); + highp vec4 _2003; + if (_1775) { - highp vec2 _1921; - if (dot(_1487, _1487) > 9.9999999392252902907785028219223e-09) + highp vec2 _1941; + if (dot(_1498, _1498) > 9.9999999392252902907785028219223e-09) { - _1921 = normalize(_1487); + _1941 = normalize(_1498); } else { - _1921 = vec2(0.0); + _1941 = vec2(0.0); } - highp float _1922 = dot(_1921, uData[9].xy); - highp float _1924 = mix(8.0, 1.0, uData[9].z); - highp float _1932 = pow(max(_1922, 0.0), _1924) + (uData[9].w * pow(max(-_1922, 0.0), _1924)); - highp float _1933 = min(_1504, 1.0); - highp float _1940 = -_1186; - highp float _1942 = smoothstep(-0.5, 0.5, _1940); - highp float _1944 = -max(0.0, _1940); - highp vec3 _1981 = (_1911.xyz * (1.0 - (((uData[10].z * (1.0 - abs(_1922))) * (_1942 * exp(_1944 / max(uData[2].z * 2.5, 0.001000000047497451305389404296875)))) * _1933))) + vec3(_1933 * (((uData[10].x * max(_1932, max(_1492.x, uData[9].w * _1492.y))) * (_1942 * exp(_1944 / max(uData[8].y, 0.001000000047497451305389404296875)))) + ((uData[10].y * _1932) * (smoothstep(uData[8].y - 0.5, uData[8].y + 0.5, _1940) * exp((-max(0.0, _1940 - uData[8].y)) / max(uData[8].z, 0.001000000047497451305389404296875)))))); - _1983 = vec4(_1981.x, _1981.y, _1981.z, _1802.w); + highp float _1942 = dot(_1941, uData[9].xy); + highp float _1944 = mix(8.0, 1.0, uData[9].z); + highp float _1952 = pow(max(_1942, 0.0), _1944) + (uData[9].w * pow(max(-_1942, 0.0), _1944)); + highp float _1953 = min(_1524, 1.0); + highp float _1960 = -_1197; + highp float _1962 = smoothstep(-0.5, 0.5, _1960); + highp float _1964 = -max(0.0, _1960); + highp vec3 _2001 = (_1931.xyz * (1.0 - (((uData[10].z * (1.0 - abs(_1942))) * (_1962 * exp(_1964 / max(uData[2].z * 2.5, 0.001000000047497451305389404296875)))) * _1953))) + vec3(_1953 * (((uData[10].x * max(_1952, max(_1503.x, uData[9].w * _1503.y))) * (_1962 * exp(_1964 / max(uData[8].y, 0.001000000047497451305389404296875)))) + ((uData[10].y * _1952) * (smoothstep(uData[8].y - 0.5, uData[8].y + 0.5, _1960) * exp((-max(0.0, _1960 - uData[8].y)) / max(uData[8].z, 0.001000000047497451305389404296875)))))); + _2003 = vec4(_2001.x, _2001.y, _2001.z, _1822.w); } else { - _1983 = vec4(_1911.x, _1911.y, _1911.z, _1802.w); + _2003 = vec4(_1931.x, _1931.y, _1931.z, _1822.w); } - highp vec4 _1984 = clamp(_1983, vec4(0.0), vec4(1.0)); - highp float _1991 = max(_1984.w, max(_1984.x, max(_1984.y, _1984.z))); - highp vec4 _1992 = _1984; - _1992.w = _1991; - highp vec3 _2003 = _1992.xyz + vec3(((fract(52.98291778564453125 * fract(dot(vTextureCoord, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5) * uData[5].x) * _1991); - _2007 = clamp(vec4(_2003.x, _2003.y, _2003.z, _1992.w), vec4(0.0), vec4(1.0)) * _1194; + highp vec4 _2004 = clamp(_2003, vec4(0.0), vec4(1.0)); + highp float _2011 = max(_2004.w, max(_2004.x, max(_2004.y, _2004.z))); + highp vec4 _2012 = _2004; + _2012.w = _2011; + highp vec3 _2023 = _2012.xyz + vec3(((fract(52.98291778564453125 * fract(dot(vTextureCoord, vec2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5) * uData[5].x) * _2011); + _2027 = clamp(vec4(_2023.x, _2023.y, _2023.z, _2012.w), vec4(0.0), vec4(1.0)) * _1205; break; } while(false); - out_var_SV_Target0 = _2007; + out_var_SV_Target0 = _2027; } diff --git a/backend/src/glass/shaders/compiled/msl/liquid_glass.fragment.msl b/backend/src/glass/shaders/compiled/msl/liquid_glass.fragment.msl index 71fcc2041..e660b1223 100644 --- a/backend/src/glass/shaders/compiled/msl/liquid_glass.fragment.msl +++ b/backend/src/glass/shaders/compiled/msl/liquid_glass.fragment.msl @@ -22,307 +22,307 @@ struct main0_in fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Uniforms [[buffer(0)]], texture2d Frost [[texture(0)]], texture2d Sharp [[texture(1)]], sampler FrostSampler [[sampler(0)]], sampler SharpSampler [[sampler(1)]]) { main0_out out = {}; - float4 _2007; + float4 _2027; do { - int _114 = int((in.in_var_COLOR.y * 255.0) + 0.5); - int _119 = int((in.in_var_COLOR.z * 255.0) + 0.5); - bool _145 = Uniforms.uData[5].y > 0.0; - float4 _147; - float4 _150; - float2 _152; - float _154; - float2 _156; - float2 _158; - float2 _160; - float _162; - float _164; - float2 _166; - float2 _168; - float _170; - float _172; - float _174; - _147 = float4(0.0); - _150 = float4(0.0); - _152 = float2(0.0, 1.0); - _154 = 1000000000.0; - _156 = float2(0.0); - _158 = float2(0.0); - _160 = float2(0.0); - _162 = 1000000000.0; - _164 = 1000000000.0; - _166 = float2(0.0); - _168 = float2(0.0, 1.0); - _170 = 1000000000.0; - _172 = 1000000000.0; - _174 = 1000000000.0; - float4 _151; - float2 _161; - float _165; - float2 _167; - float _173; - float _175; - int _180; + int _115 = int((in.in_var_COLOR.y * 255.0) + 0.5); + int _120 = int((in.in_var_COLOR.z * 255.0) + 0.5); + bool _146 = Uniforms.uData[5].y > 0.0; float4 _148; + float4 _151; float2 _153; float _155; float2 _157; float2 _159; + float2 _161; float _163; + float _165; + float2 _167; float2 _169; float _171; - int _176 = _114; + float _173; + float _175; + _148 = float4(0.0); + _151 = float4(0.0); + _153 = float2(0.0, 1.0); + _155 = 1000000000.0; + _157 = float2(0.0); + _159 = float2(0.0); + _161 = float2(0.0); + _163 = 1000000000.0; + _165 = 1000000000.0; + _167 = float2(0.0); + _169 = float2(0.0, 1.0); + _171 = 1000000000.0; + _173 = 1000000000.0; + _175 = 1000000000.0; + float4 _152; + float2 _162; + float _166; + float2 _168; + float _174; + float _176; + int _181; + float4 _149; + float2 _154; + float _156; + float2 _158; + float2 _160; + float _164; + float2 _170; + float _172; + int _177 = _115; for (;;) { - _180 = _114 + _119; - bool _185; - if (_176 < _180) + _181 = _115 + _120; + bool _186; + if (_177 < _181) { - _185 = _176 < 16; + _186 = _177 < 16; } else { - _185 = false; + _186 = false; } - if (_185) + if (_186) { - int _187 = 3 * _176; - int _194 = _187 + 14; - bool _202; - if ((isunordered(Uniforms.uData[_194].w, (-0.5)) || Uniforms.uData[_194].w >= (-0.5))) + int _188 = 3 * _177; + int _195 = _188 + 14; + bool _203; + if ((isunordered(Uniforms.uData[_195].w, (-0.5)) || Uniforms.uData[_195].w >= (-0.5))) { - _202 = Uniforms.uData[_194].w > 3.5; + _203 = Uniforms.uData[_195].w > 3.5; } else { - _202 = true; + _203 = true; } - float4 _212; float4 _213; float4 _214; - if (_202) + float4 _215; + if (_203) { - float4 _210 = Uniforms.uData[59]; - _210.z = 0.0; - _212 = _210; - _213 = Uniforms.uData[57]; - _214 = Uniforms.uData[58]; + float4 _211 = Uniforms.uData[59]; + _211.z = 0.0; + _213 = _211; + _214 = Uniforms.uData[57]; + _215 = Uniforms.uData[58]; } else { - _212 = Uniforms.uData[_194]; - _213 = Uniforms.uData[12 + _187]; - _214 = Uniforms.uData[_187 + 13]; + _213 = Uniforms.uData[_195]; + _214 = Uniforms.uData[12 + _188]; + _215 = Uniforms.uData[_188 + 13]; } - float _217 = precise::min(_213.z, _213.w); - float4 _219 = precise::min(_214, float4(_217)); - float2 _504; - float _505; - if (_202) + float _218 = precise::min(_214.z, _214.w); + float4 _220 = precise::min(_215, float4(_218)); + float2 _505; + float _506; + if (_203) { - float4 _294 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); - int _297 = int(Uniforms.uData[59].z); - float2 _299 = in.in_var_TEXCOORD0 - Uniforms.uData[57].xy; - float _301 = _299.x; - float _322; - if (_301 > 0.0) + float4 _295 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); + int _298 = int(Uniforms.uData[59].z); + float2 _300 = in.in_var_TEXCOORD0 - Uniforms.uData[57].xy; + float _302 = _300.x; + float _323; + if (_302 > 0.0) { - float _321; - if (_299.y > 0.0) + float _322; + if (_300.y > 0.0) { - _321 = _294.z; + _322 = _295.z; } else { - _321 = _294.y; + _322 = _295.y; } - _322 = _321; + _323 = _322; } else { - float _313; - if (_299.y > 0.0) + float _314; + if (_300.y > 0.0) { - _313 = _294.w; + _314 = _295.w; } else { - _313 = _294.x; + _314 = _295.x; } - _322 = _313; + _323 = _314; } - float2 _326 = (abs(_299) - Uniforms.uData[57].zw) + float2(_322); - float _328 = (_301 < 0.0) ? (-1.0) : 1.0; - float _331 = (_299.y < 0.0) ? (-1.0) : 1.0; - float _333 = _326.x; - bool _339; - if (_333 > 0.0) + float2 _327 = (abs(_300) - Uniforms.uData[57].zw) + float2(_323); + float _329 = (_302 < 0.0) ? (-1.0) : 1.0; + float _332 = (_300.y < 0.0) ? (-1.0) : 1.0; + float _334 = _327.x; + bool _340; + if (_334 > 0.0) { - _339 = _326.y > 0.0; + _340 = _327.y > 0.0; } else { - _339 = false; + _340 = false; } - float2 _353; - if (_339) + float2 _354; + if (_340) { - _353 = fast::normalize(_326) * float2(_328, _331); + _354 = fast::normalize(_327) * float2(_329, _332); } else { - float2 _350; - if (_333 > _326.y) + float2 _351; + if (_334 > _327.y) { - _350 = float2(_328, 0.0); + _351 = float2(_329, 0.0); } else { - _350 = float2(0.0, _331); + _351 = float2(0.0, _332); } - _353 = _350; + _354 = _351; } - float2 _362; - float _365; - _362 = _353; - _365 = (precise::min(precise::max(_333, _326.y), 0.0) + length(precise::max(_326, float2(0.0)))) - _322; float2 _363; float _366; - int _367 = 0; + _363 = _354; + _366 = (precise::min(precise::max(_334, _327.y), 0.0) + length(precise::max(_327, float2(0.0)))) - _323; + float2 _364; + float _367; + int _368 = 0; for (;;) { - bool _375; - if (_367 < _297) + bool _376; + if (_368 < _298) { - _375 = _367 < 4; + _376 = _368 < 4; } else { - _375 = false; + _376 = false; } - if (_375) + if (_376) { - int _377 = 14 - _367; - int _378 = 3 * _377; - int _379 = 12 + _378; - int _382 = _378 + 13; - if (Uniforms.uData[_382].x == 0.0) + int _378 = 14 - _368; + int _379 = 3 * _378; + int _380 = 12 + _379; + int _383 = _379 + 13; + if (Uniforms.uData[_383].x == 0.0) { - _363 = _362; - _366 = _365; - int _368 = _367 + 1; - _362 = _363; - _365 = _366; - _367 = _368; + _364 = _363; + _367 = _366; + int _369 = _368 + 1; + _363 = _364; + _366 = _367; + _368 = _369; continue; } - float _391 = fast::clamp(Uniforms.uData[_382].x / Uniforms.uData[_382].y, 0.0, 1.0); - bool _393 = Uniforms.uData[_379].x < 0.5; - float _401; - if (_393) + float _392 = fast::clamp(Uniforms.uData[_383].x / Uniforms.uData[_383].y, 0.0, 1.0); + bool _394 = Uniforms.uData[_380].x < 0.5; + float _402; + if (_394) { - _401 = in.in_var_TEXCOORD0.y; + _402 = in.in_var_TEXCOORD0.y; } else { - _401 = in.in_var_TEXCOORD0.x; + _402 = in.in_var_TEXCOORD0.x; } - float _409; - if (_393) + float _410; + if (_394) { - _409 = in.in_var_TEXCOORD0.x; + _410 = in.in_var_TEXCOORD0.x; } else { - _409 = in.in_var_TEXCOORD0.y; + _410 = in.in_var_TEXCOORD0.y; } - float _411 = _409 - Uniforms.uData[_379].y; - float _412 = Uniforms.uData[_382].x * 0.5; - float _415 = Uniforms.uData[_379].w - Uniforms.uData[_379].z; - float _416 = smoothstep(0.0, 0.60000002384185791015625, _391); - float _445; + float _412 = _410 - Uniforms.uData[_380].y; + float _413 = Uniforms.uData[_383].x * 0.5; + float _416 = Uniforms.uData[_380].w - Uniforms.uData[_380].z; + float _417 = smoothstep(0.0, 0.60000002384185791015625, _392); float _446; - if (Uniforms.uData[_382].w > 2.5) + float _447; + if (Uniforms.uData[_383].w > 2.5) { - float _436 = _401 - ((Uniforms.uData[_379].z + Uniforms.uData[_379].w) * 0.5); - _445 = (_436 < 0.0) ? 1.0 : (-1.0); - _446 = precise::max(((_415 * 0.5) * (1.0 - _416)) - abs(_436), 0.0); + float _437 = _402 - ((Uniforms.uData[_380].z + Uniforms.uData[_380].w) * 0.5); + _446 = (_437 < 0.0) ? 1.0 : (-1.0); + _447 = precise::max(((_416 * 0.5) * (1.0 - _417)) - abs(_437), 0.0); } else { - bool _422 = Uniforms.uData[_382].w < 1.5; - float _428; - if (_422) + bool _423 = Uniforms.uData[_383].w < 1.5; + float _429; + if (_423) { - _428 = _401 - Uniforms.uData[_379].z; + _429 = _402 - Uniforms.uData[_380].z; } else { - _428 = Uniforms.uData[_379].w - _401; + _429 = Uniforms.uData[_380].w - _402; } - _445 = _422 ? 1.0 : (-1.0); - _446 = precise::max(_428 - ((_415 - _412) * _416), 0.0); + _446 = _423 ? 1.0 : (-1.0); + _447 = precise::max(_429 - ((_416 - _413) * _417), 0.0); } - float _448 = length(float2(_411, _446)); - float _449 = _448 - _412; - float2 _464; - if (_448 > 0.0) + float _449 = length(float2(_412, _447)); + float _450 = _449 - _413; + float2 _465; + if (_449 > 0.0) { - float2 _458 = float2(-_411, (-_446) * _445) / float2(_448); - float2 _463; - if (Uniforms.uData[_379].x > 0.5) + float2 _459 = float2(-_412, (-_447) * _446) / float2(_449); + float2 _464; + if (Uniforms.uData[_380].x > 0.5) { - _463 = _458.yx; + _464 = _459.yx; } else { - _463 = _458; + _464 = _459; } - _464 = _463; + _465 = _464; } else { - _464 = float2(0.0); + _465 = float2(0.0); } - float _466 = Uniforms.uData[_382].z * _391; - float2 _470 = precise::max(float2(_466 + _365, _466 - _449), float2(0.0)); - float _471 = length(_470); - bool _476; - if (_466 > 0.0) + float _467 = Uniforms.uData[_383].z * _392; + float2 _471 = precise::max(float2(_467 + _366, _467 - _450), float2(0.0)); + float _472 = length(_471); + bool _477; + if (_467 > 0.0) { - _476 = _471 > 0.0; + _477 = _472 > 0.0; } else { - _476 = false; + _477 = false; } - float2 _491; - if (_476) + float2 _492; + if (_477) { - _491 = ((_362 * _470.x) + (_464 * _470.y)) / float2(_471); + _492 = ((_363 * _471.x) + (_465 * _471.y)) / float2(_472); } else { - _491 = select(_362, _464, bool2((-_449) > _365)); + _492 = select(_363, _465, bool2((-_450) > _366)); } - float _492 = -_449; - float _503; + float _493 = -_450; + float _504; do { - if (_466 == 0.0) + if (_467 == 0.0) { - _503 = precise::max(_365, _492); + _504 = precise::max(_366, _493); break; } - _503 = precise::min(-_466, precise::max(_365, _492)) + _471; + _504 = precise::min(-_467, precise::max(_366, _493)) + _472; break; } while(false); - _363 = _491; - _366 = _503; - int _368 = _367 + 1; - _362 = _363; - _365 = _366; - _367 = _368; + _364 = _492; + _367 = _504; + int _369 = _368 + 1; + _363 = _364; + _366 = _367; + _368 = _369; continue; } else @@ -330,460 +330,461 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Unifo break; } } - _504 = _362; - _505 = _365; + _505 = _363; + _506 = _366; } else { - float2 _224 = in.in_var_TEXCOORD0 - _213.xy; - float _226 = _224.x; - float _247; - if (_226 > 0.0) + float2 _225 = in.in_var_TEXCOORD0 - _214.xy; + float _227 = _225.x; + float _248; + if (_227 > 0.0) { - float _246; - if (_224.y > 0.0) + float _247; + if (_225.y > 0.0) { - _246 = _219.z; + _247 = _220.z; } else { - _246 = _219.y; + _247 = _220.y; } - _247 = _246; + _248 = _247; } else { - float _238; - if (_224.y > 0.0) + float _239; + if (_225.y > 0.0) { - _238 = _219.w; + _239 = _220.w; } else { - _238 = _219.x; + _239 = _220.x; } - _247 = _238; + _248 = _239; } - float2 _251 = (abs(_224) - _213.zw) + float2(_247); - float _253 = (_226 < 0.0) ? (-1.0) : 1.0; - float _256 = (_224.y < 0.0) ? (-1.0) : 1.0; - float _258 = _251.x; - bool _264; - if (_258 > 0.0) + float2 _252 = (abs(_225) - _214.zw) + float2(_248); + float _254 = (_227 < 0.0) ? (-1.0) : 1.0; + float _257 = (_225.y < 0.0) ? (-1.0) : 1.0; + float _259 = _252.x; + bool _265; + if (_259 > 0.0) { - _264 = _251.y > 0.0; + _265 = _252.y > 0.0; } else { - _264 = false; + _265 = false; } - float2 _278; - if (_264) + float2 _279; + if (_265) { - _278 = fast::normalize(_251) * float2(_253, _256); + _279 = fast::normalize(_252) * float2(_254, _257); } else { - float2 _275; - if (_258 > _251.y) + float2 _276; + if (_259 > _252.y) { - _275 = float2(_253, 0.0); + _276 = float2(_254, 0.0); } else { - _275 = float2(0.0, _256); + _276 = float2(0.0, _257); } - _278 = _275; + _279 = _276; } - _504 = _278; - _505 = (precise::min(precise::max(_258, _251.y), 0.0) + length(precise::max(_251, float2(0.0)))) - _247; + _505 = _279; + _506 = (precise::min(precise::max(_259, _252.y), 0.0) + length(precise::max(_252, float2(0.0)))) - _248; } - float2 _653; + float2 _654; if (Uniforms.uData[10].w > 0.0) { - float _514 = (Uniforms.uData[9].x < 0.0) ? (-1.0) : 1.0; - float _517 = (Uniforms.uData[9].y < 0.0) ? (-1.0) : 1.0; - float _537; - if (_514 < 0.0) + float _515 = (Uniforms.uData[9].x < 0.0) ? (-1.0) : 1.0; + float _518 = (Uniforms.uData[9].y < 0.0) ? (-1.0) : 1.0; + float _538; + if (_515 < 0.0) { - float _536; - if (_517 < 0.0) + float _537; + if (_518 < 0.0) { - _536 = _219.x; + _537 = _220.x; } else { - _536 = _219.w; + _537 = _220.w; } - _537 = _536; + _538 = _537; } else { - float _529; - if (_517 < 0.0) + float _530; + if (_518 < 0.0) { - _529 = _219.y; + _530 = _220.y; } else { - _529 = _219.z; + _530 = _220.z; } - _537 = _529; + _538 = _530; } - float2 _541 = precise::max(_213.zw - float2(_537), float2(0.0)); - float2 _546 = (_213.xy + (float2(_514, _517) * _541)) + (Uniforms.uData[9].xy * _537); - float2 _561; + float2 _542 = precise::max(_214.zw - float2(_538), float2(0.0)); + float2 _547 = (_214.xy + (float2(_515, _518) * _542)) + (Uniforms.uData[9].xy * _538); + float2 _562; if (abs(Uniforms.uData[9].x) < 0.001000000047497451305389404296875) { - float _554 = _541.x; - float2 _560 = _546; - _560.x = fast::clamp(in.in_var_TEXCOORD0.x, _213.x - _554, _213.x + _554) + (_537 * Uniforms.uData[9].x); - _561 = _560; + float _555 = _542.x; + float2 _561 = _547; + _561.x = fast::clamp(in.in_var_TEXCOORD0.x, _214.x - _555, _214.x + _555) + (_538 * Uniforms.uData[9].x); + _562 = _561; } else { - _561 = _546; + _562 = _547; } - float2 _576; + float2 _577; if (abs(Uniforms.uData[9].y) < 0.001000000047497451305389404296875) { - float _569 = _541.y; - float2 _575 = _561; - _575.y = fast::clamp(in.in_var_TEXCOORD0.y, _213.y - _569, _213.y + _569) + (_537 * Uniforms.uData[9].y); - _576 = _575; + float _570 = _542.y; + float2 _576 = _562; + _576.y = fast::clamp(in.in_var_TEXCOORD0.y, _214.y - _570, _214.y + _570) + (_538 * Uniforms.uData[9].y); + _577 = _576; } else { - _576 = _561; + _577 = _562; } - float _579 = precise::max(Uniforms.uData[10].w - precise::max(Uniforms.uData[8].w, 1.0), 0.0); - float2 _584 = -Uniforms.uData[9].xy; - float _585 = _584.x; - float _587 = (_585 < 0.0) ? (-1.0) : 1.0; - float _588 = _584.y; - float _590 = (_588 < 0.0) ? (-1.0) : 1.0; - float _610; - if (_587 < 0.0) + float _580 = precise::max(Uniforms.uData[10].w - precise::max(Uniforms.uData[8].w, 1.0), 0.0); + float2 _585 = -Uniforms.uData[9].xy; + float _586 = _585.x; + float _588 = (_586 < 0.0) ? (-1.0) : 1.0; + float _589 = _585.y; + float _591 = (_589 < 0.0) ? (-1.0) : 1.0; + float _611; + if (_588 < 0.0) { - float _609; - if (_590 < 0.0) + float _610; + if (_591 < 0.0) { - _609 = _219.x; + _610 = _220.x; } else { - _609 = _219.w; + _610 = _220.w; } - _610 = _609; + _611 = _610; } else { - float _602; - if (_590 < 0.0) + float _603; + if (_591 < 0.0) { - _602 = _219.y; + _603 = _220.y; } else { - _602 = _219.z; + _603 = _220.z; } - _610 = _602; + _611 = _603; } - float2 _613 = precise::max(_213.zw - float2(_610), float2(0.0)); - float2 _617 = (_213.xy + (float2(_587, _590) * _613)) + (_584 * _610); - float2 _632; - if (abs(_585) < 0.001000000047497451305389404296875) + float2 _614 = precise::max(_214.zw - float2(_611), float2(0.0)); + float2 _618 = (_214.xy + (float2(_588, _591) * _614)) + (_585 * _611); + float2 _633; + if (abs(_586) < 0.001000000047497451305389404296875) { - float _625 = _613.x; - float2 _631 = _617; - _631.x = fast::clamp(in.in_var_TEXCOORD0.x, _213.x - _625, _213.x + _625) + (_610 * _585); - _632 = _631; + float _626 = _614.x; + float2 _632 = _618; + _632.x = fast::clamp(in.in_var_TEXCOORD0.x, _214.x - _626, _214.x + _626) + (_611 * _586); + _633 = _632; } else { - _632 = _617; + _633 = _618; } - float2 _647; - if (abs(_588) < 0.001000000047497451305389404296875) + float2 _648; + if (abs(_589) < 0.001000000047497451305389404296875) { - float _640 = _613.y; - float2 _646 = _632; - _646.y = fast::clamp(in.in_var_TEXCOORD0.y, _213.y - _640, _213.y + _640) + (_610 * _588); - _647 = _646; + float _641 = _614.y; + float2 _647 = _633; + _647.y = fast::clamp(in.in_var_TEXCOORD0.y, _214.y - _641, _214.y + _641) + (_611 * _589); + _648 = _647; } else { - _647 = _632; + _648 = _633; } - _653 = float2(1.0 - smoothstep(_579, Uniforms.uData[10].w, length(in.in_var_TEXCOORD0 - _576)), 1.0 - smoothstep(_579, Uniforms.uData[10].w, length(in.in_var_TEXCOORD0 - _647))); + _654 = float2(1.0 - smoothstep(_580, Uniforms.uData[10].w, length(in.in_var_TEXCOORD0 - _577)), 1.0 - smoothstep(_580, Uniforms.uData[10].w, length(in.in_var_TEXCOORD0 - _648))); } else { - _653 = float2(0.0); + _654 = float2(0.0); } - bool _654 = _505 < _172; - if (_654) + bool _655 = _506 < _173; + if (_655) { - _148 = _150; - _153 = _168; - _155 = _174; - _157 = _166; - _169 = _213.yw; - _171 = _172; + _149 = _151; + _154 = _169; + _156 = _175; + _158 = _167; + _170 = _214.yw; + _172 = _173; } else { - bool _658 = _505 < _170; - float2 _662; - if (_658) + bool _659 = _506 < _171; + float2 _663; + if (_659) { - _662 = _213.yw; + _663 = _214.yw; } else { - _662 = _152; + _663 = _153; } - _148 = select(_147, _212, bool4(_658)); - _153 = _662; - _155 = _658 ? _217 : _154; - _157 = select(_156, _653, bool2(_658)); - _169 = _168; - _171 = _658 ? _505 : _170; + _149 = select(_148, _213, bool4(_659)); + _154 = _663; + _156 = _659 ? _218 : _155; + _158 = select(_157, _654, bool2(_659)); + _170 = _169; + _172 = _659 ? _506 : _171; } - _151 = select(_150, _212, bool4(_654)); - _167 = select(_166, _653, bool2(_654)); - _173 = _654 ? _505 : _172; - _175 = _654 ? _217 : _174; - float2 _984; - float _985; - if (_202) + _152 = select(_151, _213, bool4(_655)); + _168 = select(_167, _654, bool2(_655)); + _174 = _655 ? _506 : _173; + _176 = _655 ? _218 : _175; + float2 _995; + float _996; + if (_203) { - float4 _730 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); - int _733 = int(Uniforms.uData[59].z); - float2 _839; - float _840; - if (Uniforms.uData[1].y > 0.0) + float _732 = Uniforms.uData[1].y * fast::clamp(_218 / (3.0 * Uniforms.uData[1].z), 9.9999997473787516355514526367188e-05, 1.0); + float4 _741 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); + int _744 = int(Uniforms.uData[59].z); + float2 _850; + float _851; + if (_732 > 0.0) { - float _805 = (in.in_var_TEXCOORD0.x - Uniforms.uData[57].x) + Uniforms.uData[57].z; - float _807 = (Uniforms.uData[57].x + Uniforms.uData[57].z) - in.in_var_TEXCOORD0.x; - float _812 = (in.in_var_TEXCOORD0.y - Uniforms.uData[57].y) + Uniforms.uData[57].w; - float _814 = (Uniforms.uData[57].y + Uniforms.uData[57].w) - in.in_var_TEXCOORD0.y; - float _818 = precise::min(precise::min(_805, _807), precise::min(_812, _814)); - float4 _823 = exp((float4(_818) - float4(_805, _807, _812, _814)) / float4(Uniforms.uData[1].y)); - float _824 = _823.x; - float _825 = _823.y; - float _827 = _823.z; - float _829 = _823.w; - float _830 = ((_824 + _825) + _827) + _829; - _839 = float2(_825 - _824, _829 - _827) / float2(_830); - _840 = (Uniforms.uData[1].y * log(_830)) - _818; + float _816 = (in.in_var_TEXCOORD0.x - Uniforms.uData[57].x) + Uniforms.uData[57].z; + float _818 = (Uniforms.uData[57].x + Uniforms.uData[57].z) - in.in_var_TEXCOORD0.x; + float _823 = (in.in_var_TEXCOORD0.y - Uniforms.uData[57].y) + Uniforms.uData[57].w; + float _825 = (Uniforms.uData[57].y + Uniforms.uData[57].w) - in.in_var_TEXCOORD0.y; + float _829 = precise::min(precise::min(_816, _818), precise::min(_823, _825)); + float4 _834 = exp((float4(_829) - float4(_816, _818, _823, _825)) / float4(_732)); + float _835 = _834.x; + float _836 = _834.y; + float _838 = _834.z; + float _840 = _834.w; + float _841 = ((_835 + _836) + _838) + _840; + _850 = float2(_836 - _835, _840 - _838) / float2(_841); + _851 = (_732 * log(_841)) - _829; } else { - float2 _739 = in.in_var_TEXCOORD0 - Uniforms.uData[57].xy; - float _741 = _739.x; - float _762; - if (_741 > 0.0) + float2 _750 = in.in_var_TEXCOORD0 - Uniforms.uData[57].xy; + float _752 = _750.x; + float _773; + if (_752 > 0.0) { - float _761; - if (_739.y > 0.0) + float _772; + if (_750.y > 0.0) { - _761 = _730.z; + _772 = _741.z; } else { - _761 = _730.y; + _772 = _741.y; } - _762 = _761; + _773 = _772; } else { - float _753; - if (_739.y > 0.0) + float _764; + if (_750.y > 0.0) { - _753 = _730.w; + _764 = _741.w; } else { - _753 = _730.x; + _764 = _741.x; } - _762 = _753; + _773 = _764; } - float2 _766 = (abs(_739) - Uniforms.uData[57].zw) + float2(_762); - float _768 = (_741 < 0.0) ? (-1.0) : 1.0; - float _771 = (_739.y < 0.0) ? (-1.0) : 1.0; - float _773 = _766.x; - bool _779; - if (_773 > 0.0) + float2 _777 = (abs(_750) - Uniforms.uData[57].zw) + float2(_773); + float _779 = (_752 < 0.0) ? (-1.0) : 1.0; + float _782 = (_750.y < 0.0) ? (-1.0) : 1.0; + float _784 = _777.x; + bool _790; + if (_784 > 0.0) { - _779 = _766.y > 0.0; + _790 = _777.y > 0.0; } else { - _779 = false; + _790 = false; } - float2 _793; - if (_779) + float2 _804; + if (_790) { - _793 = fast::normalize(_766) * float2(_768, _771); + _804 = fast::normalize(_777) * float2(_779, _782); } else { - float2 _790; - if (_773 > _766.y) + float2 _801; + if (_784 > _777.y) { - _790 = float2(_768, 0.0); + _801 = float2(_779, 0.0); } else { - _790 = float2(0.0, _771); + _801 = float2(0.0, _782); } - _793 = _790; + _804 = _801; } - _839 = _793; - _840 = (precise::min(precise::max(_773, _766.y), 0.0) + length(precise::max(_766, float2(0.0)))) - _762; + _850 = _804; + _851 = (precise::min(precise::max(_784, _777.y), 0.0) + length(precise::max(_777, float2(0.0)))) - _773; } - float2 _842; - float _845; - _842 = _839; - _845 = _840; - float2 _843; - float _846; - int _847 = 0; + float2 _853; + float _856; + _853 = _850; + _856 = _851; + float2 _854; + float _857; + int _858 = 0; for (;;) { - bool _855; - if (_847 < _733) + bool _866; + if (_858 < _744) { - _855 = _847 < 4; + _866 = _858 < 4; } else { - _855 = false; + _866 = false; } - if (_855) + if (_866) { - int _857 = 14 - _847; - int _858 = 3 * _857; - int _859 = 12 + _858; - int _862 = _858 + 13; - if (Uniforms.uData[_862].x == 0.0) + int _868 = 14 - _858; + int _869 = 3 * _868; + int _870 = 12 + _869; + int _873 = _869 + 13; + if (Uniforms.uData[_873].x == 0.0) { - _843 = _842; - _846 = _845; - int _848 = _847 + 1; - _842 = _843; - _845 = _846; - _847 = _848; + _854 = _853; + _857 = _856; + int _859 = _858 + 1; + _853 = _854; + _856 = _857; + _858 = _859; continue; } - float _871 = fast::clamp(Uniforms.uData[_862].x / Uniforms.uData[_862].y, 0.0, 1.0); - bool _873 = Uniforms.uData[_859].x < 0.5; - float _881; - if (_873) + float _882 = fast::clamp(Uniforms.uData[_873].x / Uniforms.uData[_873].y, 0.0, 1.0); + bool _884 = Uniforms.uData[_870].x < 0.5; + float _892; + if (_884) { - _881 = in.in_var_TEXCOORD0.y; + _892 = in.in_var_TEXCOORD0.y; } else { - _881 = in.in_var_TEXCOORD0.x; + _892 = in.in_var_TEXCOORD0.x; } - float _889; - if (_873) + float _900; + if (_884) { - _889 = in.in_var_TEXCOORD0.x; + _900 = in.in_var_TEXCOORD0.x; } else { - _889 = in.in_var_TEXCOORD0.y; + _900 = in.in_var_TEXCOORD0.y; } - float _891 = _889 - Uniforms.uData[_859].y; - float _892 = Uniforms.uData[_862].x * 0.5; - float _895 = Uniforms.uData[_859].w - Uniforms.uData[_859].z; - float _896 = smoothstep(0.0, 0.60000002384185791015625, _871); - float _925; - float _926; - if (Uniforms.uData[_862].w > 2.5) + float _902 = _900 - Uniforms.uData[_870].y; + float _903 = Uniforms.uData[_873].x * 0.5; + float _906 = Uniforms.uData[_870].w - Uniforms.uData[_870].z; + float _907 = smoothstep(0.0, 0.60000002384185791015625, _882); + float _936; + float _937; + if (Uniforms.uData[_873].w > 2.5) { - float _916 = _881 - ((Uniforms.uData[_859].z + Uniforms.uData[_859].w) * 0.5); - _925 = (_916 < 0.0) ? 1.0 : (-1.0); - _926 = precise::max(((_895 * 0.5) * (1.0 - _896)) - abs(_916), 0.0); + float _927 = _892 - ((Uniforms.uData[_870].z + Uniforms.uData[_870].w) * 0.5); + _936 = (_927 < 0.0) ? 1.0 : (-1.0); + _937 = precise::max(((_906 * 0.5) * (1.0 - _907)) - abs(_927), 0.0); } else { - bool _902 = Uniforms.uData[_862].w < 1.5; - float _908; - if (_902) + bool _913 = Uniforms.uData[_873].w < 1.5; + float _919; + if (_913) { - _908 = _881 - Uniforms.uData[_859].z; + _919 = _892 - Uniforms.uData[_870].z; } else { - _908 = Uniforms.uData[_859].w - _881; + _919 = Uniforms.uData[_870].w - _892; } - _925 = _902 ? 1.0 : (-1.0); - _926 = precise::max(_908 - ((_895 - _892) * _896), 0.0); + _936 = _913 ? 1.0 : (-1.0); + _937 = precise::max(_919 - ((_906 - _903) * _907), 0.0); } - float _928 = length(float2(_891, _926)); - float _929 = _928 - _892; - float2 _944; - if (_928 > 0.0) + float _939 = length(float2(_902, _937)); + float _940 = _939 - _903; + float2 _955; + if (_939 > 0.0) { - float2 _938 = float2(-_891, (-_926) * _925) / float2(_928); - float2 _943; - if (Uniforms.uData[_859].x > 0.5) + float2 _949 = float2(-_902, (-_937) * _936) / float2(_939); + float2 _954; + if (Uniforms.uData[_870].x > 0.5) { - _943 = _938.yx; + _954 = _949.yx; } else { - _943 = _938; + _954 = _949; } - _944 = _943; + _955 = _954; } else { - _944 = float2(0.0); + _955 = float2(0.0); } - float _946 = Uniforms.uData[_862].z * _871; - float2 _950 = precise::max(float2(_946 + _845, _946 - _929), float2(0.0)); - float _951 = length(_950); - bool _956; - if (_946 > 0.0) + float _957 = Uniforms.uData[_873].z * _882; + float2 _961 = precise::max(float2(_957 + _856, _957 - _940), float2(0.0)); + float _962 = length(_961); + bool _967; + if (_957 > 0.0) { - _956 = _951 > 0.0; + _967 = _962 > 0.0; } else { - _956 = false; + _967 = false; } - float2 _971; - if (_956) + float2 _982; + if (_967) { - _971 = ((_842 * _950.x) + (_944 * _950.y)) / float2(_951); + _982 = ((_853 * _961.x) + (_955 * _961.y)) / float2(_962); } else { - _971 = select(_842, _944, bool2((-_929) > _845)); + _982 = select(_853, _955, bool2((-_940) > _856)); } - float _972 = -_929; - float _983; + float _983 = -_940; + float _994; do { - if (_946 == 0.0) + if (_957 == 0.0) { - _983 = precise::max(_845, _972); + _994 = precise::max(_856, _983); break; } - _983 = precise::min(-_946, precise::max(_845, _972)) + _951; + _994 = precise::min(-_957, precise::max(_856, _983)) + _962; break; } while(false); - _843 = _971; - _846 = _983; - int _848 = _847 + 1; - _842 = _843; - _845 = _846; - _847 = _848; + _854 = _982; + _857 = _994; + int _859 = _858 + 1; + _853 = _854; + _856 = _857; + _858 = _859; continue; } else @@ -791,66 +792,67 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Unifo break; } } - _984 = _842; - _985 = _845; + _995 = _853; + _996 = _856; } else { - float2 _719; - float _720; - if (_212.w < 0.5) + float2 _725; + float _726; + if (_213.w < 0.5) { - float _685 = (in.in_var_TEXCOORD0.x - _213.x) + _213.z; - float _687 = (_213.x + _213.z) - in.in_var_TEXCOORD0.x; - float _692 = (in.in_var_TEXCOORD0.y - _213.y) + _213.w; - float _694 = (_213.y + _213.w) - in.in_var_TEXCOORD0.y; - float _698 = precise::min(precise::min(_685, _687), precise::min(_692, _694)); - float4 _703 = exp((float4(_698) - float4(_685, _687, _692, _694)) / float4(Uniforms.uData[1].y)); - float _704 = _703.x; - float _705 = _703.y; - float _707 = _703.z; - float _709 = _703.w; - float _710 = ((_704 + _705) + _707) + _709; - _719 = float2(_705 - _704, _709 - _707) / float2(_710); - _720 = (Uniforms.uData[1].y * log(_710)) - _698; + float _686 = Uniforms.uData[1].y * fast::clamp(_218 / (3.0 * Uniforms.uData[1].z), 9.9999997473787516355514526367188e-05, 1.0); + float _691 = (in.in_var_TEXCOORD0.x - _214.x) + _214.z; + float _693 = (_214.x + _214.z) - in.in_var_TEXCOORD0.x; + float _698 = (in.in_var_TEXCOORD0.y - _214.y) + _214.w; + float _700 = (_214.y + _214.w) - in.in_var_TEXCOORD0.y; + float _704 = precise::min(precise::min(_691, _693), precise::min(_698, _700)); + float4 _709 = exp((float4(_704) - float4(_691, _693, _698, _700)) / float4(_686)); + float _710 = _709.x; + float _711 = _709.y; + float _713 = _709.z; + float _715 = _709.w; + float _716 = ((_710 + _711) + _713) + _715; + _725 = float2(_711 - _710, _715 - _713) / float2(_716); + _726 = (_686 * log(_716)) - _704; } else { - _719 = _504; - _720 = _505; + _725 = _505; + _726 = _506; } - _984 = _719; - _985 = _720; + _995 = _725; + _996 = _726; } - bool _986 = _985 < _164; - if (_986) + bool _997 = _996 < _165; + if (_997) { - _159 = _160; - _163 = _164; + _160 = _161; + _164 = _165; } else { - bool _990 = _985 < _162; - _159 = select(_158, _984, bool2(_990)); - _163 = _990 ? _985 : _162; + bool _1001 = _996 < _163; + _160 = select(_159, _995, bool2(_1001)); + _164 = _1001 ? _996 : _163; } - _161 = select(_160, _984, bool2(_986)); - _165 = _986 ? _985 : _164; - _147 = _148; - _150 = _151; - _152 = _153; - _154 = _155; - _156 = _157; - _158 = _159; - _160 = _161; - _162 = _163; - _164 = _165; - _166 = _167; - _168 = _169; - _170 = _171; - _172 = _173; - _174 = _175; - _176++; + _162 = select(_161, _995, bool2(_997)); + _166 = _997 ? _996 : _165; + _148 = _149; + _151 = _152; + _153 = _154; + _155 = _156; + _157 = _158; + _159 = _160; + _161 = _162; + _163 = _164; + _165 = _166; + _167 = _168; + _169 = _170; + _171 = _172; + _173 = _174; + _175 = _176; + _177++; continue; } else @@ -858,418 +860,418 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Unifo break; } } - bool _1004; + bool _1015; if (Uniforms.uData[59].w > 2.5) { - _1004 = Uniforms.uData[59].w < 3.5; + _1015 = Uniforms.uData[59].w < 3.5; } else { - _1004 = false; + _1015 = false; } - bool _1005 = Uniforms.uData[59].w > 1.5; - bool _1009; - if (_1005) + bool _1016 = Uniforms.uData[59].w > 1.5; + bool _1020; + if (_1016) { - _1009 = Uniforms.uData[59].w < 3.5; + _1020 = Uniforms.uData[59].w < 3.5; } else { - _1009 = false; + _1020 = false; } - float _1082; - float2 _1083; - if (_1009) + float _1093; + float2 _1094; + if (_1020) { - float2 _1015 = in.in_var_TEXCOORD0 - Uniforms.uData[57].xy; - float4 _1021 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); - float _1022 = _1015.x; - float _1043; - if (_1022 > 0.0) + float2 _1026 = in.in_var_TEXCOORD0 - Uniforms.uData[57].xy; + float4 _1032 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); + float _1033 = _1026.x; + float _1054; + if (_1033 > 0.0) { - float _1042; - if (_1015.y > 0.0) + float _1053; + if (_1026.y > 0.0) { - _1042 = _1021.z; + _1053 = _1032.z; } else { - _1042 = _1021.y; + _1053 = _1032.y; } - _1043 = _1042; + _1054 = _1053; } else { - float _1034; - if (_1015.y > 0.0) + float _1045; + if (_1026.y > 0.0) { - _1034 = _1021.w; + _1045 = _1032.w; } else { - _1034 = _1021.x; + _1045 = _1032.x; } - _1043 = _1034; + _1054 = _1045; } - float2 _1047 = (abs(_1015) - Uniforms.uData[57].zw) + float2(_1043); - float _1049 = (_1022 < 0.0) ? (-1.0) : 1.0; - float _1052 = (_1015.y < 0.0) ? (-1.0) : 1.0; - float _1054 = _1047.x; - bool _1060; - if (_1054 > 0.0) + float2 _1058 = (abs(_1026) - Uniforms.uData[57].zw) + float2(_1054); + float _1060 = (_1033 < 0.0) ? (-1.0) : 1.0; + float _1063 = (_1026.y < 0.0) ? (-1.0) : 1.0; + float _1065 = _1058.x; + bool _1071; + if (_1065 > 0.0) { - _1060 = _1047.y > 0.0; + _1071 = _1058.y > 0.0; } else { - _1060 = false; + _1071 = false; } - float2 _1074; - if (_1060) + float2 _1085; + if (_1071) { - _1074 = fast::normalize(_1047) * float2(_1049, _1052); + _1085 = fast::normalize(_1058) * float2(_1060, _1063); } else { - float2 _1071; - if (_1054 > _1047.y) + float2 _1082; + if (_1065 > _1058.y) { - _1071 = float2(_1049, 0.0); + _1082 = float2(_1060, 0.0); } else { - _1071 = float2(0.0, _1052); + _1082 = float2(0.0, _1063); } - _1074 = _1071; + _1085 = _1082; } - _1082 = (precise::min(precise::max(_1054, _1047.y), 0.0) + length(precise::max(_1047, float2(0.0)))) - _1043; - _1083 = _1074; + _1093 = (precise::min(precise::max(_1065, _1058.y), 0.0) + length(precise::max(_1058, float2(0.0)))) - _1054; + _1094 = _1085; } else { - _1082 = -1000000000.0; - _1083 = float2(0.0); + _1093 = -1000000000.0; + _1094 = float2(0.0); } - bool _1087; - if (_1005) + bool _1098; + if (_1016) { - _1087 = Uniforms.uData[59].w < 3.5; + _1098 = Uniforms.uData[59].w < 3.5; } else { - _1087 = false; + _1098 = false; } - bool _1091; - if (_1087) + bool _1102; + if (_1098) { - _1091 = !_1004; + _1102 = !_1015; } else { - _1091 = false; - } - float4 _1136; - float4 _1137; - float2 _1138; - float2 _1139; - float _1140; - float2 _1141; - float2 _1142; - float2 _1143; - float2 _1144; - float _1145; - float _1146; - float _1147; - float _1148; - if (_1091) - { - float _1094 = 1.0 - _1082; - bool _1095 = _1094 < _172; - float4 _1111; - float2 _1112; - float2 _1113; - float _1114; - float2 _1115; - float _1116; - if (_1095) + _1102 = false; + } + float4 _1147; + float4 _1148; + float2 _1149; + float2 _1150; + float _1151; + float2 _1152; + float2 _1153; + float2 _1154; + float2 _1155; + float _1156; + float _1157; + float _1158; + float _1159; + if (_1102) + { + float _1105 = 1.0 - _1093; + bool _1106 = _1105 < _173; + float4 _1122; + float2 _1123; + float2 _1124; + float _1125; + float2 _1126; + float _1127; + if (_1106) { - _1111 = _150; - _1112 = _168; - _1113 = Uniforms.uData[57].yw; - _1114 = _174; - _1115 = _166; - _1116 = _172; + _1122 = _151; + _1123 = _169; + _1124 = Uniforms.uData[57].yw; + _1125 = _175; + _1126 = _167; + _1127 = _173; } else { - bool _1099 = _1094 < _170; - float2 _1103; - if (_1099) + bool _1110 = _1105 < _171; + float2 _1114; + if (_1110) { - _1103 = Uniforms.uData[57].yw; + _1114 = Uniforms.uData[57].yw; } else { - _1103 = _152; + _1114 = _153; } - _1111 = select(_147, Uniforms.uData[59], bool4(_1099)); - _1112 = _1103; - _1113 = _168; - _1114 = _1099 ? _174 : _154; - _1115 = select(_156, float2(0.0), bool2(_1099)); - _1116 = _1099 ? _1094 : _170; + _1122 = select(_148, Uniforms.uData[59], bool4(_1110)); + _1123 = _1114; + _1124 = _169; + _1125 = _1110 ? _175 : _155; + _1126 = select(_157, float2(0.0), bool2(_1110)); + _1127 = _1110 ? _1105 : _171; } - float2 _1122 = -_1083; - bool _1123 = _1094 < _164; - float2 _1131; - float _1132; - if (_1123) + float2 _1133 = -_1094; + bool _1134 = _1105 < _165; + float2 _1142; + float _1143; + if (_1134) { - _1131 = _160; - _1132 = _164; + _1142 = _161; + _1143 = _165; } else { - bool _1127 = _1094 < _162; - _1131 = select(_158, _1122, bool2(_1127)); - _1132 = _1127 ? _1094 : _162; + bool _1138 = _1105 < _163; + _1142 = select(_159, _1133, bool2(_1138)); + _1143 = _1138 ? _1105 : _163; } - _1136 = _1111; - _1137 = select(_150, Uniforms.uData[59], bool4(_1095)); - _1138 = _1112; - _1139 = _1113; - _1140 = _1114; - _1141 = _1115; - _1142 = select(_166, float2(0.0), bool2(_1095)); - _1143 = _1131; - _1144 = select(_160, _1122, bool2(_1123)); - _1145 = _1132; - _1146 = _1123 ? _1094 : _164; - _1147 = _1116; - _1148 = _1095 ? _1094 : _172; + _1147 = _1122; + _1148 = select(_151, Uniforms.uData[59], bool4(_1106)); + _1149 = _1123; + _1150 = _1124; + _1151 = _1125; + _1152 = _1126; + _1153 = select(_167, float2(0.0), bool2(_1106)); + _1154 = _1142; + _1155 = select(_161, _1133, bool2(_1134)); + _1156 = _1143; + _1157 = _1134 ? _1105 : _165; + _1158 = _1127; + _1159 = _1106 ? _1105 : _173; } else { - _1136 = _147; - _1137 = _150; - _1138 = _152; - _1139 = _168; - _1140 = _154; - _1141 = _156; - _1142 = _166; - _1143 = _158; - _1144 = _160; - _1145 = _162; - _1146 = _164; - _1147 = _170; - _1148 = _172; - } - float _1150 = precise::max(Uniforms.uData[1].x, 9.9999997473787516355514526367188e-05); - float _1155 = precise::max(_1150 - abs(_1148 - _1147), 0.0) / _1150; - float _1156 = _1155 * _1155; - float _1157 = _1156 * 0.5; - float _1162; - if (_1147 < _1148) - { - _1162 = 1.0 - _1157; + _1147 = _148; + _1148 = _151; + _1149 = _153; + _1150 = _169; + _1151 = _155; + _1152 = _157; + _1153 = _167; + _1154 = _159; + _1155 = _161; + _1156 = _163; + _1157 = _165; + _1158 = _171; + _1159 = _173; + } + float _1161 = precise::max(Uniforms.uData[1].x, 9.9999997473787516355514526367188e-05); + float _1166 = precise::max(_1161 - abs(_1159 - _1158), 0.0) / _1161; + float _1167 = _1166 * _1166; + float _1168 = _1167 * 0.5; + float _1173; + if (_1158 < _1159) + { + _1173 = 1.0 - _1168; } else { - _1162 = _1157; + _1173 = _1168; } - float _1166 = precise::min(_1148, _1147) - ((_1156 * _1150) * 0.25); - float _1171 = precise::max(_1150 - abs(_1146 - _1145), 0.0) / _1150; - float _1172 = _1171 * _1171; - float _1173 = _1172 * 0.5; - float _1178; - if (_1145 < _1146) + float _1177 = precise::min(_1159, _1158) - ((_1167 * _1161) * 0.25); + float _1182 = precise::max(_1161 - abs(_1157 - _1156), 0.0) / _1161; + float _1183 = _1182 * _1182; + float _1184 = _1183 * 0.5; + float _1189; + if (_1156 < _1157) { - _1178 = 1.0 - _1173; + _1189 = 1.0 - _1184; } else { - _1178 = _1173; + _1189 = _1184; } - float _1182 = precise::min(_1146, _1145) - ((_1172 * _1150) * 0.25); - float _1186; - if (_1004) + float _1193 = precise::min(_1157, _1156) - ((_1183 * _1161) * 0.25); + float _1197; + if (_1015) { - _1186 = precise::max(_1166, _1082); + _1197 = precise::max(_1177, _1093); } else { - _1186 = _1166; + _1197 = _1177; } - float _1188 = Uniforms.uData[2].z * 1.25; - bool _1189 = _1188 <= 1.25; - float _1194 = fast::clamp(0.5 - (precise::max(_1186, _1082) / (_1189 ? 1.39999997615814208984375 : 1.0)), 0.0, 1.0); - bool _1200; + float _1199 = Uniforms.uData[2].z * 1.25; + bool _1200 = _1199 <= 1.25; + float _1205 = fast::clamp(0.5 - (precise::max(_1197, _1093) / (_1200 ? 1.39999997615814208984375 : 1.0)), 0.0, 1.0); + bool _1211; if (Uniforms.uData[11].w > 0.0) { - _1200 = _1194 < 1.0; + _1211 = _1205 < 1.0; } else { - _1200 = false; + _1211 = false; } - float _1458; - if (_1200) + float _1469; + if (_1211) { - float2 _1204 = in.in_var_TEXCOORD0 - Uniforms.uData[11].yz; - float _1206; - float _1209; - _1206 = 1000000000.0; - _1209 = 1000000000.0; - float _1210; - float _1207; - int _1211 = _114; + float2 _1215 = in.in_var_TEXCOORD0 - Uniforms.uData[11].yz; + float _1217; + float _1220; + _1217 = 1000000000.0; + _1220 = 1000000000.0; + float _1221; + float _1218; + int _1222 = _115; for (;;) { - bool _1219; - if (_1211 < _180) + bool _1230; + if (_1222 < _181) { - _1219 = _1211 < 16; + _1230 = _1222 < 16; } else { - _1219 = false; + _1230 = false; } - if (_1219) + if (_1230) { - int _1221 = 3 * _1211; - int _1222 = 12 + _1221; - int _1228 = _1221 + 14; - bool _1236; - if ((isunordered(Uniforms.uData[_1228].w, (-0.5)) || Uniforms.uData[_1228].w >= (-0.5))) + int _1232 = 3 * _1222; + int _1233 = 12 + _1232; + int _1239 = _1232 + 14; + bool _1247; + if ((isunordered(Uniforms.uData[_1239].w, (-0.5)) || Uniforms.uData[_1239].w >= (-0.5))) { - _1236 = Uniforms.uData[_1228].w > 3.5; + _1247 = Uniforms.uData[_1239].w > 3.5; } else { - _1236 = true; + _1247 = true; } - float _1427; - if (_1236) + float _1438; + if (_1247) { - float4 _1288 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); - int _1291 = int(Uniforms.uData[59].z); - float2 _1293 = _1204 - Uniforms.uData[57].xy; - float _1316; - if (_1293.x > 0.0) + float4 _1299 = precise::min(Uniforms.uData[58], float4(precise::min(Uniforms.uData[57].z, Uniforms.uData[57].w))); + int _1302 = int(Uniforms.uData[59].z); + float2 _1304 = _1215 - Uniforms.uData[57].xy; + float _1327; + if (_1304.x > 0.0) { - float _1315; - if (_1293.y > 0.0) + float _1326; + if (_1304.y > 0.0) { - _1315 = _1288.z; + _1326 = _1299.z; } else { - _1315 = _1288.y; + _1326 = _1299.y; } - _1316 = _1315; + _1327 = _1326; } else { - float _1307; - if (_1293.y > 0.0) + float _1318; + if (_1304.y > 0.0) { - _1307 = _1288.w; + _1318 = _1299.w; } else { - _1307 = _1288.x; + _1318 = _1299.x; } - _1316 = _1307; + _1327 = _1318; } - float2 _1320 = (abs(_1293) - Uniforms.uData[57].zw) + float2(_1316); - float _1330; - _1330 = (precise::min(precise::max(_1320.x, _1320.y), 0.0) + length(precise::max(_1320, float2(0.0)))) - _1316; - float _1331; - int _1333 = 0; + float2 _1331 = (abs(_1304) - Uniforms.uData[57].zw) + float2(_1327); + float _1341; + _1341 = (precise::min(precise::max(_1331.x, _1331.y), 0.0) + length(precise::max(_1331, float2(0.0)))) - _1327; + float _1342; + int _1344 = 0; for (;;) { - bool _1341; - if (_1333 < _1291) + bool _1352; + if (_1344 < _1302) { - _1341 = _1333 < 4; + _1352 = _1344 < 4; } else { - _1341 = false; + _1352 = false; } - if (_1341) + if (_1352) { - int _1343 = 14 - _1333; - int _1344 = 3 * _1343; - int _1345 = 12 + _1344; - int _1348 = _1344 + 13; - if (Uniforms.uData[_1348].x == 0.0) + int _1354 = 14 - _1344; + int _1355 = 3 * _1354; + int _1356 = 12 + _1355; + int _1359 = _1355 + 13; + if (Uniforms.uData[_1359].x == 0.0) { - _1331 = _1330; - int _1334 = _1333 + 1; - _1330 = _1331; - _1333 = _1334; + _1342 = _1341; + int _1345 = _1344 + 1; + _1341 = _1342; + _1344 = _1345; continue; } - float _1357 = fast::clamp(Uniforms.uData[_1348].x / Uniforms.uData[_1348].y, 0.0, 1.0); - bool _1359 = Uniforms.uData[_1345].x < 0.5; - float _1365; - if (_1359) + float _1368 = fast::clamp(Uniforms.uData[_1359].x / Uniforms.uData[_1359].y, 0.0, 1.0); + bool _1370 = Uniforms.uData[_1356].x < 0.5; + float _1376; + if (_1370) { - _1365 = _1204.y; + _1376 = _1215.y; } else { - _1365 = _1204.x; + _1376 = _1215.x; } - float _1371; - if (_1359) + float _1382; + if (_1370) { - _1371 = _1204.x; + _1382 = _1215.x; } else { - _1371 = _1204.y; + _1382 = _1215.y; } - float _1374 = Uniforms.uData[_1348].x * 0.5; - float _1377 = Uniforms.uData[_1345].w - Uniforms.uData[_1345].z; - float _1378 = smoothstep(0.0, 0.60000002384185791015625, _1357); - float _1404; - if (Uniforms.uData[_1348].w > 2.5) + float _1385 = Uniforms.uData[_1359].x * 0.5; + float _1388 = Uniforms.uData[_1356].w - Uniforms.uData[_1356].z; + float _1389 = smoothstep(0.0, 0.60000002384185791015625, _1368); + float _1415; + if (Uniforms.uData[_1359].w > 2.5) { - _1404 = precise::max(((_1377 * 0.5) * (1.0 - _1378)) - abs(_1365 - ((Uniforms.uData[_1345].z + Uniforms.uData[_1345].w) * 0.5)), 0.0); + _1415 = precise::max(((_1388 * 0.5) * (1.0 - _1389)) - abs(_1376 - ((Uniforms.uData[_1356].z + Uniforms.uData[_1356].w) * 0.5)), 0.0); } else { - float _1390; - if (Uniforms.uData[_1348].w < 1.5) + float _1401; + if (Uniforms.uData[_1359].w < 1.5) { - _1390 = _1365 - Uniforms.uData[_1345].z; + _1401 = _1376 - Uniforms.uData[_1356].z; } else { - _1390 = Uniforms.uData[_1345].w - _1365; + _1401 = Uniforms.uData[_1356].w - _1376; } - _1404 = precise::max(_1390 - ((_1377 - _1374) * _1378), 0.0); + _1415 = precise::max(_1401 - ((_1388 - _1385) * _1389), 0.0); } - float _1407 = length(float2(_1371 - Uniforms.uData[_1345].y, _1404)) - _1374; - float _1409 = Uniforms.uData[_1348].z * _1357; - float _1410 = -_1407; - float _1426; + float _1418 = length(float2(_1382 - Uniforms.uData[_1356].y, _1415)) - _1385; + float _1420 = Uniforms.uData[_1359].z * _1368; + float _1421 = -_1418; + float _1437; do { - if (_1409 == 0.0) + if (_1420 == 0.0) { - _1426 = precise::max(_1330, _1410); + _1437 = precise::max(_1341, _1421); break; } - _1426 = precise::min(-_1409, precise::max(_1330, _1410)) + length(precise::max(float2(_1409 + _1330, _1409 - _1407), float2(0.0))); + _1437 = precise::min(-_1420, precise::max(_1341, _1421)) + length(precise::max(float2(_1420 + _1341, _1420 - _1418), float2(0.0))); break; } while(false); - _1331 = _1426; - int _1334 = _1333 + 1; - _1330 = _1331; - _1333 = _1334; + _1342 = _1437; + int _1345 = _1344 + 1; + _1341 = _1342; + _1344 = _1345; continue; } else @@ -1277,55 +1279,55 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Unifo break; } } - _1427 = _1330; + _1438 = _1341; } else { - float2 _1241 = _1204 - Uniforms.uData[_1222].xy; - float4 _1247 = precise::min(Uniforms.uData[_1221 + 13], float4(precise::min(Uniforms.uData[_1222].z, Uniforms.uData[_1222].w))); - float _1269; - if (_1241.x > 0.0) + float2 _1252 = _1215 - Uniforms.uData[_1233].xy; + float4 _1258 = precise::min(Uniforms.uData[_1232 + 13], float4(precise::min(Uniforms.uData[_1233].z, Uniforms.uData[_1233].w))); + float _1280; + if (_1252.x > 0.0) { - float _1268; - if (_1241.y > 0.0) + float _1279; + if (_1252.y > 0.0) { - _1268 = _1247.z; + _1279 = _1258.z; } else { - _1268 = _1247.y; + _1279 = _1258.y; } - _1269 = _1268; + _1280 = _1279; } else { - float _1260; - if (_1241.y > 0.0) + float _1271; + if (_1252.y > 0.0) { - _1260 = _1247.w; + _1271 = _1258.w; } else { - _1260 = _1247.x; + _1271 = _1258.x; } - _1269 = _1260; + _1280 = _1271; } - float2 _1273 = (abs(_1241) - Uniforms.uData[_1222].zw) + float2(_1269); - _1427 = (precise::min(precise::max(_1273.x, _1273.y), 0.0) + length(precise::max(_1273, float2(0.0)))) - _1269; + float2 _1284 = (abs(_1252) - Uniforms.uData[_1233].zw) + float2(_1280); + _1438 = (precise::min(precise::max(_1284.x, _1284.y), 0.0) + length(precise::max(_1284, float2(0.0)))) - _1280; } - bool _1428 = _1427 < _1209; - if (_1428) + bool _1439 = _1438 < _1220; + if (_1439) { - _1207 = _1209; + _1218 = _1220; } else { - _1207 = (_1427 < _1206) ? _1427 : _1206; + _1218 = (_1438 < _1217) ? _1438 : _1217; } - _1210 = _1428 ? _1427 : _1209; - _1206 = _1207; - _1209 = _1210; - _1211++; + _1221 = _1439 ? _1438 : _1220; + _1217 = _1218; + _1220 = _1221; + _1222++; continue; } else @@ -1333,400 +1335,402 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Unifo break; } } - float _1436 = precise::max(Uniforms.uData[1].x, 9.9999997473787516355514526367188e-05); - float _1441 = precise::max(_1436 - abs(_1209 - _1206), 0.0) / _1436; - float _1450 = 1.0 - fast::clamp((precise::min(_1209, _1206) - (((_1441 * _1441) * _1436) * 0.25)) / Uniforms.uData[11].x, 0.0, 1.0); - _1458 = ((Uniforms.uData[11].w * _1450) * _1450) * fast::clamp(mix(_1137.y, _1136.y, _1162), 0.0, 1.0); + float _1447 = precise::max(Uniforms.uData[1].x, 9.9999997473787516355514526367188e-05); + float _1452 = precise::max(_1447 - abs(_1220 - _1217), 0.0) / _1447; + float _1461 = 1.0 - fast::clamp((precise::min(_1220, _1217) - (((_1452 * _1452) * _1447) * 0.25)) / Uniforms.uData[11].x, 0.0, 1.0); + _1469 = ((Uniforms.uData[11].w * _1461) * _1461) * fast::clamp(mix(_1148.y, _1147.y, _1173), 0.0, 1.0); } else { - _1458 = 0.0; + _1469 = 0.0; } - bool _1459 = _1194 <= 0.0; - bool _1463; - if (_1459) + bool _1470 = _1205 <= 0.0; + bool _1474; + if (_1470) { - _1463 = _1458 <= 0.00200000009499490261077880859375; + _1474 = _1469 <= 0.00200000009499490261077880859375; } else { - _1463 = false; + _1474 = false; } - if (_1463) + if (_1474) { discard_fragment(); } if (in.in_var_COLOR.x < 0.5) { - _2007 = float4(0.0, 0.0, 0.0, _1194 + ((1.0 - _1194) * _1458)); + _2027 = float4(0.0, 0.0, 0.0, _1205 + ((1.0 - _1205) * _1469)); break; } - if (_1459) + if (_1470) { discard_fragment(); } - float4 _1478 = mix(_1137, _1136, float4(_1162)); - bool _1484; - if (_1004) + float4 _1489 = mix(_1148, _1147, float4(_1173)); + bool _1495; + if (_1015) { - _1484 = _1082 > _1182; + _1495 = _1093 > _1193; } else { - _1484 = false; - } - float2 _1487 = select(mix(_1144, _1143, float2(_1178)), _1083, bool2(_1484)); - float2 _1488 = float2(_1162); - float2 _1492 = mix(_1142, _1141, _1488) * precise::min(length(_1487), 1.0); - float _1494 = precise::max(0.0, -(_1484 ? _1082 : _1182)); - float _1495 = -_1494; - float _1498 = exp(_1495 / Uniforms.uData[1].z); - float _1504 = _1478.y; - float _1538; - float _1539; - float2 _1540; - if (_145) - { - float _1522 = precise::max(precise::min(Uniforms.uData[5].y * mix(_174, _1140, _1162), Uniforms.uData[6].w), 1.0); - float _1525 = fast::clamp(1.0 - (_1494 / _1522), 0.0, 1.0); - float _1530 = (((Uniforms.uData[5].z * _1522) * _1504) * _1525) * _1525; - _1538 = _1525; - _1539 = _1530; - _1540 = fast::clamp(((in.in_var_TEXCOORD0 - (_1487 * _1530)) - Uniforms.uData[0].xy) * Uniforms.uData[0].zw, float2(0.0), float2(1.0)); + _1495 = false; + } + float2 _1498 = select(mix(_1155, _1154, float2(_1189)), _1094, bool2(_1495)); + float2 _1499 = float2(_1173); + float2 _1503 = mix(_1153, _1152, _1499) * precise::min(length(_1498), 1.0); + float _1505 = precise::max(0.0, -(_1495 ? _1093 : _1193)); + float _1506 = mix(_175, _1151, _1173); + float _1510 = fast::clamp(_1506 / (3.0 * Uniforms.uData[1].z), 9.9999997473787516355514526367188e-05, 1.0); + float _1511 = -_1505; + float _1514 = exp(_1511 / (Uniforms.uData[1].z * _1510)); + float _1524 = _1489.y; + float _1558; + float _1559; + float2 _1560; + if (_146) + { + float _1542 = precise::max(precise::min(Uniforms.uData[5].y * _1506, Uniforms.uData[6].w), 1.0); + float _1545 = fast::clamp(1.0 - (_1505 / _1542), 0.0, 1.0); + float _1550 = (((Uniforms.uData[5].z * _1542) * _1524) * _1545) * _1545; + _1558 = _1545; + _1559 = _1550; + _1560 = fast::clamp(((in.in_var_TEXCOORD0 - (_1498 * _1550)) - Uniforms.uData[0].xy) * Uniforms.uData[0].zw, float2(0.0), float2(1.0)); } else { - _1538 = 0.0; - _1539 = 0.0; - _1540 = fast::clamp(((in.in_var_TEXCOORD0 + (_1487 * ((Uniforms.uData[2].x * _1504) * _1498))) - Uniforms.uData[0].xy) * Uniforms.uData[0].zw, float2(0.0), float2(1.0)); + _1558 = 0.0; + _1559 = 0.0; + _1560 = fast::clamp(((in.in_var_TEXCOORD0 + (_1498 * (((Uniforms.uData[2].x * _1510) * _1524) * _1514))) - Uniforms.uData[0].xy) * Uniforms.uData[0].zw, float2(0.0), float2(1.0)); } - float4 _1544 = Frost.sample(FrostSampler, _1540, level(0.0)); - bool _1546 = Uniforms.uData[4].w > 0.5; - float4 _1554; - if (_1546) + float4 _1564 = Frost.sample(FrostSampler, _1560, level(0.0)); + bool _1566 = Uniforms.uData[4].w > 0.5; + float4 _1574; + if (_1566) { - _1554 = Sharp.sample(SharpSampler, _1540, level(0.0)); + _1574 = Sharp.sample(SharpSampler, _1560, level(0.0)); } else { - _1554 = _1544; + _1574 = _1564; } - bool _1559; - if (_145) + bool _1579; + if (_146) { - _1559 = Uniforms.uData[6].y > 0.0; + _1579 = Uniforms.uData[6].y > 0.0; } else { - _1559 = false; + _1579 = false; } - bool _1563; - if (_1559) + bool _1583; + if (_1579) { - _1563 = _1539 > 0.5; + _1583 = _1559 > 0.5; } else { - _1563 = false; - } - float4 _1624; - float4 _1625; - if (_1563) - { - float2 _1571 = (_1487 * ((_1539 * 0.039999999105930328369140625) * Uniforms.uData[6].y)) * Uniforms.uData[0].zw; - float2 _1573 = fast::clamp(_1540 + _1571, float2(0.0), float2(1.0)); - float2 _1575 = fast::clamp(_1540 - _1571, float2(0.0), float2(1.0)); - float4 _1579 = Frost.sample(FrostSampler, _1573, level(0.0)); - float _1584 = _1544.w; - float _1585 = (_1579.x / precise::max(_1579.w, 9.9999997473787516355514526367188e-05)) * _1584; - float4 _1586 = _1544; - _1586.x = _1585; - float4 _1590 = Frost.sample(FrostSampler, _1575, level(0.0)); - float _1595 = (_1590.z / precise::max(_1590.w, 9.9999997473787516355514526367188e-05)) * _1584; - _1586.z = _1595; - float4 _1623; - if (_1546) + _1583 = false; + } + float4 _1644; + float4 _1645; + if (_1583) + { + float2 _1591 = (_1498 * ((_1559 * 0.039999999105930328369140625) * Uniforms.uData[6].y)) * Uniforms.uData[0].zw; + float2 _1593 = fast::clamp(_1560 + _1591, float2(0.0), float2(1.0)); + float2 _1595 = fast::clamp(_1560 - _1591, float2(0.0), float2(1.0)); + float4 _1599 = Frost.sample(FrostSampler, _1593, level(0.0)); + float _1604 = _1564.w; + float _1605 = (_1599.x / precise::max(_1599.w, 9.9999997473787516355514526367188e-05)) * _1604; + float4 _1606 = _1564; + _1606.x = _1605; + float4 _1610 = Frost.sample(FrostSampler, _1595, level(0.0)); + float _1615 = (_1610.z / precise::max(_1610.w, 9.9999997473787516355514526367188e-05)) * _1604; + _1606.z = _1615; + float4 _1643; + if (_1566) { - float4 _1605 = Sharp.sample(SharpSampler, _1573, level(0.0)); - float4 _1612 = _1554; - _1612.x = (_1605.x / precise::max(_1605.w, 9.9999997473787516355514526367188e-05)) * _1554.w; - float4 _1616 = Sharp.sample(SharpSampler, _1575, level(0.0)); - _1612.z = (_1616.z / precise::max(_1616.w, 9.9999997473787516355514526367188e-05)) * _1554.w; - _1623 = _1612; + float4 _1625 = Sharp.sample(SharpSampler, _1593, level(0.0)); + float4 _1632 = _1574; + _1632.x = (_1625.x / precise::max(_1625.w, 9.9999997473787516355514526367188e-05)) * _1574.w; + float4 _1636 = Sharp.sample(SharpSampler, _1595, level(0.0)); + _1632.z = (_1636.z / precise::max(_1636.w, 9.9999997473787516355514526367188e-05)) * _1574.w; + _1643 = _1632; } else { - float4 _1600 = _1554; - _1600.x = _1585; - _1600.z = _1595; - _1623 = _1600; + float4 _1620 = _1574; + _1620.x = _1605; + _1620.z = _1615; + _1643 = _1620; } - _1624 = _1623; - _1625 = _1586; + _1644 = _1643; + _1645 = _1606; } else { - _1624 = _1554; - _1625 = _1544; + _1644 = _1574; + _1645 = _1564; } - bool _1627 = Uniforms.uData[4].x > 1.5; - float _1641; - if (_1627) + bool _1647 = Uniforms.uData[4].x > 1.5; + float _1661; + if (_1647) { - _1641 = Uniforms.uData[3].w; + _1661 = Uniforms.uData[3].w; } else { - float _1639; + float _1659; if (fmod(Uniforms.uData[6].x, 2.0) > 0.5) { - _1639 = 1.0; + _1659 = 1.0; } else { - _1639 = _1625.w; + _1659 = _1645.w; } - _1641 = _1639; + _1661 = _1659; } - float4 _1650 = float4(_1625.xyz / float3(precise::max(_1625.w, 9.9999997473787516355514526367188e-05)), 1.0); - float4 _1659 = float4(_1624.xyz / float3(precise::max(_1624.w, 9.9999997473787516355514526367188e-05)), 1.0); - float _1666; - if (_1627) + float4 _1670 = float4(_1645.xyz / float3(precise::max(_1645.w, 9.9999997473787516355514526367188e-05)), 1.0); + float4 _1679 = float4(_1644.xyz / float3(precise::max(_1644.w, 9.9999997473787516355514526367188e-05)), 1.0); + float _1686; + if (_1647) { - _1666 = 1.0; + _1686 = 1.0; } else { - _1666 = (Uniforms.uData[4].z > 0.5) ? Uniforms.uData[4].x : 0.0; + _1686 = (Uniforms.uData[4].z > 0.5) ? Uniforms.uData[4].x : 0.0; } - bool _1670; - if (_145) + bool _1690; + if (_146) { - _1670 = !_1627; + _1690 = !_1647; } else { - _1670 = false; + _1690 = false; } - float _1679; - if (_1670) + float _1699; + if (_1690) { - _1679 = _1666 * (1.0 - ((_1538 * _1538) * (1.0 - smoothstep(0.800000011920928955078125, 1.0, _1666)))); + _1699 = _1686 * (1.0 - ((_1558 * _1558) * (1.0 - smoothstep(0.800000011920928955078125, 1.0, _1686)))); } else { - _1679 = _1666; + _1699 = _1686; } - float _1682 = 1.0 - _1679; - float _1690; - if (_145) + float _1702 = 1.0 - _1699; + float _1710; + if (_146) { - _1690 = _1538; + _1710 = _1558; } else { - _1690 = _1498 * _1498; + _1710 = _1514 * _1514; } - float _1693 = fast::clamp(((Uniforms.uData[2].y * _1504) * _1690) * _1682, 0.0, 1.0); - float4 _1699 = ((_1659 * _1693) + ((mix(_1659, _1650, float4(fast::clamp(_1478.x, 0.0, 1.0))) * _1682) * (1.0 - _1693))) + (Uniforms.uData[3] * _1679); - float4 _1742; - if (_1627) + float _1713 = fast::clamp(((Uniforms.uData[2].y * _1524) * _1710) * _1702, 0.0, 1.0); + float4 _1719 = ((_1679 * _1713) + ((mix(_1679, _1670, float4(fast::clamp(_1489.x, 0.0, 1.0))) * _1702) * (1.0 - _1713))) + (Uniforms.uData[3] * _1699); + float4 _1762; + if (_1647) { - _1742 = float4(Uniforms.uData[3].xyz / float3(precise::max(Uniforms.uData[3].w, 9.9999997473787516355514526367188e-05)), 1.0); + _1762 = float4(Uniforms.uData[3].xyz / float3(precise::max(Uniforms.uData[3].w, 9.9999997473787516355514526367188e-05)), 1.0); } else { - float4 _1706 = _1699 + (_1650 * (1.0 - _1699.w)); - float4 _1732; + float4 _1726 = _1719 + (_1670 * (1.0 - _1719.w)); + float4 _1752; if (Uniforms.uData[7].w < 1.0) { - float3 _1711 = _1706.xyz; - float _1712 = dot(_1711, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875)); - float _1713 = 0.60000002384185791015625 * Uniforms.uData[7].w; - float _1715 = precise::max(Uniforms.uData[7].w - _1713, 9.9999997473787516355514526367188e-05); - float _1727; - if (_1712 <= _1713) + float3 _1731 = _1726.xyz; + float _1732 = dot(_1731, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875)); + float _1733 = 0.60000002384185791015625 * Uniforms.uData[7].w; + float _1735 = precise::max(Uniforms.uData[7].w - _1733, 9.9999997473787516355514526367188e-05); + float _1747; + if (_1732 <= _1733) { - _1727 = _1712; + _1747 = _1732; } else { - _1727 = _1713 + (_1715 * (1.0 - exp((-(_1712 - _1713)) / _1715))); + _1747 = _1733 + (_1735 * (1.0 - exp((-(_1732 - _1733)) / _1735))); } - float3 _1730 = _1711 * (_1727 / precise::max(_1712, 9.9999997473787516355514526367188e-05)); - _1732 = float4(_1730.x, _1730.y, _1730.z, _1706.w); + float3 _1750 = _1731 * (_1747 / precise::max(_1732, 9.9999997473787516355514526367188e-05)); + _1752 = float4(_1750.x, _1750.y, _1750.z, _1726.w); } else { - _1732 = _1706; + _1752 = _1726; } - _1742 = _1732; + _1762 = _1752; } - float _1745 = dot(_1487, Uniforms.uData[9].xy); - float _1746 = precise::max(_1745, 0.0); - float _1748 = precise::max(-_1745, 0.0); - float _1749 = abs(_1745); - bool _1753; - if (_145) + float _1765 = dot(_1498, Uniforms.uData[9].xy); + float _1766 = precise::max(_1765, 0.0); + float _1768 = precise::max(-_1765, 0.0); + float _1769 = abs(_1765); + bool _1773; + if (_146) { - _1753 = Uniforms.uData[6].z > 0.0; + _1773 = Uniforms.uData[6].z > 0.0; } else { - _1753 = false; + _1773 = false; } - bool _1755 = Uniforms.uData[10].x > 0.0; - float _1783; - if (_1755) + bool _1775 = Uniforms.uData[10].x > 0.0; + float _1803; + if (_1775) { - _1783 = 0.0; + _1803 = 0.0; } else { - float _1782; - if (_1753) + float _1802; + if (_1773) { - _1782 = (Uniforms.uData[6].z * (1.0 - smoothstep(0.20000000298023223876953125, 0.699999988079071044921875, _1749))) * exp((-precise::max(0.0, -_1186)) / (Uniforms.uData[2].z * 2.5)); + _1802 = (Uniforms.uData[6].z * (1.0 - smoothstep(0.20000000298023223876953125, 0.699999988079071044921875, _1769))) * exp((-precise::max(0.0, -_1197)) / (Uniforms.uData[2].z * 2.5)); } else { - float _1767; - if (_1189) + float _1787; + if (_1200) { - _1767 = 0.699999988079071044921875; + _1787 = 0.699999988079071044921875; } else { - _1767 = Uniforms.uData[2].z * 0.625; + _1787 = Uniforms.uData[2].z * 0.625; } - _1782 = Uniforms.uData[8].x * (1.0 - smoothstep(0.0, _1767, -_1186)); + _1802 = Uniforms.uData[8].x * (1.0 - smoothstep(0.0, _1787, -_1197)); } - _1783 = _1782; + _1803 = _1802; } - float _1793; - if (_145) + float _1813; + if (_146) { - _1793 = precise::max((Uniforms.uData[5].w * _1538) * _1538, _1783) * precise::min(_1504, 1.0); + _1813 = precise::max((Uniforms.uData[5].w * _1558) * _1558, _1803) * precise::min(_1524, 1.0); } else { - _1793 = 0.0; + _1813 = 0.0; } - float _1796 = _1641 * (1.0 - _1793); - float4 _1802 = float4(_1742.xyz * _1796, _1796 + _1793); - float _1824; - if (_145) + float _1816 = _1661 * (1.0 - _1813); + float4 _1822 = float4(_1762.xyz * _1816, _1816 + _1813); + float _1844; + if (_146) { - float _1823; - if (_1753) + float _1843; + if (_1773) { - _1823 = Uniforms.uData[6].z * precise::max(smoothstep(0.75, 1.0, _1749), precise::max(_1492.x, _1492.y)); + _1843 = Uniforms.uData[6].z * precise::max(smoothstep(0.75, 1.0, _1769), precise::max(_1503.x, _1503.y)); } else { - _1823 = 0.25; + _1843 = 0.25; } - _1824 = _1823; + _1844 = _1843; } else { - _1824 = (0.449999988079071044921875 * ((_1746 * sqrt(_1746)) + ((0.75 * _1748) * sqrt(_1748)))) + 0.0599999986588954925537109375; + _1844 = (0.449999988079071044921875 * ((_1766 * sqrt(_1766)) + ((0.75 * _1768) * sqrt(_1768)))) + 0.0599999986588954925537109375; } - float _1860; - if (_1753) + float _1880; + if (_1773) { - _1860 = exp((-precise::max(0.0, -_1186)) / _1188); + _1880 = exp((-precise::max(0.0, -_1197)) / _1199); } else { - float _1854; - if (_145) + float _1874; + if (_146) { - float _1853; - if (_1189) + float _1873; + if (_1200) { - float _1848 = -_1186; - _1853 = smoothstep(0.0, 0.89999997615814208984375, _1848) * (1.0 - smoothstep(1.5, 2.400000095367431640625, _1848)); + float _1868 = -_1197; + _1873 = smoothstep(0.0, 0.89999997615814208984375, _1868) * (1.0 - smoothstep(1.5, 2.400000095367431640625, _1868)); } else { - float _1841 = -_1186; - _1853 = smoothstep(Uniforms.uData[2].z * 0.3125, Uniforms.uData[2].z * 0.625, _1841) * (1.0 - smoothstep(Uniforms.uData[2].z * 1.5, Uniforms.uData[2].z * 2.0, _1841)); + float _1861 = -_1197; + _1873 = smoothstep(Uniforms.uData[2].z * 0.3125, Uniforms.uData[2].z * 0.625, _1861) * (1.0 - smoothstep(Uniforms.uData[2].z * 1.5, Uniforms.uData[2].z * 2.0, _1861)); } - _1854 = _1853; + _1874 = _1873; } else { - _1854 = exp((-precise::max(0.0, -_1186)) / Uniforms.uData[2].z); + _1874 = exp((-precise::max(0.0, -_1197)) / Uniforms.uData[2].z); } - _1860 = _1854; + _1880 = _1874; } - float _1872; - if (_1755) + float _1892; + if (_1775) { - _1872 = 0.0; + _1892 = 0.0; } else { - float _1870; - if (_145) + float _1890; + if (_146) { - _1870 = 0.0; + _1890 = 0.0; } else { - _1870 = (0.039999999105930328369140625 * exp(_1495 / Uniforms.uData[1].w)) * _1746; + _1890 = (0.039999999105930328369140625 * exp(_1511 / (Uniforms.uData[1].w * fast::clamp(_1506 / (3.0 * Uniforms.uData[1].w), 9.9999997473787516355514526367188e-05, 1.0)))) * _1766; } - _1872 = (_1860 * _1824) + _1870; + _1892 = (_1880 * _1844) + _1890; } - float2 _1873 = mix(_1139, _1138, _1488); - float _1877 = _1873.y; - float _1883 = fast::clamp((in.in_var_TEXCOORD0.y - (_1873.x - _1877)) / precise::max(2.0 * _1877, 9.9999997473787516355514526367188e-05), 0.0, 1.0); - float _1901; + float2 _1893 = mix(_1150, _1149, _1499); + float _1897 = _1893.y; + float _1903 = fast::clamp((in.in_var_TEXCOORD0.y - (_1893.x - _1897)) / precise::max(2.0 * _1897, 9.9999997473787516355514526367188e-05), 0.0, 1.0); + float _1921; if (Uniforms.uData[4].z > 0.5) { - _1901 = Uniforms.uData[4].y + ((Uniforms.uData[7].x + ((Uniforms.uData[7].y - Uniforms.uData[7].x) * _1883)) + (Uniforms.uData[7].z * (1.0 - smoothstep(0.0, 0.37999999523162841796875, _1883)))); + _1921 = Uniforms.uData[4].y + ((Uniforms.uData[7].x + ((Uniforms.uData[7].y - Uniforms.uData[7].x) * _1903)) + (Uniforms.uData[7].z * (1.0 - smoothstep(0.0, 0.37999999523162841796875, _1903)))); } else { - _1901 = 0.0; + _1921 = 0.0; } - float3 _1911 = _1802.xyz + float3(fast::clamp((_1901 + _1478.z) + ((_1504 * Uniforms.uData[2].w) * _1872), 0.0, 1.0)); - float4 _1983; - if (_1755) + float3 _1931 = _1822.xyz + float3(fast::clamp((_1921 + _1489.z) + ((_1524 * Uniforms.uData[2].w) * _1892), 0.0, 1.0)); + float4 _2003; + if (_1775) { - float2 _1921; - if (dot(_1487, _1487) > 9.9999999392252902907785028219223e-09) + float2 _1941; + if (dot(_1498, _1498) > 9.9999999392252902907785028219223e-09) { - _1921 = fast::normalize(_1487); + _1941 = fast::normalize(_1498); } else { - _1921 = float2(0.0); + _1941 = float2(0.0); } - float _1922 = dot(_1921, Uniforms.uData[9].xy); - float _1924 = mix(8.0, 1.0, Uniforms.uData[9].z); - float _1932 = powr(precise::max(_1922, 0.0), _1924) + (Uniforms.uData[9].w * powr(precise::max(-_1922, 0.0), _1924)); - float _1933 = precise::min(_1504, 1.0); - float _1940 = -_1186; - float _1942 = smoothstep(-0.5, 0.5, _1940); - float _1944 = -precise::max(0.0, _1940); - float3 _1981 = (_1911.xyz * (1.0 - (((Uniforms.uData[10].z * (1.0 - abs(_1922))) * (_1942 * exp(_1944 / precise::max(Uniforms.uData[2].z * 2.5, 0.001000000047497451305389404296875)))) * _1933))) + float3(_1933 * (((Uniforms.uData[10].x * precise::max(_1932, precise::max(_1492.x, Uniforms.uData[9].w * _1492.y))) * (_1942 * exp(_1944 / precise::max(Uniforms.uData[8].y, 0.001000000047497451305389404296875)))) + ((Uniforms.uData[10].y * _1932) * (smoothstep(Uniforms.uData[8].y - 0.5, Uniforms.uData[8].y + 0.5, _1940) * exp((-precise::max(0.0, _1940 - Uniforms.uData[8].y)) / precise::max(Uniforms.uData[8].z, 0.001000000047497451305389404296875)))))); - _1983 = float4(_1981.x, _1981.y, _1981.z, _1802.w); + float _1942 = dot(_1941, Uniforms.uData[9].xy); + float _1944 = mix(8.0, 1.0, Uniforms.uData[9].z); + float _1952 = powr(precise::max(_1942, 0.0), _1944) + (Uniforms.uData[9].w * powr(precise::max(-_1942, 0.0), _1944)); + float _1953 = precise::min(_1524, 1.0); + float _1960 = -_1197; + float _1962 = smoothstep(-0.5, 0.5, _1960); + float _1964 = -precise::max(0.0, _1960); + float3 _2001 = (_1931.xyz * (1.0 - (((Uniforms.uData[10].z * (1.0 - abs(_1942))) * (_1962 * exp(_1964 / precise::max(Uniforms.uData[2].z * 2.5, 0.001000000047497451305389404296875)))) * _1953))) + float3(_1953 * (((Uniforms.uData[10].x * precise::max(_1952, precise::max(_1503.x, Uniforms.uData[9].w * _1503.y))) * (_1962 * exp(_1964 / precise::max(Uniforms.uData[8].y, 0.001000000047497451305389404296875)))) + ((Uniforms.uData[10].y * _1952) * (smoothstep(Uniforms.uData[8].y - 0.5, Uniforms.uData[8].y + 0.5, _1960) * exp((-precise::max(0.0, _1960 - Uniforms.uData[8].y)) / precise::max(Uniforms.uData[8].z, 0.001000000047497451305389404296875)))))); + _2003 = float4(_2001.x, _2001.y, _2001.z, _1822.w); } else { - _1983 = float4(_1911.x, _1911.y, _1911.z, _1802.w); + _2003 = float4(_1931.x, _1931.y, _1931.z, _1822.w); } - float4 _1984 = fast::clamp(_1983, float4(0.0), float4(1.0)); - float _1991 = precise::max(_1984.w, precise::max(_1984.x, precise::max(_1984.y, _1984.z))); - float4 _1992 = _1984; - _1992.w = _1991; - float3 _2003 = _1992.xyz + float3(((fract(52.98291778564453125 * fract(dot(in.in_var_TEXCOORD0, float2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5) * Uniforms.uData[5].x) * _1991); - _2007 = fast::clamp(float4(_2003.x, _2003.y, _2003.z, _1992.w), float4(0.0), float4(1.0)) * _1194; + float4 _2004 = fast::clamp(_2003, float4(0.0), float4(1.0)); + float _2011 = precise::max(_2004.w, precise::max(_2004.x, precise::max(_2004.y, _2004.z))); + float4 _2012 = _2004; + _2012.w = _2011; + float3 _2023 = _2012.xyz + float3(((fract(52.98291778564453125 * fract(dot(in.in_var_TEXCOORD0, float2(0.067110560834407806396484375, 0.005837149918079376220703125)))) - 0.5) * Uniforms.uData[5].x) * _2011); + _2027 = fast::clamp(float4(_2023.x, _2023.y, _2023.z, _2012.w), float4(0.0), float4(1.0)) * _1205; break; } while(false); - out.out_var_SV_Target0 = _2007; + out.out_var_SV_Target0 = _2027; return out; } diff --git a/backend/src/glass/shaders/compiled/spv/liquid_glass.fragment.spv b/backend/src/glass/shaders/compiled/spv/liquid_glass.fragment.spv index fd2f7fd8e..3224373d2 100644 Binary files a/backend/src/glass/shaders/compiled/spv/liquid_glass.fragment.spv and b/backend/src/glass/shaders/compiled/spv/liquid_glass.fragment.spv differ diff --git a/backend/src/glass/shaders/liquid_glass.fragment.hlsl b/backend/src/glass/shaders/liquid_glass.fragment.hlsl index 2bf7cbd4c..850150e28 100644 --- a/backend/src/glass/shaders/liquid_glass.fragment.hlsl +++ b/backend/src/glass/shaders/liquid_glass.fragment.hlsl @@ -20,6 +20,8 @@ // How far past its place's outline the outside of the place begins, in pixels: far enough that no // sliver of it shows inside, near enough that a shape at the outline still runs into it. #define EDGE_GAP 1.0 +// Depths of the curve a shape's shorter half needs before its rim is drawn whole (`liquid_glass.room`). +#define ROOM 3.0 // No SV_POSITION: D3D12 links a pixel shader's inputs to the vertex shader's outputs by register, // and the default vertex shader's third output (the instance) sits where a pixel position read @@ -174,6 +176,13 @@ float outlineAt(float2 q, int first, int count) return smin(d1, d2, max(uData[1].x, 0.0001), w); } +// How much of its rim a shape of shorter half `half` has room for, its curve `depth` deep +// (`LiquidField.fitHalf`): each shape's own, blended across a bridge. Never 0, which it divides. +float fitTo(float half, float depth) +{ + return clamp(half / (ROOM * depth), 0.0001, 1.0); +} + float noise(float2 p) { return frac(52.9829189 * frac(dot(p, float2(0.06711056, 0.00583715)))); @@ -231,9 +240,9 @@ float4 main(PSInput input) : SV_Target0 float2 o; float f = d; if (panel) { - f = panelDistance(p, g1.y, o); + f = panelDistance(p, g1.y * fitTo(hs, g1.z), o); } else if (s2.w < 0.5) { - f = softBox(p, s0, g1.y, o); + f = softBox(p, s0, g1.y * fitTo(hs, g1.z), o); } else { o = g; } @@ -295,8 +304,12 @@ float4 main(PSInput input) : SV_Target0 // folds in (a neck), which is no outline. float2 along = lerp(al1, al2, wm) * min(length(outv), 1.0); float soft = max(0.0, -F); - float steepR = exp(-soft / g1.z); - float steepL = exp(-soft / g1.w); + // The depths fitted to the shapes here, blended as they are: a small drop's rim its own size, + // a bar's whole beside it. + float hr = lerp(h1, h2, wm); + float fitR = fitTo(hr, g1.z); + float steepR = exp(-soft / (g1.z * fitR)); + float steepL = exp(-soft / (g1.w * fitTo(hr, g1.w))); float b = clamp(mat.x, 0.0, 1.0); float lens = mat.y; @@ -315,7 +328,7 @@ float4 main(PSInput input) : SV_Target0 disp = g5.z * W * lens * t * t; uv = clamp((p - outv * disp - g0.xy) * g0.zw, 0.0, 1.0); } else { - uv = clamp((p + outv * (g2.x * lens * steepR) - g0.xy) * g0.zw, 0.0, 1.0); + uv = clamp((p + outv * (g2.x * fitR * lens * steepR) - g0.xy) * g0.zw, 0.0, 1.0); } float4 frost = Frost.SampleLevel(FrostSampler, uv, 0.0); float4 sharp = g4.w > 0.5 ? Sharp.SampleLevel(SharpSampler, uv, 0.0) : frost;