--- /dev/null
+uniform CubeParams
+{
+ mat3 faces[6];
+};
+
+#pragma MSP stage(vertex)
+layout(location=0) in vec4 vertex;
+void main()
+{
+ gl_Position = vertex;
+}
+
+#pragma MSP stage(geometry)
+layout(triangles) in;
+layout(triangle_strip, max_vertices=18) out;
+void main()
+{
+ for(int i=0; i<6; ++i)
+ {
+ gl_Layer = i;
+ for(int j=0; j<3; ++j)
+ {
+ gl_Position = gl_in[j].gl_Position;
+ out vec3 texcoord = faces[i]*vec3(gl_in[j].gl_Position.xy, 1.0);
+ EmitVertex();
+ }
+ EndPrimitive();
+ }
+}