summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/shaders/jfa-init.frag.glsl
blob: d199d234e3fd4829fa7a4baeb613620a3cfb6259 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
precision mediump float;

uniform sampler2D u_texture;
uniform vec2 u_resolution;
uniform float u_invert;

varying vec2 v_texCoord;

void main() {
  float mask = texture2D(u_texture, v_texCoord).r;
  bool isSeed = u_invert > 0.5 ? mask < 0.5 : mask > 0.5;

  if (isSeed) {
    vec2 pixelCoord = floor(v_texCoord * u_resolution);
    float x = pixelCoord.x;
    float y = pixelCoord.y;
    float xHi = floor(x / 256.0);
    float xLo = x - xHi * 256.0;
    float yHi = floor(y / 256.0);
    float yLo = y - yHi * 256.0;
    gl_FragColor = vec4(xHi / 255.0, xLo / 255.0, yHi / 255.0, yLo / 255.0);
  } else {
    gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
  }
}