aboutsummaryrefslogtreecommitdiff
path: root/packages/noncvs/windows/extra/Gem/examples/12.multi_screen_projection/nfp_22.vert
diff options
context:
space:
mode:
Diffstat (limited to 'packages/noncvs/windows/extra/Gem/examples/12.multi_screen_projection/nfp_22.vert')
-rw-r--r--packages/noncvs/windows/extra/Gem/examples/12.multi_screen_projection/nfp_22.vert26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/noncvs/windows/extra/Gem/examples/12.multi_screen_projection/nfp_22.vert b/packages/noncvs/windows/extra/Gem/examples/12.multi_screen_projection/nfp_22.vert
new file mode 100644
index 00000000..ab8f1077
--- /dev/null
+++ b/packages/noncvs/windows/extra/Gem/examples/12.multi_screen_projection/nfp_22.vert
@@ -0,0 +1,26 @@
+uniform vec2 Vtl,Vbl,Vtr,Vbr; // Vertex position
+uniform vec2 Ttl,Tbl,Ttr,Tbr; // texture coordinate
+uniform vec2 center;
+
+varying vec2 pos;
+
+void main()
+{
+ gl_TexCoord[0] = gl_MultiTexCoord0;
+
+ vec4 position = gl_Vertex;
+ position.xy += 1.;
+ position.xy /= 2.;
+ pos = position.xy;
+ position.xy = pow(position.xy,center);
+
+ vec2 tex_top = mix(Ttl,Ttr,pos.x);
+ vec2 tex_bottom = mix(Tbl,Tbr,pos.x);
+ gl_TexCoord[0].st = mix(tex_top,tex_bottom, pos.y);
+
+ vec2 pos_top = mix(Vtl,Vtr,position.x);
+ vec2 pos_bottom = mix(Vbl,Vbr,position.x);
+ position.xy = mix(pos_top,pos_bottom, position.y);
+
+ gl_Position = gl_ModelViewProjectionMatrix * position;
+}