[[group(0), binding(0)]] var Sampler : sampler;

[[group(0), binding(1)]] var randomTexture : texture_2d<f32>;

[[group(0), binding(2)]] var depthTexture : texture_2d<f32>;

[[stage(fragment)]]
fn main([[location(0)]] vUV : vec2<f32>) -> [[location(0)]] vec4<f32> {
  let random : vec3<f32> = textureSample(randomTexture, Sampler, vUV).rgb;
  var i = 0;
  loop {
    if ((i < 1)) {
    } else {
      break;
    }
    let offset : vec3<f32> = vec3<f32>(random.x);
    if (((((offset.x < 0.0) || (offset.y < 0.0)) || (offset.x > 1.0)) || (offset.y > 1.0))) {
      i = (i + 1);
      continue;
    }
    let sampleDepth : f32 = textureSample(depthTexture, Sampler, offset.xy).r;
    i = (i + 1);
  }
  return vec4<f32>(1.0);
}
