prosperon/source/shaders/mpeg2.sglsl

40 lines
814 B
Plaintext
Raw Normal View History

@vs vs
in vec4 vertex;
out vec2 TexCoords;
uniform vs_p { mat4 model; mat4 projection; };
void main()
{
TexCoords = vec2(vertex.x, 1.0 - vertex.y);
gl_Position = projection * model * vec4(vertex.xy, 0.0, 1.0);
}
@end
@fs fs
in vec2 TexCoords;
out vec4 color;
uniform texture2D texture_y;
uniform texture2D texture_cb;
uniform texture2D texture_cr;
uniform sampler smp;
mat4 rec601 = mat4(
1.16438, 0.00000, 1.59603, -0.87079,
1.16438, -0.39176, -0.81297, 0.52959,
1.16438, 2.01723, 0.00000, -1.08139,
0, 0, 0, 1
);
void main()
{
float y = texture(sampler2D(texture_y,smp), TexCoords).r;
float cb = texture(sampler2D(texture_cb,smp), TexCoords).r;
float cr = texture(sampler2D(texture_cr,smp), TexCoords).r;
color = vec4(y, cb, cr, 1.f) * rec601;
}
@end
@program mpeg2 vs fs