1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #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;
- }
|