var<private> result : vec4<f32>;

var<private> gl_FragCoord : vec4<f32>;

fn main_1() {
  let x_19 : f32 = gl_FragCoord.x;
  let x_23 : f32 = gl_FragCoord.y;
  result = vec4<f32>((floor(x_19) / 255.0), (floor(x_23) / 255.0), 0.0, 0.0);
  return;
}

struct main_out {
  [[location(0)]]
  result_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
  gl_FragCoord = gl_FragCoord_param;
  main_1();
  return main_out(result);
}
