|
- [vert.glsl]
-
- #version 120
-
- void main()
- {
- gl_Position = gl_Vertex;
- gl_TexCoord[0] = gl_MultiTexCoord0;
- }
-
- [frag.glsl]
-
- #version 120
-
- uniform sampler2D texture;
- uniform vec2 screen_size;
- uniform vec4 mirror;
-
- void main(void)
- {
- vec2 p = gl_TexCoord[0].xy;
- vec3 source = texture2D(texture, p).xyz;
-
- vec3 color = vec3(0.0);
- if(p.x < mirror.x) color = (texture2D(texture, vec2(mirror.x - (1.0 - mirror.x * mirror.w + p.x * mirror.w), p.y)).xyz) * (mirror.z / mirror.x * p.x);
- if(p.x > 1.0 - mirror.x) color = (texture2D(texture, vec2(mirror.x - (1.0 - mirror.x * mirror.w + p.x * mirror.w), p.y)).xyz) * (mirror.z / mirror.x * (1.0 - p.x));
-
- gl_FragColor = vec4(source + color, 1.0);
- }
|