struct FragmentInput {
  @location(2)
  vUv : vec2<f32>;
}

struct FragmentOutput {
  @location(0)
  color : vec4<f32>;
}

@binding(5) @group(1) var depthMap : texture_depth_2d;

@binding(3) @group(1) var texSampler : sampler;

@stage(fragment)
fn main(fIn : FragmentInput) -> FragmentOutput {
  let sample : f32 = textureSample(depthMap, texSampler, fIn.vUv);
  let color : vec3<f32> = vec3<f32>(sample, sample, sample);
  var fOut : FragmentOutput;
  fOut.color = vec4<f32>(color, 1.0);
  return fOut;
}
