2020-06-24 05:45:29 +01:00
|
|
|
#version 450
|
|
|
|
|
|
|
|
#extension GL_EXT_samplerless_texture_functions : enable
|
|
|
|
|
|
|
|
#define MODE_1D 0
|
|
|
|
#define MODE_2D 1
|
|
|
|
#define MODE_MS 2
|
|
|
|
|
|
|
|
layout(constant_id = 0) const uint c_mode = MODE_2D;
|
|
|
|
|
|
|
|
layout(binding = 0) uniform texture1DArray tex_1d;
|
|
|
|
layout(binding = 0) uniform texture2DArray tex_2d;
|
|
|
|
layout(binding = 0) uniform texture2DMSArray tex_ms;
|
|
|
|
|
|
|
|
layout(location = 0) out float o_color;
|
|
|
|
|
|
|
|
layout(push_constant)
|
|
|
|
uniform u_info_t {
|
|
|
|
ivec2 offset;
|
|
|
|
} u_info;
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
ivec3 coord = ivec3(u_info.offset + ivec2(gl_FragCoord.xy), gl_Layer);
|
|
|
|
float value;
|
|
|
|
if (c_mode == MODE_1D) value = texelFetch(tex_1d, coord.xz, 0).r;
|
|
|
|
if (c_mode == MODE_2D) value = texelFetch(tex_2d, coord, 0).r;
|
|
|
|
if (c_mode == MODE_MS) value = texelFetch(tex_ms, coord, gl_SampleID).r;
|
|
|
|
gl_FragDepth = o_color = value;
|
2020-11-05 15:52:02 +00:00
|
|
|
}
|