From 8a7a54ffba60056961d882b30c0ad370ac7c9b96 Mon Sep 17 00:00:00 2001 From: Jari Komppa Date: Tue, 7 Dec 2021 11:25:06 +0200 Subject: [PATCH] Apply floor() to gl_FragCoord This change applies floor() to the uses of gl_FragCoord in order to eliminate the potential ambiguity of having 0.5 in the source values. This should improve the stability of the shaders in fuzzing. --- .../src/main/glsl/samples/100/colorgrid_modulo.frag | 4 ++-- .../src/main/glsl/samples/100/mandelbrot_zoom.frag | 2 +- shaders/src/main/glsl/samples/100/squares.frag | 2 +- .../glsl/samples/100/stable_bubblesort_flag.frag | 4 ++-- .../src/main/glsl/samples/300es/binarysearch_bw.frag | 8 ++++---- .../main/glsl/samples/300es/binarysearch_tree.frag | 2 +- .../main/glsl/samples/300es/colorgrid_modulo.frag | 4 ++-- .../main/glsl/samples/300es/householder_lattice.frag | 2 +- .../glsl/samples/300es/mandelbrot_fixed_point.frag | 2 +- .../src/main/glsl/samples/300es/mandelbrot_zoom.frag | 2 +- .../main/glsl/samples/300es/mergesort_mosaic.frag | 12 ++++++------ .../main/glsl/samples/300es/prefix_sum_checkers.frag | 2 +- .../main/glsl/samples/300es/quicksort_palette.frag | 4 ++-- .../glsl/samples/300es/selection_sort_struct.frag | 6 +++--- shaders/src/main/glsl/samples/300es/squares.frag | 2 +- .../glsl/samples/300es/stable_bubblesort_flag.frag | 4 ++-- .../main/glsl/samples/300es/trigonometric_strip.frag | 2 +- .../src/main/glsl/samples/320es/binarysearch_bw.frag | 8 ++++---- .../main/glsl/samples/320es/binarysearch_tree.frag | 2 +- .../samples/320es/bubblesort_flag_intfunctions.frag | 4 ++-- .../main/glsl/samples/320es/colorgrid_modulo.frag | 4 ++-- .../samples/320es/colorgrid_modulo_intfunctions.frag | 4 ++-- .../main/glsl/samples/320es/householder_lattice.frag | 2 +- .../glsl/samples/320es/mandelbrot_fixed_point.frag | 2 +- .../src/main/glsl/samples/320es/mandelbrot_zoom.frag | 2 +- .../samples/320es/mandelbrot_zoom_intfunctions.frag | 2 +- .../main/glsl/samples/320es/matrices_many_loops.frag | 4 ++-- .../glsl/samples/320es/matrices_smart_loops.frag | 4 ++-- .../main/glsl/samples/320es/mergesort_mosaic.frag | 12 ++++++------ .../main/glsl/samples/320es/prefix_sum_checkers.frag | 2 +- .../main/glsl/samples/320es/quicksort_palette.frag | 4 ++-- .../glsl/samples/320es/selection_sort_struct.frag | 6 +++--- shaders/src/main/glsl/samples/320es/squares.frag | 2 +- .../glsl/samples/320es/squares_intfunctions.frag | 2 +- .../main/glsl/samples/320es/stable_bifurcation.frag | 2 +- .../glsl/samples/320es/stable_bubblesort_flag.frag | 4 ++-- .../src/main/glsl/samples/320es/stable_collatz.frag | 2 +- .../glsl/samples/320es/stable_colorgrid_modulo.frag | 4 ++-- .../src/main/glsl/samples/320es/stable_logicops.frag | 2 +- shaders/src/main/glsl/samples/320es/stable_maze.frag | 2 +- .../src/main/glsl/samples/320es/stable_orbit.frag | 2 +- .../src/main/glsl/samples/320es/stable_pillars.frag | 2 +- .../main/glsl/samples/320es/stable_quicksort.frag | 2 +- .../src/main/glsl/samples/320es/stable_rects.frag | 2 +- .../glsl/samples/320es/stable_sampler_boxfilter.frag | 2 +- .../main/glsl/samples/320es/stable_sampler_loop.frag | 2 +- .../glsl/samples/320es/stable_sampler_minimal.frag | 2 +- .../main/glsl/samples/320es/stable_sampler_mip.frag | 2 +- .../samples/320es/stable_sampler_polar_simple.frag | 2 +- .../samples/320es/stable_sampler_polar_warp.frag | 2 +- .../glsl/samples/320es/stable_sampler_reuse.frag | 2 +- .../glsl/samples/320es/stable_sampler_trace.frag | 2 +- .../src/main/glsl/samples/320es/stable_triangle.frag | 2 +- .../main/glsl/samples/320es/trigonometric_strip.frag | 2 +- .../src/main/glsl/samples/450/binarysearch_bw.frag | 8 ++++---- .../src/main/glsl/samples/450/binarysearch_tree.frag | 2 +- .../samples/450/bubblesort_flag_intfunctions.frag | 4 ++-- .../src/main/glsl/samples/450/colorgrid_modulo.frag | 4 ++-- .../samples/450/colorgrid_modulo_intfunctions.frag | 4 ++-- .../main/glsl/samples/450/householder_lattice.frag | 2 +- .../glsl/samples/450/mandelbrot_fixed_point.frag | 2 +- .../src/main/glsl/samples/450/mandelbrot_zoom.frag | 2 +- .../samples/450/mandelbrot_zoom_intfunctions.frag | 2 +- .../main/glsl/samples/450/matrices_many_loops.frag | 4 ++-- .../main/glsl/samples/450/matrices_smart_loops.frag | 4 ++-- .../src/main/glsl/samples/450/mergesort_mosaic.frag | 12 ++++++------ .../main/glsl/samples/450/prefix_sum_checkers.frag | 2 +- .../src/main/glsl/samples/450/quicksort_palette.frag | 4 ++-- .../main/glsl/samples/450/selection_sort_struct.frag | 6 +++--- shaders/src/main/glsl/samples/450/squares.frag | 2 +- .../main/glsl/samples/450/squares_intfunctions.frag | 2 +- .../main/glsl/samples/450/stable_bifurcation.frag | 2 +- .../glsl/samples/450/stable_bubblesort_flag.frag | 4 ++-- .../src/main/glsl/samples/450/stable_collatz.frag | 2 +- .../glsl/samples/450/stable_colorgrid_modulo.frag | 4 ++-- .../src/main/glsl/samples/450/stable_logicops.frag | 2 +- shaders/src/main/glsl/samples/450/stable_maze.frag | 2 +- shaders/src/main/glsl/samples/450/stable_orbit.frag | 2 +- .../src/main/glsl/samples/450/stable_pillars.frag | 2 +- .../src/main/glsl/samples/450/stable_quicksort.frag | 2 +- shaders/src/main/glsl/samples/450/stable_rects.frag | 2 +- .../glsl/samples/450/stable_sampler_boxfilter.frag | 2 +- .../main/glsl/samples/450/stable_sampler_loop.frag | 2 +- .../glsl/samples/450/stable_sampler_minimal.frag | 2 +- .../main/glsl/samples/450/stable_sampler_mip.frag | 2 +- .../samples/450/stable_sampler_polar_simple.frag | 2 +- .../glsl/samples/450/stable_sampler_polar_warp.frag | 2 +- .../main/glsl/samples/450/stable_sampler_reuse.frag | 2 +- .../main/glsl/samples/450/stable_sampler_trace.frag | 2 +- .../src/main/glsl/samples/450/stable_triangle.frag | 2 +- .../main/glsl/samples/450/trigonometric_strip.frag | 2 +- .../main/glsl/samples/webgl1/colorgrid_modulo.frag | 4 ++-- .../main/glsl/samples/webgl1/mandelbrot_zoom.frag | 2 +- shaders/src/main/glsl/samples/webgl1/squares.frag | 2 +- .../glsl/samples/webgl1/stable_bubblesort_flag.frag | 4 ++-- .../main/glsl/samples/webgl2/colorgrid_modulo.frag | 4 ++-- .../main/glsl/samples/webgl2/mandelbrot_zoom.frag | 2 +- shaders/src/main/glsl/samples/webgl2/squares.frag | 2 +- .../glsl/samples/webgl2/stable_bubblesort_flag.frag | 4 ++-- 99 files changed, 154 insertions(+), 154 deletions(-) diff --git a/shaders/src/main/glsl/samples/100/colorgrid_modulo.frag b/shaders/src/main/glsl/samples/100/colorgrid_modulo.frag index 10978c024..d92b53ee7 100644 --- a/shaders/src/main/glsl/samples/100/colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/100/colorgrid_modulo.frag @@ -38,8 +38,8 @@ void main() vec4 c = vec4(0.0, 0.0, 0.0, 1.0); float ref = floor(resolution.x / 8.0); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/100/mandelbrot_zoom.frag b/shaders/src/main/glsl/samples/100/mandelbrot_zoom.frag index 4023d98a2..e0940edcf 100644 --- a/shaders/src/main/glsl/samples/100/mandelbrot_zoom.frag +++ b/shaders/src/main/glsl/samples/100/mandelbrot_zoom.frag @@ -55,7 +55,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/100/squares.frag b/shaders/src/main/glsl/samples/100/squares.frag index 28c5e5f39..ed43b513d 100644 --- a/shaders/src/main/glsl/samples/100/squares.frag +++ b/shaders/src/main/glsl/samples/100/squares.frag @@ -96,7 +96,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/100/stable_bubblesort_flag.frag b/shaders/src/main/glsl/samples/100/stable_bubblesort_flag.frag index cbf269cf2..85eb1e0b8 100644 --- a/shaders/src/main/glsl/samples/100/stable_bubblesort_flag.frag +++ b/shaders/src/main/glsl/samples/100/stable_bubblesort_flag.frag @@ -24,7 +24,7 @@ uniform vec2 resolution; bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() { @@ -62,7 +62,7 @@ void main() } } } - if(gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { gl_FragColor = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/300es/binarysearch_bw.frag b/shaders/src/main/glsl/samples/300es/binarysearch_bw.frag index 1cef54511..396f4f865 100644 --- a/shaders/src/main/glsl/samples/300es/binarysearch_bw.frag +++ b/shaders/src/main/glsl/samples/300es/binarysearch_bw.frag @@ -55,7 +55,7 @@ vec2 brick(vec2 uv) { int b = 3; do { uv.y -= step(injectionSwitch.y, uv.x) + float(a); - uv.x *= (isnan(uv.y) ? cosh(gl_FragCoord.y) : tanh(gl_FragCoord.x)); + uv.x *= (isnan(uv.y) ? cosh(floor(gl_FragCoord.y)) : tanh(floor(gl_FragCoord.x))); b--; } while (b > int(injectionSwitch.x)); int c = 2; @@ -75,7 +75,7 @@ vec2 brick(vec2 uv) { float patternize(vec2 uv) { vec2 size = vec2(0.45); vec2 st = smoothstep(size, size, uv); - switch (int(mod(gl_FragCoord.y, 5.0))) { + switch (int(mod(floor(gl_FragCoord.y), 5.0))) { case 0: return mix(pow(st.x, injectionSwitch.y), st.x, size.y); break; @@ -139,11 +139,11 @@ void main() { } } - vec2 uv = (gl_FragCoord.xy / resolution.x) * vec2(resolution.x / resolution.y, 1.0); + vec2 uv = (floor(gl_FragCoord.xy) / resolution.x) * vec2(resolution.x / resolution.y, 1.0); vec2 b = brick(uv * 7.0); vec3 color = vec3(patternize(b)); - if (gl_FragCoord.y < resolution.y / 1.1) { + if (floor(gl_FragCoord.y) < resolution.y / 1.1) { // We are going to search the item in array by giving the value of the item index 4 and 0 in an array. if (binarySearch(obj, obj.prime_numbers[4]) != -(int(resolution.y)) && binarySearch(obj, obj.prime_numbers[0]) >= -(int(resolution.x))) { color.yz -= dot(float(binarySearch(obj, obj.prime_numbers[4])), float(binarySearch(obj, obj.prime_numbers[0]))); diff --git a/shaders/src/main/glsl/samples/300es/binarysearch_tree.frag b/shaders/src/main/glsl/samples/300es/binarysearch_tree.frag index 944fb705c..9e5a76845 100644 --- a/shaders/src/main/glsl/samples/300es/binarysearch_tree.frag +++ b/shaders/src/main/glsl/samples/300es/binarysearch_tree.frag @@ -151,7 +151,7 @@ void main() { treeIndex++; insert(treeIndex, 13); - vec2 z = (gl_FragCoord.yx / resolution); + vec2 z = (floor(gl_FragCoord.yx) / resolution); float x = makeFrame(z.x); float y = makeFrame(z.y); diff --git a/shaders/src/main/glsl/samples/300es/colorgrid_modulo.frag b/shaders/src/main/glsl/samples/300es/colorgrid_modulo.frag index f2487d549..71dcf5cfa 100644 --- a/shaders/src/main/glsl/samples/300es/colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/300es/colorgrid_modulo.frag @@ -40,8 +40,8 @@ void main() vec4 c = vec4(0.0, 0.0, 0.0, 1.0); float ref = floor(resolution.x / 8.0); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/300es/householder_lattice.frag b/shaders/src/main/glsl/samples/300es/householder_lattice.frag index e061b06c1..2350d5b55 100644 --- a/shaders/src/main/glsl/samples/300es/householder_lattice.frag +++ b/shaders/src/main/glsl/samples/300es/householder_lattice.frag @@ -28,7 +28,7 @@ void main() { // We need to modify A in place, so we have to copy the uniform mat4 matrix_a = mat4(matrix_a_uni); - vec4 matrix_b = gl_FragCoord.wxyz; + vec4 matrix_b = floor(gl_FragCoord.wxyz); vec4 matrix_u = vec4(0.0); diff --git a/shaders/src/main/glsl/samples/300es/mandelbrot_fixed_point.frag b/shaders/src/main/glsl/samples/300es/mandelbrot_fixed_point.frag index ee2237e0d..562600d09 100644 --- a/shaders/src/main/glsl/samples/300es/mandelbrot_fixed_point.frag +++ b/shaders/src/main/glsl/samples/300es/mandelbrot_fixed_point.frag @@ -63,7 +63,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/300es/mandelbrot_zoom.frag b/shaders/src/main/glsl/samples/300es/mandelbrot_zoom.frag index 477a673c3..c5a6a0f32 100644 --- a/shaders/src/main/glsl/samples/300es/mandelbrot_zoom.frag +++ b/shaders/src/main/glsl/samples/300es/mandelbrot_zoom.frag @@ -57,7 +57,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/300es/mergesort_mosaic.frag b/shaders/src/main/glsl/samples/300es/mergesort_mosaic.frag index 8afcebd6c..ddbcd5b22 100644 --- a/shaders/src/main/glsl/samples/300es/mergesort_mosaic.frag +++ b/shaders/src/main/glsl/samples/300es/mergesort_mosaic.frag @@ -121,13 +121,13 @@ void main() { vec3(0, -5, int(injectionSwitch.y)) * LDEXP(0.2, 5.0), vec3(1, 8, int(injectionSwitch.y)) * LDEXP(injectionSwitch.y, 0.0) ); - vec3 vecCoor = roundEven(pos * vec3(gl_FragCoord.xx / resolution.yx, 1)); + vec3 vecCoor = roundEven(pos * vec3(floor(gl_FragCoord.xx) / resolution.yx, 1)); vec2 color; do { if (int(gl_FragCoord[1]) < 30) { color = fract(sin(vecCoor.yx - trunc(float(data[0])))); - color[0] = dFdy(gl_FragCoord.y); + color[0] = dFdy(floor(gl_FragCoord.y)); break; } else if (int(gl_FragCoord[1]) < 60) { color = fract(sin(vecCoor.yx - trunc(float(data[1])))); @@ -135,17 +135,17 @@ void main() { break; } else if (int(gl_FragCoord[1]) < 90) { color = fract(sin(vecCoor.yx - trunc(float(data[2])))); - color.x += atanh(color.x) * cosh(injectionSwitch.y) * smoothstep(color, injectionSwitch, gl_FragCoord.yy).x; + color.x += atanh(color.x) * cosh(injectionSwitch.y) * smoothstep(color, injectionSwitch, floor(gl_FragCoord.yy)).x; break; } else if (int(gl_FragCoord[1]) < 120) { color = fract(acosh(clamp(vecCoor.yx - trunc(float(data[3])), 1.0, 1000.0))); - color.x += (isnan(gl_FragCoord.x) ? log2(gl_FragCoord.x) : log2(gl_FragCoord.y)); + color.x += (isnan(floor(gl_FragCoord.x)) ? log2(floor(gl_FragCoord.x)) : log2(floor(gl_FragCoord.y))); break; } else if (int(gl_FragCoord[1]) < 150) { discard; } else if (int(gl_FragCoord[1]) < 180) { color = fract(sin(vecCoor.yx - trunc(float(data[4])))); - color[1] += asinh(gl_FragCoord.y * LDEXP(color.y, float(-i))); + color[1] += asinh(floor(gl_FragCoord.y) * LDEXP(color.y, float(-i))); break; } else if (int(gl_FragCoord[1]) < 210) { color = fract(sin(vecCoor.yx - trunc(float(data[5])))); @@ -153,7 +153,7 @@ void main() { break; } else if (int(gl_FragCoord[1]) < 240) { color = fract(asinh(vecCoor.yx - trunc(float(data[6])))); - color.y -= isnan(float(i)) ? tanh(gl_FragCoord.x): atanh(gl_FragCoord.y); + color.y -= isnan(float(i)) ? tanh(floor(gl_FragCoord.x)): atanh(floor(gl_FragCoord.y)); break; } else if (int(gl_FragCoord[1]) < 270) { color = fract(sin(vecCoor.yx - trunc(float(data[7])))); diff --git a/shaders/src/main/glsl/samples/300es/prefix_sum_checkers.frag b/shaders/src/main/glsl/samples/300es/prefix_sum_checkers.frag index 36043ed57..8d9ee9b66 100644 --- a/shaders/src/main/glsl/samples/300es/prefix_sum_checkers.frag +++ b/shaders/src/main/glsl/samples/300es/prefix_sum_checkers.frag @@ -46,7 +46,7 @@ vec2 pattern(in vec2 x) { } void main() { - vec2 uv = gl_FragCoord.xy / resolution.y; + vec2 uv = floor(gl_FragCoord.xy) / resolution.y; float A[50]; for (int i = 0; i < 200; i++) { if (i >= int(resolution.x)) { diff --git a/shaders/src/main/glsl/samples/300es/quicksort_palette.frag b/shaders/src/main/glsl/samples/300es/quicksort_palette.frag index a33448293..87cfd0e66 100644 --- a/shaders/src/main/glsl/samples/300es/quicksort_palette.frag +++ b/shaders/src/main/glsl/samples/300es/quicksort_palette.frag @@ -97,7 +97,7 @@ void main() { } quicksort(); vec2 grid = vec2(20, 20); - vec2 uv = gl_FragCoord.xy / resolution; + vec2 uv = floor(gl_FragCoord.xy) / resolution; vec3 color = palette(vec3(float(obj.numbers[4]) * 0.1), vec3(0.9, float(obj.numbers[8]) * 0.1, 0.8), trunc(vec3(injectionSwitch.y)), vec3(injectionSwitch.x, 0.3, 0.7)); if (uv.x > (1.0 / 4.0)) { int count = int(injectionSwitch.x); @@ -124,7 +124,7 @@ void main() { grid += vec2(count + obj.numbers[3], count + obj.numbers[3]); } - vec2 position = vec2(gl_FragCoord.x, resolution.x - gl_FragCoord.y); + vec2 position = vec2(floor(gl_FragCoord.x), resolution.x - floor(gl_FragCoord.y)); position = floor(position / grid); _GLF_color = vec4(color, injectionSwitch.y) + vec4(!puzzlelize(position)); diff --git a/shaders/src/main/glsl/samples/300es/selection_sort_struct.frag b/shaders/src/main/glsl/samples/300es/selection_sort_struct.frag index b833868b1..9aad4c9f2 100644 --- a/shaders/src/main/glsl/samples/300es/selection_sort_struct.frag +++ b/shaders/src/main/glsl/samples/300es/selection_sort_struct.frag @@ -60,11 +60,11 @@ void main() { obj.even_numbers[i] = smaller_number; } - vec2 uv = gl_FragCoord.xy/resolution.xy; + vec2 uv = floor(gl_FragCoord.xy)/resolution.xy; vec3 col = tan(pow(uv.xxx, uv.yyy) + vec3( - obj.odd_numbers[int(floor(gl_FragCoord.x/1000.0))], - obj.even_numbers[int(floor(gl_FragCoord.y/1000.0))], + obj.odd_numbers[int(floor(floor(gl_FragCoord.x) / 1000.0))], + obj.even_numbers[int(floor(floor(gl_FragCoord.y) / 1000.0))], sinh(uv.x) )); diff --git a/shaders/src/main/glsl/samples/300es/squares.frag b/shaders/src/main/glsl/samples/300es/squares.frag index b7edc5b70..2831c0c49 100644 --- a/shaders/src/main/glsl/samples/300es/squares.frag +++ b/shaders/src/main/glsl/samples/300es/squares.frag @@ -98,7 +98,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/300es/stable_bubblesort_flag.frag b/shaders/src/main/glsl/samples/300es/stable_bubblesort_flag.frag index e143ec369..6c0d94435 100644 --- a/shaders/src/main/glsl/samples/300es/stable_bubblesort_flag.frag +++ b/shaders/src/main/glsl/samples/300es/stable_bubblesort_flag.frag @@ -26,7 +26,7 @@ uniform vec2 resolution; bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() { @@ -64,7 +64,7 @@ void main() } } } - if(gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { _GLF_color = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/300es/trigonometric_strip.frag b/shaders/src/main/glsl/samples/300es/trigonometric_strip.frag index 53d7e47f9..f42be2e28 100644 --- a/shaders/src/main/glsl/samples/300es/trigonometric_strip.frag +++ b/shaders/src/main/glsl/samples/300es/trigonometric_strip.frag @@ -37,7 +37,7 @@ float compute_stripe(float v) { } void main() { - vec2 uv = gl_FragCoord.xy / resolution.x; + vec2 uv = floor(gl_FragCoord.xy) / resolution.x; vec3 col = vec3(0, 0, 0); bool c1 = uv.y < 0.25; diff --git a/shaders/src/main/glsl/samples/320es/binarysearch_bw.frag b/shaders/src/main/glsl/samples/320es/binarysearch_bw.frag index b3f14c0c1..e5a1d878c 100644 --- a/shaders/src/main/glsl/samples/320es/binarysearch_bw.frag +++ b/shaders/src/main/glsl/samples/320es/binarysearch_bw.frag @@ -38,7 +38,7 @@ vec2 brick(vec2 uv) { int b = 3; do { uv.y -= step(injectionSwitch.y, uv.x) + float(a); - uv.x *= (isnan(uv.y) ? cosh(gl_FragCoord.y) : tanh(gl_FragCoord.x)); + uv.x *= (isnan(uv.y) ? cosh(floor(gl_FragCoord.y)) : tanh(floor(gl_FragCoord.x))); b--; } while (b > int(injectionSwitch.x)); int c = 2; @@ -58,7 +58,7 @@ vec2 brick(vec2 uv) { float patternize(vec2 uv) { vec2 size = vec2(0.45); vec2 st = smoothstep(size, size, uv); - switch (int(mod(gl_FragCoord.y, 5.0))) { + switch (int(mod(floor(gl_FragCoord.y), 5.0))) { case 0: return mix(pow(st.x, injectionSwitch.y), st.x, size.y); break; @@ -122,11 +122,11 @@ void main() { } } - vec2 uv = (gl_FragCoord.xy / resolution.x) * vec2(resolution.x / resolution.y, 1.0); + vec2 uv = (floor(gl_FragCoord.xy) / resolution.x) * vec2(resolution.x / resolution.y, 1.0); vec2 b = brick(uv * 7.0); vec3 color = vec3(patternize(b)); - if (gl_FragCoord.y < resolution.y / 1.1) { + if (floor(gl_FragCoord.y) < resolution.y / 1.1) { // We are going to search the item in array by giving the value of the item index 4 and 0 in an array. if (binarySearch(obj, obj.prime_numbers[4]) != -(int(resolution.y)) && binarySearch(obj, obj.prime_numbers[0]) >= -(int(resolution.x))) { color.yz -= dot(float(binarySearch(obj, obj.prime_numbers[4])), float(binarySearch(obj, obj.prime_numbers[0]))); diff --git a/shaders/src/main/glsl/samples/320es/binarysearch_tree.frag b/shaders/src/main/glsl/samples/320es/binarysearch_tree.frag index 1c645f045..2db6979af 100644 --- a/shaders/src/main/glsl/samples/320es/binarysearch_tree.frag +++ b/shaders/src/main/glsl/samples/320es/binarysearch_tree.frag @@ -149,7 +149,7 @@ void main() { treeIndex++; insert(treeIndex, 13); - vec2 z = (gl_FragCoord.yx / resolution); + vec2 z = (floor(gl_FragCoord.yx) / resolution); float x = makeFrame(z.x); float y = makeFrame(z.y); diff --git a/shaders/src/main/glsl/samples/320es/bubblesort_flag_intfunctions.frag b/shaders/src/main/glsl/samples/320es/bubblesort_flag_intfunctions.frag index d41b1f1f1..3c6fe82ea 100644 --- a/shaders/src/main/glsl/samples/320es/bubblesort_flag_intfunctions.frag +++ b/shaders/src/main/glsl/samples/320es/bubblesort_flag_intfunctions.frag @@ -27,7 +27,7 @@ uniform vec2 resolution; bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() { @@ -58,7 +58,7 @@ void main() } i++; } while(i < findMSB(msb9)); - if(gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { _GLF_color = vec4(data[findMSB(1)] / 10.0, data[findLSB(32)] / 10.0, data[findMSB(msb9)] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/320es/colorgrid_modulo.frag b/shaders/src/main/glsl/samples/320es/colorgrid_modulo.frag index 3f3a8fbb7..67197be06 100644 --- a/shaders/src/main/glsl/samples/320es/colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/320es/colorgrid_modulo.frag @@ -40,8 +40,8 @@ void main() vec4 c = vec4(0.0, 0.0, 0.0, 1.0); float ref = floor(resolution.x / 8.0); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/320es/colorgrid_modulo_intfunctions.frag b/shaders/src/main/glsl/samples/320es/colorgrid_modulo_intfunctions.frag index 2702c565d..09676f0e8 100644 --- a/shaders/src/main/glsl/samples/320es/colorgrid_modulo_intfunctions.frag +++ b/shaders/src/main/glsl/samples/320es/colorgrid_modulo_intfunctions.frag @@ -47,8 +47,8 @@ void main() vec4 c = vec4(bitfieldExtract(0, 0, 0), 0.0, 0.0, bitCount(msb8)); float ref = floor(resolution.x / float(findLSB(msb8))); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; int i = bitfieldReverse(bitfieldExtract(0, 0, 0)); do { diff --git a/shaders/src/main/glsl/samples/320es/householder_lattice.frag b/shaders/src/main/glsl/samples/320es/householder_lattice.frag index dc490dbe7..6beb78b86 100644 --- a/shaders/src/main/glsl/samples/320es/householder_lattice.frag +++ b/shaders/src/main/glsl/samples/320es/householder_lattice.frag @@ -28,7 +28,7 @@ void main() { // We need to modify A in place, so we have to copy the uniform mat4 matrix_a = mat4(matrix_a_uni); - vec4 matrix_b = gl_FragCoord.wxyz; + vec4 matrix_b = floor(gl_FragCoord.wxyz); vec4 matrix_u = vec4(0.0); diff --git a/shaders/src/main/glsl/samples/320es/mandelbrot_fixed_point.frag b/shaders/src/main/glsl/samples/320es/mandelbrot_fixed_point.frag index 5cdfdce17..e2f2c86e0 100644 --- a/shaders/src/main/glsl/samples/320es/mandelbrot_fixed_point.frag +++ b/shaders/src/main/glsl/samples/320es/mandelbrot_fixed_point.frag @@ -63,7 +63,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/320es/mandelbrot_zoom.frag b/shaders/src/main/glsl/samples/320es/mandelbrot_zoom.frag index a71bf10b8..293ee3456 100644 --- a/shaders/src/main/glsl/samples/320es/mandelbrot_zoom.frag +++ b/shaders/src/main/glsl/samples/320es/mandelbrot_zoom.frag @@ -57,7 +57,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/320es/mandelbrot_zoom_intfunctions.frag b/shaders/src/main/glsl/samples/320es/mandelbrot_zoom_intfunctions.frag index d0777a0ad..6d8cceb67 100644 --- a/shaders/src/main/glsl/samples/320es/mandelbrot_zoom_intfunctions.frag +++ b/shaders/src/main/glsl/samples/320es/mandelbrot_zoom_intfunctions.frag @@ -72,7 +72,7 @@ void main() { vec3 data[16]; for (int i = 0; i < findMSB(16); i++) { for (int j = 0; j < findLSB(16); j++) { - data[uaddCarry(uint(4*j), uint(i), uselessOutVariable)] = mand(gl_FragCoord.x + float(i - bitCount(1)), gl_FragCoord.y + float(j - bitCount(1))); + data[uaddCarry(uint(4*j), uint(i), uselessOutVariable)] = mand(floor(gl_FragCoord.x) + float(i - bitCount(1)), floor(gl_FragCoord.y) + float(j - bitCount(1))); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/320es/matrices_many_loops.frag b/shaders/src/main/glsl/samples/320es/matrices_many_loops.frag index 8125f39a4..c3565c075 100644 --- a/shaders/src/main/glsl/samples/320es/matrices_many_loops.frag +++ b/shaders/src/main/glsl/samples/320es/matrices_many_loops.frag @@ -87,8 +87,8 @@ void main() POPULATE_SUMS(m43, 4, 3, 7); POPULATE_SUMS(m44, 4, 4, 8); - int region_x = int(gl_FragCoord.x / (resolution.x / 3.0)); - int region_y = int(gl_FragCoord.y / (resolution.x / 3.0)); + int region_x = int(floor(gl_FragCoord.x) / (resolution.x / 3.0)); + int region_y = int(floor(gl_FragCoord.y) / (resolution.x / 3.0)); int overall_region = region_y * 3 + region_x; if (overall_region > 0 && overall_region < 9) { diff --git a/shaders/src/main/glsl/samples/320es/matrices_smart_loops.frag b/shaders/src/main/glsl/samples/320es/matrices_smart_loops.frag index 2e42b8a65..0ee0d4514 100644 --- a/shaders/src/main/glsl/samples/320es/matrices_smart_loops.frag +++ b/shaders/src/main/glsl/samples/320es/matrices_smart_loops.frag @@ -138,8 +138,8 @@ void main() } } - int region_x = int(gl_FragCoord.x / (resolution.x / 3.0)); - int region_y = int(gl_FragCoord.y / (resolution.x / 3.0)); + int region_x = int(floor(gl_FragCoord.x) / (resolution.x / 3.0)); + int region_y = int(floor(gl_FragCoord.y) / (resolution.x / 3.0)); int overall_region = region_y * 3 + region_x; if (overall_region > 0 && overall_region < 9) { diff --git a/shaders/src/main/glsl/samples/320es/mergesort_mosaic.frag b/shaders/src/main/glsl/samples/320es/mergesort_mosaic.frag index 2b1c21606..5bf960a5e 100644 --- a/shaders/src/main/glsl/samples/320es/mergesort_mosaic.frag +++ b/shaders/src/main/glsl/samples/320es/mergesort_mosaic.frag @@ -119,13 +119,13 @@ void main() { vec3(0, -5, int(injectionSwitch.y)) * ldexp(0.2, 5), vec3(1, 8, int(injectionSwitch.y)) * ldexp(injectionSwitch.y, 0) ); - vec3 vecCoor = roundEven(pos * vec3(gl_FragCoord.xx / resolution.yx, 1)); + vec3 vecCoor = roundEven(pos * vec3(floor(gl_FragCoord.xx) / resolution.yx, 1)); vec2 color; do { if (int(gl_FragCoord[1]) < 30) { color = fract(sin(vecCoor.yx - trunc(float(data[0])))); - color[0] = dFdy(gl_FragCoord.y); + color[0] = dFdy(floor(gl_FragCoord.y)); break; } else if (int(gl_FragCoord[1]) < 60) { color = fract(sin(vecCoor.yx - trunc(float(data[1])))); @@ -133,17 +133,17 @@ void main() { break; } else if (int(gl_FragCoord[1]) < 90) { color = fract(sin(vecCoor.yx - trunc(float(data[2])))); - color.x += atanh(color.x) * cosh(injectionSwitch.y) * smoothstep(color, injectionSwitch, gl_FragCoord.yy).x; + color.x += atanh(color.x) * cosh(injectionSwitch.y) * smoothstep(color, injectionSwitch, floor(gl_FragCoord.yy)).x; break; } else if (int(gl_FragCoord[1]) < 120) { color = fract(acosh(clamp(vecCoor.yx - trunc(float(data[3])), 1.0, 1000.0))); - color.x += (isnan(gl_FragCoord.x) ? log2(gl_FragCoord.x) : log2(gl_FragCoord.y)); + color.x += (isnan(floor(gl_FragCoord.x)) ? log2(floor(gl_FragCoord.x)) : log2(floor(gl_FragCoord.y))); break; } else if (int(gl_FragCoord[1]) < 150) { discard; } else if (int(gl_FragCoord[1]) < 180) { color = fract(sin(vecCoor.yx - trunc(float(data[4])))); - color[1] += asinh(gl_FragCoord.y * ldexp(color.y, -i)); + color[1] += asinh(floor(gl_FragCoord.y) * ldexp(color.y, -i)); break; } else if (int(gl_FragCoord[1]) < 210) { color = fract(sin(vecCoor.yx - trunc(float(data[5])))); @@ -151,7 +151,7 @@ void main() { break; } else if (int(gl_FragCoord[1]) < 240) { color = fract(asinh(vecCoor.yx - trunc(float(data[6])))); - color.y -= isnan(float(i)) ? tanh(gl_FragCoord.x): atanh(gl_FragCoord.y); + color.y -= isnan(float(i)) ? tanh(floor(gl_FragCoord.x)): atanh(floor(gl_FragCoord.y)); break; } else if (int(gl_FragCoord[1]) < 270) { color = fract(sin(vecCoor.yx - trunc(float(data[7])))); diff --git a/shaders/src/main/glsl/samples/320es/prefix_sum_checkers.frag b/shaders/src/main/glsl/samples/320es/prefix_sum_checkers.frag index c5fc17577..d6db6dc0a 100644 --- a/shaders/src/main/glsl/samples/320es/prefix_sum_checkers.frag +++ b/shaders/src/main/glsl/samples/320es/prefix_sum_checkers.frag @@ -46,7 +46,7 @@ vec2 pattern(in vec2 x) { } void main() { - vec2 uv = gl_FragCoord.xy / resolution.y; + vec2 uv = floor(gl_FragCoord.xy) / resolution.y; float A[50]; for (int i = 0; i < 200; i++) { if (i >= int(resolution.x)) { diff --git a/shaders/src/main/glsl/samples/320es/quicksort_palette.frag b/shaders/src/main/glsl/samples/320es/quicksort_palette.frag index 5ed379d25..aa8c00f7e 100644 --- a/shaders/src/main/glsl/samples/320es/quicksort_palette.frag +++ b/shaders/src/main/glsl/samples/320es/quicksort_palette.frag @@ -97,7 +97,7 @@ void main() { } quicksort(); vec2 grid = vec2(20, 20); - vec2 uv = gl_FragCoord.xy / resolution; + vec2 uv = floor(gl_FragCoord.xy) / resolution; vec3 color = palette(vec3(float(obj.numbers[4]) * 0.1), vec3(0.9, float(obj.numbers[8]) * 0.1, 0.8), trunc(vec3(injectionSwitch.y)), vec3(injectionSwitch.x, 0.3, 0.7)); if (uv.x > (1.0 / 4.0)) { int count = int(injectionSwitch.x); @@ -124,7 +124,7 @@ void main() { grid += vec2(count + obj.numbers[3], count + obj.numbers[3]); } - vec2 position = vec2(gl_FragCoord.x, resolution.x - gl_FragCoord.y); + vec2 position = vec2(floor(gl_FragCoord.x), resolution.x - floor(gl_FragCoord.y)); position = floor(position / grid); _GLF_color = vec4(color, injectionSwitch.y) + vec4(!puzzlelize(position)); diff --git a/shaders/src/main/glsl/samples/320es/selection_sort_struct.frag b/shaders/src/main/glsl/samples/320es/selection_sort_struct.frag index 4bcbe8366..fe17d5033 100644 --- a/shaders/src/main/glsl/samples/320es/selection_sort_struct.frag +++ b/shaders/src/main/glsl/samples/320es/selection_sort_struct.frag @@ -60,11 +60,11 @@ void main() { obj.even_numbers[i] = smaller_number; } - vec2 uv = gl_FragCoord.xy/resolution.xy; + vec2 uv = floor(gl_FragCoord.xy) / resolution.xy; vec3 col = tan(pow(uv.xxx, uv.yyy) + vec3( - obj.odd_numbers[int(floor(gl_FragCoord.x/1000.0))], - obj.even_numbers[int(floor(gl_FragCoord.y/1000.0))], + obj.odd_numbers[int(floor(floor(gl_FragCoord.x) / 1000.0))], + obj.even_numbers[int(floor(floor(gl_FragCoord.y) / 1000.0))], sinh(uv.x) )); diff --git a/shaders/src/main/glsl/samples/320es/squares.frag b/shaders/src/main/glsl/samples/320es/squares.frag index 92a2dc8ba..de86d0999 100644 --- a/shaders/src/main/glsl/samples/320es/squares.frag +++ b/shaders/src/main/glsl/samples/320es/squares.frag @@ -98,7 +98,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/320es/squares_intfunctions.frag b/shaders/src/main/glsl/samples/320es/squares_intfunctions.frag index 3691ff7e7..803d4bc0b 100644 --- a/shaders/src/main/glsl/samples/320es/squares_intfunctions.frag +++ b/shaders/src/main/glsl/samples/320es/squares_intfunctions.frag @@ -102,7 +102,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/320es/stable_bifurcation.frag b/shaders/src/main/glsl/samples/320es/stable_bifurcation.frag index b39bf4e0f..a098ef4eb 100644 --- a/shaders/src/main/glsl/samples/320es/stable_bifurcation.frag +++ b/shaders/src/main/glsl/samples/320es/stable_bifurcation.frag @@ -61,7 +61,7 @@ to pick a color from the table of 16 colors. void main() { // pos is screen coordinates in 0..1 range - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // lin is screen coordinates in 0..9 range, integer steps; // this creates a grid pattern. ivec2 lin = ivec2(int(pos.x * 10.0), int(pos.y * 10.0)); diff --git a/shaders/src/main/glsl/samples/320es/stable_bubblesort_flag.frag b/shaders/src/main/glsl/samples/320es/stable_bubblesort_flag.frag index 3852dade3..f0b65cb69 100644 --- a/shaders/src/main/glsl/samples/320es/stable_bubblesort_flag.frag +++ b/shaders/src/main/glsl/samples/320es/stable_bubblesort_flag.frag @@ -47,7 +47,7 @@ are numerically stable. // vertically sort in one order, and for the other half the other. bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() @@ -86,7 +86,7 @@ void main() // Draw image based on the sorted values. // For half the screen horizontally use one order, // and for the other the inverse order of values. - if (gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { _GLF_color = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/320es/stable_collatz.frag b/shaders/src/main/glsl/samples/320es/stable_collatz.frag index 03adc647b..a4b4dc99a 100644 --- a/shaders/src/main/glsl/samples/320es/stable_collatz.frag +++ b/shaders/src/main/glsl/samples/320es/stable_collatz.frag @@ -80,7 +80,7 @@ int collatz(int v) { void main() { // lin is screen coordinates in 0..1 - vec2 lin = gl_FragCoord.xy / resolution; + vec2 lin = floor(gl_FragCoord.xy) / resolution; // now lin is screen coordinates in 0..7 in integer steps // this creates a tile pattern of 8x8 pixel tiles lin = floor(lin * 8.0); diff --git a/shaders/src/main/glsl/samples/320es/stable_colorgrid_modulo.frag b/shaders/src/main/glsl/samples/320es/stable_colorgrid_modulo.frag index bf4c7d751..46efea52b 100644 --- a/shaders/src/main/glsl/samples/320es/stable_colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/320es/stable_colorgrid_modulo.frag @@ -74,8 +74,8 @@ void main() // Use of uniform avoids compiler optimizations. float thirty_two = round(resolution.x / 8.0); - c.x = compute_value(gl_FragCoord.x, thirty_two); - c.y = compute_value(gl_FragCoord.y, thirty_two); + c.x = compute_value(floor(gl_FragCoord.x), thirty_two); + c.y = compute_value(floor(gl_FragCoord.y), thirty_two); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/320es/stable_logicops.frag b/shaders/src/main/glsl/samples/320es/stable_logicops.frag index 6ebb4b46e..c64efd4ce 100644 --- a/shaders/src/main/glsl/samples/320es/stable_logicops.frag +++ b/shaders/src/main/glsl/samples/320es/stable_logicops.frag @@ -34,7 +34,7 @@ making this a stable shader. void main() { - vec2 coord = vec2(gl_FragCoord.xy) * (1.0 / 256.0); + vec2 coord = vec2(floor(gl_FragCoord.xy)) * (1.0 / 256.0); if (coord.x > 0.4) { diff --git a/shaders/src/main/glsl/samples/320es/stable_maze.frag b/shaders/src/main/glsl/samples/320es/stable_maze.frag index 17f5675ca..01d19e5c8 100644 --- a/shaders/src/main/glsl/samples/320es/stable_maze.frag +++ b/shaders/src/main/glsl/samples/320es/stable_maze.frag @@ -49,7 +49,7 @@ int map[16 * 16]; void main() { // pos is screen position in 0..1 range - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // ipos is screen position in 0..15 range, in integer steps. // This creates a tile pattern. ivec2 ipos = ivec2(int(pos.x * 16.0), int(pos.y * 16.0)); diff --git a/shaders/src/main/glsl/samples/320es/stable_orbit.frag b/shaders/src/main/glsl/samples/320es/stable_orbit.frag index d6f2b55ea..8aa9c6893 100644 --- a/shaders/src/main/glsl/samples/320es/stable_orbit.frag +++ b/shaders/src/main/glsl/samples/320es/stable_orbit.frag @@ -69,7 +69,7 @@ ivec2 iter(ivec2 p) { void main() { // pos is screen coordinates in 0..1 range - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // ipos is screen coordinates in 0..7 range in integer steps. // This creates a tile pattern. ivec2 ipos = ivec2(int(pos.x * 8.0), int(pos.y * 8.0)); diff --git a/shaders/src/main/glsl/samples/320es/stable_pillars.frag b/shaders/src/main/glsl/samples/320es/stable_pillars.frag index cc4804be0..419a5a596 100644 --- a/shaders/src/main/glsl/samples/320es/stable_pillars.frag +++ b/shaders/src/main/glsl/samples/320es/stable_pillars.frag @@ -82,7 +82,7 @@ vec4 trace(ivec2 pos) { void main() { // pos is screen coodrdinates in 0..1 - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // ipos is screen coordinates in 0..255 in integer steps. ivec2 ipos = ivec2(int(pos.x * 256.0), int(pos.y * 256.0)); diff --git a/shaders/src/main/glsl/samples/320es/stable_quicksort.frag b/shaders/src/main/glsl/samples/320es/stable_quicksort.frag index 24307740d..e817052b4 100644 --- a/shaders/src/main/glsl/samples/320es/stable_quicksort.frag +++ b/shaders/src/main/glsl/samples/320es/stable_quicksort.frag @@ -123,7 +123,7 @@ void main() { quicksort(); // uv gets screen coordinates in 0..1 range - vec2 uv = gl_FragCoord.xy / resolution; + vec2 uv = floor(gl_FragCoord.xy) / resolution; // start color from an arbituary vector vec3 color = vec3(1.0, 2.0, 3.0); diff --git a/shaders/src/main/glsl/samples/320es/stable_rects.frag b/shaders/src/main/glsl/samples/320es/stable_rects.frag index 843f069b1..d32b82f94 100644 --- a/shaders/src/main/glsl/samples/320es/stable_rects.frag +++ b/shaders/src/main/glsl/samples/320es/stable_rects.frag @@ -105,7 +105,7 @@ vec4 match(vec2 pos) { void main() { // Lin is screen position in 0..1 range - vec2 lin = gl_FragCoord.xy / resolution; + vec2 lin = floor(gl_FragCoord.xy) / resolution; // Lin is screen position in 0..31 range in integer steps. // This creates a tile pattern. lin = floor(lin * 32.0); diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_boxfilter.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_boxfilter.frag index d22d11330..a429a1d47 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_boxfilter.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_boxfilter.frag @@ -44,7 +44,7 @@ const float weights[9] = float[9]( void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); float uvstep = 1.0 / 256.0; vec4 res = vec4(0); diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_loop.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_loop.frag index c580c977f..330cba074 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_loop.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_loop.frag @@ -42,7 +42,7 @@ uniform sampler2D tex; void main() { int i = 0; - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); vec4 texel = texture(tex, coord); while (texel.x + texel.y + texel.z > 1.0 && i < 16) { diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_minimal.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_minimal.frag index 555c65296..cc5409537 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_minimal.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_minimal.frag @@ -33,6 +33,6 @@ uniform sampler2D tex; void main() { - _GLF_color = texture(tex, gl_FragCoord.xy * (1.0 / 256.0)); + _GLF_color = texture(tex, floor(gl_FragCoord.xy) * (1.0 / 256.0)); } diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_mip.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_mip.frag index 4827e6e6b..419a9bac3 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_mip.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_mip.frag @@ -37,7 +37,7 @@ uniform sampler2D tex; void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); vec4 res = vec4(0.25); coord *= 2.0; int i = 0; diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_polar_simple.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_polar_simple.frag index 1534b0cbb..7c4288ea6 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_polar_simple.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_polar_simple.frag @@ -92,7 +92,7 @@ vec2 polarize(vec2 coord) void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); coord = polarize(coord); coord = floor(coord * 256.0) / 256.0; _GLF_color = vec4(texture(tex, coord).xyz, 1.0); diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_polar_warp.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_polar_warp.frag index 00d0d5c2e..dbf422423 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_polar_warp.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_polar_warp.frag @@ -93,7 +93,7 @@ vec2 polarize(vec2 coord) void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); vec2 coord1 = polarize(coord + vec2(20.0 / 256.0, -80.0 / 256.0)); vec2 coord2 = polarize(coord + vec2(-60.0 / 256.0, 40.0 / 256.0)); diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_reuse.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_reuse.frag index 64c4b1b68..bf3ea1ffb 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_reuse.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_reuse.frag @@ -39,7 +39,7 @@ uniform sampler2D tex; void main() { - vec3 texel = texture(tex, gl_FragCoord.xy * (1.0 / 256.0)).xyz; + vec3 texel = texture(tex, floor(gl_FragCoord.xy) * (1.0 / 256.0)).xyz; vec2 reuse = (texel.xz + texel.yy) * 0.5 + vec2(0.25, 0.25); reuse = floor(reuse * 256.0) / 256.0; _GLF_color = texture(tex, reuse); diff --git a/shaders/src/main/glsl/samples/320es/stable_sampler_trace.frag b/shaders/src/main/glsl/samples/320es/stable_sampler_trace.frag index 4188c5673..386872532 100644 --- a/shaders/src/main/glsl/samples/320es/stable_sampler_trace.frag +++ b/shaders/src/main/glsl/samples/320es/stable_sampler_trace.frag @@ -42,7 +42,7 @@ void main() int i = 0; vec2 uvstep = vec2(1.0) * (1.0 / 256.0); float slope = 2.0 / 256.0; - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); float refh = texture(tex, coord).y; coord -= uvstep; refh += slope; diff --git a/shaders/src/main/glsl/samples/320es/stable_triangle.frag b/shaders/src/main/glsl/samples/320es/stable_triangle.frag index 5852d7b0f..6ac65eb80 100644 --- a/shaders/src/main/glsl/samples/320es/stable_triangle.frag +++ b/shaders/src/main/glsl/samples/320es/stable_triangle.frag @@ -56,7 +56,7 @@ int pointInTriangle(vec2 p, vec2 a, vec2 b, vec2 c) { } void main() { - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; if (pointInTriangle(pos, vec2(0.7, 0.3), vec2(0.5, 0.9), vec2(0.1, 0.4)) == 1) { _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/320es/trigonometric_strip.frag b/shaders/src/main/glsl/samples/320es/trigonometric_strip.frag index 0be9bd92c..09a3dab73 100644 --- a/shaders/src/main/glsl/samples/320es/trigonometric_strip.frag +++ b/shaders/src/main/glsl/samples/320es/trigonometric_strip.frag @@ -37,7 +37,7 @@ float compute_stripe(float v) { } void main() { - vec2 uv = gl_FragCoord.xy / resolution.x; + vec2 uv = floor(gl_FragCoord.xy) / resolution.x; vec3 col = vec3(0, 0, 0); bool c1 = uv.y < 0.25; diff --git a/shaders/src/main/glsl/samples/450/binarysearch_bw.frag b/shaders/src/main/glsl/samples/450/binarysearch_bw.frag index 0c6534160..4de66fe23 100644 --- a/shaders/src/main/glsl/samples/450/binarysearch_bw.frag +++ b/shaders/src/main/glsl/samples/450/binarysearch_bw.frag @@ -38,7 +38,7 @@ vec2 brick(vec2 uv) { int b = 3; do { uv.y -= step(injectionSwitch.y, uv.x) + float(a); - uv.x *= (isnan(uv.y) ? cosh(gl_FragCoord.y) : tanh(gl_FragCoord.x)); + uv.x *= (isnan(uv.y) ? cosh(floor(gl_FragCoord.y)) : tanh(floor(gl_FragCoord.x))); b--; } while (b > int(injectionSwitch.x)); int c = 2; @@ -58,7 +58,7 @@ vec2 brick(vec2 uv) { float patternize(vec2 uv) { vec2 size = vec2(0.45); vec2 st = smoothstep(size, size, uv); - switch (int(mod(gl_FragCoord.y, 5.0))) { + switch (int(mod(floor(gl_FragCoord.y), 5.0))) { case 0: return mix(pow(st.x, injectionSwitch.y), st.x, size.y); break; @@ -122,11 +122,11 @@ void main() { } } - vec2 uv = (gl_FragCoord.xy / resolution.x) * vec2(resolution.x / resolution.y, 1.0); + vec2 uv = (floor(gl_FragCoord.xy) / resolution.x) * vec2(resolution.x / resolution.y, 1.0); vec2 b = brick(uv * 7.0); vec3 color = vec3(patternize(b)); - if (gl_FragCoord.y < resolution.y / 1.1) { + if (floor(gl_FragCoord.y) < resolution.y / 1.1) { // We are going to search the item in array by giving the value of the item index 4 and 0 in an array. if (binarySearch(obj, obj.prime_numbers[4]) != -(int(resolution.y)) && binarySearch(obj, obj.prime_numbers[0]) >= -(int(resolution.x))) { color.yz -= dot(float(binarySearch(obj, obj.prime_numbers[4])), float(binarySearch(obj, obj.prime_numbers[0]))); diff --git a/shaders/src/main/glsl/samples/450/binarysearch_tree.frag b/shaders/src/main/glsl/samples/450/binarysearch_tree.frag index b9568849b..0ea7844cb 100644 --- a/shaders/src/main/glsl/samples/450/binarysearch_tree.frag +++ b/shaders/src/main/glsl/samples/450/binarysearch_tree.frag @@ -149,7 +149,7 @@ void main() { treeIndex++; insert(treeIndex, 13); - vec2 z = (gl_FragCoord.yx / resolution); + vec2 z = (floor(gl_FragCoord.yx) / resolution); float x = makeFrame(z.x); float y = makeFrame(z.y); diff --git a/shaders/src/main/glsl/samples/450/bubblesort_flag_intfunctions.frag b/shaders/src/main/glsl/samples/450/bubblesort_flag_intfunctions.frag index e3193b047..dbbc87ed8 100644 --- a/shaders/src/main/glsl/samples/450/bubblesort_flag_intfunctions.frag +++ b/shaders/src/main/glsl/samples/450/bubblesort_flag_intfunctions.frag @@ -27,7 +27,7 @@ uniform vec2 resolution; bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() { @@ -58,7 +58,7 @@ void main() } i++; } while(i < findMSB(msb9)); - if(gl_FragCoord.x < resolution.x / 2.0) + if(floor(gl_FragCoord.x) < resolution.x / 2.0) { _GLF_color = vec4(data[findMSB(1)] / 10.0, data[findLSB(32)] / 10.0, data[findMSB(msb9)] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/450/colorgrid_modulo.frag b/shaders/src/main/glsl/samples/450/colorgrid_modulo.frag index cd557a5bd..cf9c6f757 100644 --- a/shaders/src/main/glsl/samples/450/colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/450/colorgrid_modulo.frag @@ -40,8 +40,8 @@ void main() vec4 c = vec4(0.0, 0.0, 0.0, 1.0); float ref = floor(resolution.x / 8.0); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/450/colorgrid_modulo_intfunctions.frag b/shaders/src/main/glsl/samples/450/colorgrid_modulo_intfunctions.frag index 0a08df5a4..3a3e65b4f 100644 --- a/shaders/src/main/glsl/samples/450/colorgrid_modulo_intfunctions.frag +++ b/shaders/src/main/glsl/samples/450/colorgrid_modulo_intfunctions.frag @@ -47,8 +47,8 @@ void main() vec4 c = vec4(bitfieldExtract(0, 0, 0), 0.0, 0.0, bitCount(msb8)); float ref = floor(resolution.x / float(findLSB(msb8))); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; int i = bitfieldReverse(bitfieldExtract(0, 0, 0)); do { diff --git a/shaders/src/main/glsl/samples/450/householder_lattice.frag b/shaders/src/main/glsl/samples/450/householder_lattice.frag index eb65955b3..d60c3f3af 100644 --- a/shaders/src/main/glsl/samples/450/householder_lattice.frag +++ b/shaders/src/main/glsl/samples/450/householder_lattice.frag @@ -28,7 +28,7 @@ void main() { // We need to modify A in place, so we have to copy the uniform mat4 matrix_a = mat4(matrix_a_uni); - vec4 matrix_b = gl_FragCoord.wxyz; + vec4 matrix_b = floor(gl_FragCoord.wxyz); vec4 matrix_u = vec4(0.0); diff --git a/shaders/src/main/glsl/samples/450/mandelbrot_fixed_point.frag b/shaders/src/main/glsl/samples/450/mandelbrot_fixed_point.frag index 599be17c7..668fe05e1 100644 --- a/shaders/src/main/glsl/samples/450/mandelbrot_fixed_point.frag +++ b/shaders/src/main/glsl/samples/450/mandelbrot_fixed_point.frag @@ -63,7 +63,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/450/mandelbrot_zoom.frag b/shaders/src/main/glsl/samples/450/mandelbrot_zoom.frag index ba9517ee1..c4197309f 100644 --- a/shaders/src/main/glsl/samples/450/mandelbrot_zoom.frag +++ b/shaders/src/main/glsl/samples/450/mandelbrot_zoom.frag @@ -57,7 +57,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/450/mandelbrot_zoom_intfunctions.frag b/shaders/src/main/glsl/samples/450/mandelbrot_zoom_intfunctions.frag index a3518a885..4ff424e8e 100644 --- a/shaders/src/main/glsl/samples/450/mandelbrot_zoom_intfunctions.frag +++ b/shaders/src/main/glsl/samples/450/mandelbrot_zoom_intfunctions.frag @@ -72,7 +72,7 @@ void main() { vec3 data[16]; for (int i = 0; i < findMSB(16); i++) { for (int j = 0; j < findLSB(16); j++) { - data[uaddCarry(uint(4*j), uint(i), uselessOutVariable)] = mand(gl_FragCoord.x + float(i - bitCount(1)), gl_FragCoord.y + float(j - bitCount(1))); + data[uaddCarry(uint(4*j), uint(i), uselessOutVariable)] = mand(floor(gl_FragCoord.x) + float(i - bitCount(1)), floor(gl_FragCoord.y) + float(j - bitCount(1))); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/450/matrices_many_loops.frag b/shaders/src/main/glsl/samples/450/matrices_many_loops.frag index b0d2d3b96..73afd3c90 100644 --- a/shaders/src/main/glsl/samples/450/matrices_many_loops.frag +++ b/shaders/src/main/glsl/samples/450/matrices_many_loops.frag @@ -87,8 +87,8 @@ void main() POPULATE_SUMS(m43, 4, 3, 7); POPULATE_SUMS(m44, 4, 4, 8); - int region_x = int(gl_FragCoord.x / (resolution.x / 3.0)); - int region_y = int(gl_FragCoord.y / (resolution.x / 3.0)); + int region_x = int(floor(gl_FragCoord.x) / (resolution.x / 3.0)); + int region_y = int(floor(gl_FragCoord.y) / (resolution.x / 3.0)); int overall_region = region_y * 3 + region_x; if (overall_region > 0 && overall_region < 9) { diff --git a/shaders/src/main/glsl/samples/450/matrices_smart_loops.frag b/shaders/src/main/glsl/samples/450/matrices_smart_loops.frag index 684e1f8e3..71c013632 100644 --- a/shaders/src/main/glsl/samples/450/matrices_smart_loops.frag +++ b/shaders/src/main/glsl/samples/450/matrices_smart_loops.frag @@ -138,8 +138,8 @@ void main() } } - int region_x = int(gl_FragCoord.x / (resolution.x / 3.0)); - int region_y = int(gl_FragCoord.y / (resolution.x / 3.0)); + int region_x = int(floor(gl_FragCoord.x) / (resolution.x / 3.0)); + int region_y = int(floor(gl_FragCoord.y) / (resolution.x / 3.0)); int overall_region = region_y * 3 + region_x; if (overall_region > 0 && overall_region < 9) { diff --git a/shaders/src/main/glsl/samples/450/mergesort_mosaic.frag b/shaders/src/main/glsl/samples/450/mergesort_mosaic.frag index 3da8264f6..152e56e19 100644 --- a/shaders/src/main/glsl/samples/450/mergesort_mosaic.frag +++ b/shaders/src/main/glsl/samples/450/mergesort_mosaic.frag @@ -119,13 +119,13 @@ void main() { vec3(0, -5, int(injectionSwitch.y)) * ldexp(0.2, 5), vec3(1, 8, int(injectionSwitch.y)) * ldexp(injectionSwitch.y, 0) ); - vec3 vecCoor = roundEven(pos * vec3(gl_FragCoord.xx / resolution.yx, 1)); + vec3 vecCoor = roundEven(pos * vec3(floor(gl_FragCoord.xx) / resolution.yx, 1)); vec2 color; do { if (int(gl_FragCoord[1]) < 30) { color = fract(sin(vecCoor.yx - trunc(float(data[0])))); - color[0] = dFdy(gl_FragCoord.y); + color[0] = dFdy(floor(gl_FragCoord.y)); break; } else if (int(gl_FragCoord[1]) < 60) { color = fract(sin(vecCoor.yx - trunc(float(data[1])))); @@ -133,17 +133,17 @@ void main() { break; } else if (int(gl_FragCoord[1]) < 90) { color = fract(sin(vecCoor.yx - trunc(float(data[2])))); - color.x += atanh(color.x) * cosh(injectionSwitch.y) * smoothstep(color, injectionSwitch, gl_FragCoord.yy).x; + color.x += atanh(color.x) * cosh(injectionSwitch.y) * smoothstep(color, injectionSwitch, floor(gl_FragCoord.yy)).x; break; } else if (int(gl_FragCoord[1]) < 120) { color = fract(acosh(clamp(vecCoor.yx - trunc(float(data[3])), 1.0, 1000.0))); - color.x += (isnan(gl_FragCoord.x) ? log2(gl_FragCoord.x) : log2(gl_FragCoord.y)); + color.x += (isnan(floor(gl_FragCoord.x)) ? log2(floor(gl_FragCoord.x)) : log2(floor(gl_FragCoord.y))); break; } else if (int(gl_FragCoord[1]) < 150) { discard; } else if (int(gl_FragCoord[1]) < 180) { color = fract(sin(vecCoor.yx - trunc(float(data[4])))); - color[1] += asinh(gl_FragCoord.y * ldexp(color.y, -i)); + color[1] += asinh(floor(gl_FragCoord.y) * ldexp(color.y, -i)); break; } else if (int(gl_FragCoord[1]) < 210) { color = fract(sin(vecCoor.yx - trunc(float(data[5])))); @@ -151,7 +151,7 @@ void main() { break; } else if (int(gl_FragCoord[1]) < 240) { color = fract(asinh(vecCoor.yx - trunc(float(data[6])))); - color.y -= isnan(float(i)) ? tanh(gl_FragCoord.x): atanh(gl_FragCoord.y); + color.y -= isnan(float(i)) ? tanh(floor(gl_FragCoord.x)): atanh(floor(gl_FragCoord.y)); break; } else if (int(gl_FragCoord[1]) < 270) { color = fract(sin(vecCoor.yx - trunc(float(data[7])))); diff --git a/shaders/src/main/glsl/samples/450/prefix_sum_checkers.frag b/shaders/src/main/glsl/samples/450/prefix_sum_checkers.frag index 4a4d1fc0e..515b084f0 100644 --- a/shaders/src/main/glsl/samples/450/prefix_sum_checkers.frag +++ b/shaders/src/main/glsl/samples/450/prefix_sum_checkers.frag @@ -46,7 +46,7 @@ vec2 pattern(in vec2 x) { } void main() { - vec2 uv = gl_FragCoord.xy / resolution.y; + vec2 uv = floor(gl_FragCoord.xy) / resolution.y; float A[50]; for (int i = 0; i < 200; i++) { if (i >= int(resolution.x)) { diff --git a/shaders/src/main/glsl/samples/450/quicksort_palette.frag b/shaders/src/main/glsl/samples/450/quicksort_palette.frag index 5e1b5a67c..ea0c3beae 100644 --- a/shaders/src/main/glsl/samples/450/quicksort_palette.frag +++ b/shaders/src/main/glsl/samples/450/quicksort_palette.frag @@ -97,7 +97,7 @@ void main() { } quicksort(); vec2 grid = vec2(20, 20); - vec2 uv = gl_FragCoord.xy / resolution; + vec2 uv = floor(gl_FragCoord.xy) / resolution; vec3 color = palette(vec3(float(obj.numbers[4]) * 0.1), vec3(0.9, float(obj.numbers[8]) * 0.1, 0.8), trunc(vec3(injectionSwitch.y)), vec3(injectionSwitch.x, 0.3, 0.7)); if (uv.x > (1.0 / 4.0)) { int count = int(injectionSwitch.x); @@ -124,7 +124,7 @@ void main() { grid += vec2(count + obj.numbers[3], count + obj.numbers[3]); } - vec2 position = vec2(gl_FragCoord.x, resolution.x - gl_FragCoord.y); + vec2 position = vec2(floor(gl_FragCoord.x), resolution.x - floor(gl_FragCoord.y)); position = floor(position / grid); _GLF_color = vec4(color, injectionSwitch.y) + vec4(!puzzlelize(position)); diff --git a/shaders/src/main/glsl/samples/450/selection_sort_struct.frag b/shaders/src/main/glsl/samples/450/selection_sort_struct.frag index 53cd4554d..e1c5669f7 100644 --- a/shaders/src/main/glsl/samples/450/selection_sort_struct.frag +++ b/shaders/src/main/glsl/samples/450/selection_sort_struct.frag @@ -60,11 +60,11 @@ void main() { obj.even_numbers[i] = smaller_number; } - vec2 uv = gl_FragCoord.xy/resolution.xy; + vec2 uv = floor(gl_FragCoord.xy) / resolution.xy; vec3 col = tan(pow(uv.xxx, uv.yyy) + vec3( - obj.odd_numbers[int(floor(gl_FragCoord.x/1000.0))], - obj.even_numbers[int(floor(gl_FragCoord.y/1000.0))], + obj.odd_numbers[int(floor(floor(gl_FragCoord.x)/1000.0))], + obj.even_numbers[int(floor(floor(gl_FragCoord.y)/1000.0))], sinh(uv.x) )); diff --git a/shaders/src/main/glsl/samples/450/squares.frag b/shaders/src/main/glsl/samples/450/squares.frag index 89a08e381..37a22af0d 100644 --- a/shaders/src/main/glsl/samples/450/squares.frag +++ b/shaders/src/main/glsl/samples/450/squares.frag @@ -98,7 +98,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/450/squares_intfunctions.frag b/shaders/src/main/glsl/samples/450/squares_intfunctions.frag index db9965d9a..18c698282 100644 --- a/shaders/src/main/glsl/samples/450/squares_intfunctions.frag +++ b/shaders/src/main/glsl/samples/450/squares_intfunctions.frag @@ -102,7 +102,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/450/stable_bifurcation.frag b/shaders/src/main/glsl/samples/450/stable_bifurcation.frag index a07bca238..fc5bd498c 100644 --- a/shaders/src/main/glsl/samples/450/stable_bifurcation.frag +++ b/shaders/src/main/glsl/samples/450/stable_bifurcation.frag @@ -61,7 +61,7 @@ to pick a color from the table of 16 colors. void main() { // pos is screen coordinates in 0..1 range - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // lin is screen coordinates in 0..9 range, integer steps; // this creates a grid pattern. ivec2 lin = ivec2(int(pos.x * 10.0), int(pos.y * 10.0)); diff --git a/shaders/src/main/glsl/samples/450/stable_bubblesort_flag.frag b/shaders/src/main/glsl/samples/450/stable_bubblesort_flag.frag index e2c9a05b9..896d218f9 100644 --- a/shaders/src/main/glsl/samples/450/stable_bubblesort_flag.frag +++ b/shaders/src/main/glsl/samples/450/stable_bubblesort_flag.frag @@ -47,7 +47,7 @@ are numerically stable. // vertically sort in one order, and for the other half the other. bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() @@ -86,7 +86,7 @@ void main() // Draw image based on the sorted values. // For half the screen horizontally use one order, // and for the other the inverse order of values. - if (gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { _GLF_color = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/450/stable_collatz.frag b/shaders/src/main/glsl/samples/450/stable_collatz.frag index be4c1a96e..380c89907 100644 --- a/shaders/src/main/glsl/samples/450/stable_collatz.frag +++ b/shaders/src/main/glsl/samples/450/stable_collatz.frag @@ -80,7 +80,7 @@ int collatz(int v) { void main() { // lin is screen coordinates in 0..1 - vec2 lin = gl_FragCoord.xy / resolution; + vec2 lin = floor(gl_FragCoord.xy) / resolution; // now lin is screen coordinates in 0..7 in integer steps // this creates a tile pattern of 8x8 pixel tiles lin = floor(lin * 8.0); diff --git a/shaders/src/main/glsl/samples/450/stable_colorgrid_modulo.frag b/shaders/src/main/glsl/samples/450/stable_colorgrid_modulo.frag index 702430837..d06af99cd 100644 --- a/shaders/src/main/glsl/samples/450/stable_colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/450/stable_colorgrid_modulo.frag @@ -74,8 +74,8 @@ void main() // Use of uniform avoids compiler optimizations. float thirty_two = round(resolution.x / 8.0); - c.x = compute_value(gl_FragCoord.x, thirty_two); - c.y = compute_value(gl_FragCoord.y, thirty_two); + c.x = compute_value(floor(gl_FragCoord.x), thirty_two); + c.y = compute_value(floor(gl_FragCoord.y), thirty_two); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/450/stable_logicops.frag b/shaders/src/main/glsl/samples/450/stable_logicops.frag index 6477356f8..b02b8d10a 100644 --- a/shaders/src/main/glsl/samples/450/stable_logicops.frag +++ b/shaders/src/main/glsl/samples/450/stable_logicops.frag @@ -34,7 +34,7 @@ making this a stable shader. void main() { - vec2 coord = vec2(gl_FragCoord.xy) * (1.0 / 256.0); + vec2 coord = vec2(floor(gl_FragCoord.xy)) * (1.0 / 256.0); if (coord.x > 0.4) { diff --git a/shaders/src/main/glsl/samples/450/stable_maze.frag b/shaders/src/main/glsl/samples/450/stable_maze.frag index 3bc7e89d3..64b92e9e1 100644 --- a/shaders/src/main/glsl/samples/450/stable_maze.frag +++ b/shaders/src/main/glsl/samples/450/stable_maze.frag @@ -49,7 +49,7 @@ int map[16 * 16]; void main() { // pos is screen position in 0..1 range - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // ipos is screen position in 0..15 range, in integer steps. // This creates a tile pattern. ivec2 ipos = ivec2(int(pos.x * 16.0), int(pos.y * 16.0)); diff --git a/shaders/src/main/glsl/samples/450/stable_orbit.frag b/shaders/src/main/glsl/samples/450/stable_orbit.frag index fc8597314..1c9c80f46 100644 --- a/shaders/src/main/glsl/samples/450/stable_orbit.frag +++ b/shaders/src/main/glsl/samples/450/stable_orbit.frag @@ -69,7 +69,7 @@ ivec2 iter(ivec2 p) { void main() { // pos is screen coordinates in 0..1 range - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // ipos is screen coordinates in 0..7 range in integer steps. // This creates a tile pattern. ivec2 ipos = ivec2(int(pos.x * 8.0), int(pos.y * 8.0)); diff --git a/shaders/src/main/glsl/samples/450/stable_pillars.frag b/shaders/src/main/glsl/samples/450/stable_pillars.frag index 632ca81f4..cd062a3f6 100644 --- a/shaders/src/main/glsl/samples/450/stable_pillars.frag +++ b/shaders/src/main/glsl/samples/450/stable_pillars.frag @@ -82,7 +82,7 @@ vec4 trace(ivec2 pos) { void main() { // pos is screen coodrdinates in 0..1 - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; // ipos is screen coordinates in 0..255 in integer steps. ivec2 ipos = ivec2(int(pos.x * 256.0), int(pos.y * 256.0)); diff --git a/shaders/src/main/glsl/samples/450/stable_quicksort.frag b/shaders/src/main/glsl/samples/450/stable_quicksort.frag index 1913eca97..29afe8254 100644 --- a/shaders/src/main/glsl/samples/450/stable_quicksort.frag +++ b/shaders/src/main/glsl/samples/450/stable_quicksort.frag @@ -123,7 +123,7 @@ void main() { quicksort(); // uv gets screen coordinates in 0..1 range - vec2 uv = gl_FragCoord.xy / resolution; + vec2 uv = floor(gl_FragCoord.xy) / resolution; // start color from an arbituary vector vec3 color = vec3(1.0, 2.0, 3.0); diff --git a/shaders/src/main/glsl/samples/450/stable_rects.frag b/shaders/src/main/glsl/samples/450/stable_rects.frag index c4169ec4b..4e137078f 100644 --- a/shaders/src/main/glsl/samples/450/stable_rects.frag +++ b/shaders/src/main/glsl/samples/450/stable_rects.frag @@ -105,7 +105,7 @@ vec4 match(vec2 pos) { void main() { // Lin is screen position in 0..1 range - vec2 lin = gl_FragCoord.xy / resolution; + vec2 lin = floor(gl_FragCoord.xy) / resolution; // Lin is screen position in 0..31 range in integer steps. // This creates a tile pattern. lin = floor(lin * 32.0); diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_boxfilter.frag b/shaders/src/main/glsl/samples/450/stable_sampler_boxfilter.frag index bf65499f6..841d6b69f 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_boxfilter.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_boxfilter.frag @@ -44,7 +44,7 @@ const float weights[9] = float[9]( void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); float uvstep = 1.0 / 256.0; vec4 res = vec4(0); diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_loop.frag b/shaders/src/main/glsl/samples/450/stable_sampler_loop.frag index 84e951b44..79ecf03f5 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_loop.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_loop.frag @@ -42,7 +42,7 @@ uniform sampler2D tex; void main() { int i = 0; - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); vec4 texel = texture(tex, coord); while (texel.x + texel.y + texel.z > 1.0 && i < 16) { diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_minimal.frag b/shaders/src/main/glsl/samples/450/stable_sampler_minimal.frag index c10da7926..e9924cc0b 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_minimal.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_minimal.frag @@ -33,6 +33,6 @@ uniform sampler2D tex; void main() { - _GLF_color = texture(tex, gl_FragCoord.xy * (1.0 / 256.0)); + _GLF_color = texture(tex, floor(gl_FragCoord.xy) * (1.0 / 256.0)); } diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_mip.frag b/shaders/src/main/glsl/samples/450/stable_sampler_mip.frag index 98d67542c..044a5fe61 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_mip.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_mip.frag @@ -37,7 +37,7 @@ uniform sampler2D tex; void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); vec4 res = vec4(0.25); coord *= 2.0; int i = 0; diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_polar_simple.frag b/shaders/src/main/glsl/samples/450/stable_sampler_polar_simple.frag index d54d9ad38..383b10d0a 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_polar_simple.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_polar_simple.frag @@ -92,7 +92,7 @@ vec2 polarize(vec2 coord) void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); coord = polarize(coord); coord = floor(coord * 256.0) / 256.0; _GLF_color = vec4(texture(tex, coord).xyz, 1.0); diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_polar_warp.frag b/shaders/src/main/glsl/samples/450/stable_sampler_polar_warp.frag index e446015cc..03d6d6d8f 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_polar_warp.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_polar_warp.frag @@ -93,7 +93,7 @@ vec2 polarize(vec2 coord) void main() { - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); vec2 coord1 = polarize(coord + vec2(20.0 / 256.0, -80.0 / 256.0)); vec2 coord2 = polarize(coord + vec2(-60.0 / 256.0, 40.0 / 256.0)); diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_reuse.frag b/shaders/src/main/glsl/samples/450/stable_sampler_reuse.frag index 4a3af7fbd..aa1db66a2 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_reuse.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_reuse.frag @@ -39,7 +39,7 @@ uniform sampler2D tex; void main() { - vec3 texel = texture(tex, gl_FragCoord.xy * (1.0 / 256.0)).xyz; + vec3 texel = texture(tex, floor(gl_FragCoord.xy) * (1.0 / 256.0)).xyz; vec2 reuse = (texel.xz + texel.yy) * 0.5 + vec2(0.25, 0.25); reuse = floor(reuse * 256.0) / 256.0; _GLF_color = texture(tex, reuse); diff --git a/shaders/src/main/glsl/samples/450/stable_sampler_trace.frag b/shaders/src/main/glsl/samples/450/stable_sampler_trace.frag index abc14fbfa..48329cf94 100644 --- a/shaders/src/main/glsl/samples/450/stable_sampler_trace.frag +++ b/shaders/src/main/glsl/samples/450/stable_sampler_trace.frag @@ -42,7 +42,7 @@ void main() int i = 0; vec2 uvstep = vec2(1.0) * (1.0 / 256.0); float slope = 2.0 / 256.0; - vec2 coord = gl_FragCoord.xy * (1.0 / 256.0); + vec2 coord = floor(gl_FragCoord.xy) * (1.0 / 256.0); float refh = texture(tex, coord).y; coord -= uvstep; refh += slope; diff --git a/shaders/src/main/glsl/samples/450/stable_triangle.frag b/shaders/src/main/glsl/samples/450/stable_triangle.frag index 930437be6..a68c293f1 100644 --- a/shaders/src/main/glsl/samples/450/stable_triangle.frag +++ b/shaders/src/main/glsl/samples/450/stable_triangle.frag @@ -56,7 +56,7 @@ int pointInTriangle(vec2 p, vec2 a, vec2 b, vec2 c) { } void main() { - vec2 pos = gl_FragCoord.xy / resolution; + vec2 pos = floor(gl_FragCoord.xy) / resolution; if (pointInTriangle(pos, vec2(0.7, 0.3), vec2(0.5, 0.9), vec2(0.1, 0.4)) == 1) { _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/450/trigonometric_strip.frag b/shaders/src/main/glsl/samples/450/trigonometric_strip.frag index b5c9c92ad..2620fb223 100644 --- a/shaders/src/main/glsl/samples/450/trigonometric_strip.frag +++ b/shaders/src/main/glsl/samples/450/trigonometric_strip.frag @@ -37,7 +37,7 @@ float compute_stripe(float v) { } void main() { - vec2 uv = gl_FragCoord.xy / resolution.x; + vec2 uv = floor(gl_FragCoord.xy) / resolution.x; vec3 col = vec3(0, 0, 0); bool c1 = uv.y < 0.25; diff --git a/shaders/src/main/glsl/samples/webgl1/colorgrid_modulo.frag b/shaders/src/main/glsl/samples/webgl1/colorgrid_modulo.frag index 4f0c4a2e4..e73507566 100644 --- a/shaders/src/main/glsl/samples/webgl1/colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/webgl1/colorgrid_modulo.frag @@ -39,8 +39,8 @@ void main() vec4 c = vec4(0.0, 0.0, 0.0, 1.0); float ref = floor(resolution.x / 8.0); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/webgl1/mandelbrot_zoom.frag b/shaders/src/main/glsl/samples/webgl1/mandelbrot_zoom.frag index 1f1b8926d..37b56ac30 100644 --- a/shaders/src/main/glsl/samples/webgl1/mandelbrot_zoom.frag +++ b/shaders/src/main/glsl/samples/webgl1/mandelbrot_zoom.frag @@ -56,7 +56,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/webgl1/squares.frag b/shaders/src/main/glsl/samples/webgl1/squares.frag index 1fd1c9ce2..f955bf5f9 100644 --- a/shaders/src/main/glsl/samples/webgl1/squares.frag +++ b/shaders/src/main/glsl/samples/webgl1/squares.frag @@ -97,7 +97,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/webgl1/stable_bubblesort_flag.frag b/shaders/src/main/glsl/samples/webgl1/stable_bubblesort_flag.frag index 9f5aa5c2b..6d82ea290 100644 --- a/shaders/src/main/glsl/samples/webgl1/stable_bubblesort_flag.frag +++ b/shaders/src/main/glsl/samples/webgl1/stable_bubblesort_flag.frag @@ -25,7 +25,7 @@ uniform vec2 resolution; bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() { @@ -63,7 +63,7 @@ void main() } } } - if(gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { gl_FragColor = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0); } diff --git a/shaders/src/main/glsl/samples/webgl2/colorgrid_modulo.frag b/shaders/src/main/glsl/samples/webgl2/colorgrid_modulo.frag index 71033c147..d2d65afe2 100644 --- a/shaders/src/main/glsl/samples/webgl2/colorgrid_modulo.frag +++ b/shaders/src/main/glsl/samples/webgl2/colorgrid_modulo.frag @@ -41,8 +41,8 @@ void main() vec4 c = vec4(0.0, 0.0, 0.0, 1.0); float ref = floor(resolution.x / 8.0); - c.x = nb_mod(gl_FragCoord.x, ref); - c.y = nb_mod(gl_FragCoord.y, ref); + c.x = nb_mod(floor(gl_FragCoord.x), ref); + c.y = nb_mod(floor(gl_FragCoord.y), ref); c.z = c.x + c.y; for (int i = 0; i < 3; i++) { diff --git a/shaders/src/main/glsl/samples/webgl2/mandelbrot_zoom.frag b/shaders/src/main/glsl/samples/webgl2/mandelbrot_zoom.frag index cfb7f97e4..e778567de 100644 --- a/shaders/src/main/glsl/samples/webgl2/mandelbrot_zoom.frag +++ b/shaders/src/main/glsl/samples/webgl2/mandelbrot_zoom.frag @@ -58,7 +58,7 @@ void main() { vec3 data[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { - data[4*j + i] = mand(gl_FragCoord.x + float(i - 1), gl_FragCoord.y + float(j - 1)); + data[4*j + i] = mand(floor(gl_FragCoord.x) + float(i - 1), floor(gl_FragCoord.y) + float(j - 1)); } } vec3 sum = vec3(0.0); diff --git a/shaders/src/main/glsl/samples/webgl2/squares.frag b/shaders/src/main/glsl/samples/webgl2/squares.frag index 9f7fbd4f4..9356d7277 100644 --- a/shaders/src/main/glsl/samples/webgl2/squares.frag +++ b/shaders/src/main/glsl/samples/webgl2/squares.frag @@ -99,7 +99,7 @@ vec3 computePoint(mat2 rotationMatrix) vec2 aspect; aspect = resolution.xy / min(resolution.x, resolution.y); vec2 position; - position = (gl_FragCoord.xy / resolution.xy) * aspect; + position = (floor(gl_FragCoord.xy) / resolution.xy) * aspect; vec2 center; center = vec2(0.5) * aspect; position *= rotationMatrix; diff --git a/shaders/src/main/glsl/samples/webgl2/stable_bubblesort_flag.frag b/shaders/src/main/glsl/samples/webgl2/stable_bubblesort_flag.frag index 746b76754..f27df6a5f 100644 --- a/shaders/src/main/glsl/samples/webgl2/stable_bubblesort_flag.frag +++ b/shaders/src/main/glsl/samples/webgl2/stable_bubblesort_flag.frag @@ -27,7 +27,7 @@ uniform vec2 resolution; bool checkSwap(float a, float b) { - return gl_FragCoord.y < resolution.y / 2.0 ? a > b : a < b; + return floor(gl_FragCoord.y) < resolution.y / 2.0 ? a > b : a < b; } void main() { @@ -65,7 +65,7 @@ void main() } } } - if(gl_FragCoord.x < resolution.x / 2.0) + if (floor(gl_FragCoord.x) < resolution.x / 2.0) { _GLF_color = vec4(data[0] / 10.0, data[5] / 10.0, data[9] / 10.0, 1.0); }