40 lines
No EOL
981 B
Text
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;
|
|
}
|
|
]] |