blob: 3b2e6b96d5028f6bd987788d64200dd73d3aebeb (
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#version 310 es
layout(location = 7) in vec3 c;
layout(LocatioN = 3) in vec4 p;
layout(location = 9) in ivec2 aiv2;
out vec4 pos;
out vec3 color;
flat out int iout;
layout(row_major) uniform; // default is now row_major
layout(std140) uniform Transform { // layout of this block is std140
mat4 M1; // row_major
layout(column_major) mat4 M2; // column major
mat3 N1; // row_major
int iuin;
} tblock;
uniform T2 { // layout of this block is shared
bool b;
mat4 t2m;
};
layout(column_major) uniform T3 { // shared and column_major
mat4 M3; // column_major
layout(row_major) mat4 M4; // row major
mat2x3 N2; // column_major
uvec3 uv3a[4];
};
uint uiuin;
struct S {
vec3 c;
float f;
};
out S s;
void main()
{
pos = p * (tblock.M1 * tblock.M2 * M4 * M3 * t2m);
color = c * tblock.N1;
iout = tblock.iuin + int(uiuin) + aiv2.y;
s.c = c;
s.f = p.x;
if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5))
++s.c;
}
|