summaryrefslogtreecommitdiff
path: root/gfx/gl/shaders/shadowStencil.gs
blob: 2c3f9bd3f24d5d5f8fa5789854fee6064d01df36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#version 330 core
#extension GL_ARB_viewport_array : enable

include(`materialDetail.glsl')

layout(triangles) in;
layout(triangle_strip, max_vertices = 24) out;

uniform mat4 viewProjection[8];
in vec3 FragPos[];
in vec2 TexCoords[];
flat in MaterialDetail Material[];
out vec2 gTexCoords;
flat out MaterialDetail gMaterial;

void
main()
{
	for (gl_Layer = 0; gl_Layer < viewProjection.length(); ++gl_Layer) {
		for (int v = 0; v < FragPos.length(); ++v) {
			gl_Position = viewProjection[gl_Layer] * vec4(FragPos[v], 1);
			gTexCoords = TexCoords[v];
			gMaterial = Material[v];
			EmitVertex();
		}
		EndPrimitive();
	}
}