| #version 310 es |
| |
| layout(binding = 0, std140) uniform UBO |
| { |
| mat4 mvp; |
| vec2 targSize; |
| vec3 color; // vec3 following vec2 should cause MSL to add pad if float3 is packed |
| float opacity; // Single float following vec3 should cause MSL float3 to pack |
| }; |
| |
| layout(location = 0) in vec4 aVertex; |
| layout(location = 1) in vec3 aNormal; |
| layout(location = 0) out vec3 vNormal; |
| layout(location = 1) out vec3 vColor; |
| layout(location = 2) out vec2 vSize; |
| |
| void main() |
| { |
| gl_Position = mvp * aVertex; |
| vNormal = aNormal; |
| vColor = color * opacity; |
| vSize = targSize * opacity; |
| } |