// 1112.wgsl
@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);
}
