19 lines
418 B
GLSL
19 lines
418 B
GLSL
uniform vec2 Scroll;
|
|
uniform vec2 r1,r2; // matrix elements
|
|
|
|
vec4 DecodeChannelMask( float x )
|
|
{
|
|
if (x > 0.0)
|
|
return (x > 0.5) ? vec4(1,0,0,0) : vec4(0,1,0,0);
|
|
else
|
|
return (x < -0.5) ? vec4(0,0,0,1) : vec4(0,0,1,0);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
vec2 p = (gl_Vertex.xy - Scroll.xy)*r1 + r2;
|
|
gl_Position = vec4(p.x,p.y,0,1);
|
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
|
gl_TexCoord[1] = DecodeChannelMask(gl_MultiTexCoord0.w);
|
|
}
|