veloren/assets/voxygen/shaders/ui-frag.glsl
2021-05-30 11:49:40 -04:00

34 lines
826 B
GLSL

#version 420 core
#include <globals.glsl>
layout(location = 0) in vec2 f_uv;
layout(location = 1) in vec4 f_color;
layout(location = 2) flat in uint f_mode;
layout (std140, set = 1, binding = 0)
uniform u_locals {
vec4 w_pos;
};
layout(set = 2, binding = 0)
uniform texture2D t_tex;
layout(set = 2, binding = 1)
uniform sampler s_tex;
layout(location = 0) out vec4 tgt_color;
void main() {
// Text
if (f_mode == uint(0)) {
tgt_color = f_color * vec4(1.0, 1.0, 1.0, texture(sampler2D(t_tex, s_tex), f_uv).a);
// Image
// HACK: bit 0 is set for both ordinary and north-facing images.
} else if ((f_mode & uint(1)) == uint(1)) {
tgt_color = f_color * texture(sampler2D(t_tex, s_tex), f_uv);
// 2D Geometry
} else if (f_mode == uint(2)) {
tgt_color = f_color;
}
}