LumixEngine/data/pipelines/textured_quad.shd
2020-09-15 13:54:33 +02:00

40 lines
No EOL
981 B
Text

include "pipelines/common.glsl"
common [[
layout(std140, binding = 4) uniform Drawcall {
uniform vec4 u_offset_scale;
uniform vec4 u_r_mask;
uniform vec4 u_g_mask;
uniform vec4 u_b_mask;
uniform vec4 u_a_mask;
uniform vec4 u_offsets;
};
]]
vertex_shader [[
layout (location = 0) out vec2 v_uv;
void main() {
vec4 pos = fullscreenQuad(gl_VertexID, v_uv);
pos.xy = pos.xy * u_offset_scale.zw + u_offset_scale.xy;
pos.y = -pos.y;
gl_Position = pos;
}
]]
fragment_shader [[
layout (binding=0) uniform sampler2D u_texture;
layout (location = 0) in vec2 v_uv;
layout (location = 0) out vec4 o_color;
void main() {
#ifdef ORIGIN_BOTTOM_LEFT
vec4 t = textureLod(u_texture, v_uv, 0);
#else
vec4 t = textureLod(u_texture, vec2(v_uv.x, 1-v_uv.y), 0);
#endif
o_color.r = dot(t, u_r_mask) + u_offsets.r;
o_color.g = dot(t, u_g_mask) + u_offsets.g;
o_color.b = dot(t, u_b_mask) + u_offsets.b;
o_color.a = dot(t, u_a_mask) + u_offsets.a;
}
]]