"Only a vertex shader can declare an attributes block.
"Only a vertex shader can declare an attributes block."
A shader must either defined main(){} or function(){} (but not both)
A shader must either defined main(){} or function(){} (but not both)
Vertex shader cannot have any input blocks (use attributes block instead).
Vertex shader cannot have any input blocks (use attributes block instead).
A shader must either defined main(){} or function(){} (but not both).
A shader must either defined main(){} or function(){} (but not both).
If a shader defines one or more output blocks it must define main(){}.
If a shader defines one or more output blocks it must define main(){}. Fragment shaders are allowed to have main(){} without an output block.
All uniforms must be declared in the same block.
All uniforms must be declared in the same block. Engine structs may be translated to GLSl uniform blocks depending on the implementation.