@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);
}
