2019-01-30 12:11:34 +00:00
|
|
|
#version 330 core
|
|
|
|
|
2019-05-14 06:43:07 +00:00
|
|
|
#include <globals.glsl>
|
|
|
|
|
2020-11-29 21:38:03 +00:00
|
|
|
layout(location = 0) in vec2 f_uv;
|
|
|
|
layout(location = 1) in vec4 f_color;
|
|
|
|
layout(location = 2) flat in uint f_mode;
|
2019-01-30 12:11:34 +00:00
|
|
|
|
2020-11-29 21:38:03 +00:00
|
|
|
layout (std140, set = 1, binding = 0)
|
2019-05-14 06:43:07 +00:00
|
|
|
uniform u_locals {
|
2020-10-21 21:05:25 +00:00
|
|
|
vec4 w_pos;
|
2019-05-14 06:43:07 +00:00
|
|
|
};
|
|
|
|
|
2020-12-04 05:38:26 +00:00
|
|
|
layout(set = 2, binding = 0)
|
2020-11-29 21:38:03 +00:00
|
|
|
uniform texture2D t_tex;
|
2020-12-04 05:38:26 +00:00
|
|
|
layout(set = 2, binding = 1)
|
2020-11-29 21:38:03 +00:00
|
|
|
uniform sampler s_tex;
|
2019-01-30 12:11:34 +00:00
|
|
|
|
2020-11-29 21:38:03 +00:00
|
|
|
layout(location = 0) out vec4 tgt_color;
|
2019-01-30 12:11:34 +00:00
|
|
|
|
|
|
|
void main() {
|
2019-05-02 22:42:04 +00:00
|
|
|
// Text
|
|
|
|
if (f_mode == uint(0)) {
|
2020-11-29 21:38:03 +00:00
|
|
|
tgt_color = f_color * vec4(1.0, 1.0, 1.0, texture(sampler2D(t_tex, s_tex), f_uv).a);
|
2019-05-02 22:42:04 +00:00
|
|
|
// Image
|
2020-02-06 17:34:32 +00:00
|
|
|
// HACK: bit 0 is set for both ordinary and north-facing images.
|
|
|
|
} else if ((f_mode & uint(1)) == uint(1)) {
|
2020-11-29 21:38:03 +00:00
|
|
|
tgt_color = f_color * texture(sampler2D(t_tex, s_tex), f_uv);
|
2019-05-02 22:42:04 +00:00
|
|
|
// 2D Geometry
|
|
|
|
} else if (f_mode == uint(2)) {
|
|
|
|
tgt_color = f_color;
|
|
|
|
}
|
2019-01-30 12:11:34 +00:00
|
|
|
}
|