What does frag out mean

broken image

This sets the color vertex shader input to come from attribute location 2. In GLSL 3.30, you use this syntax: layout(location = 2) in color Remember how, in vertex shaders, you have inputs? And these inputs represent vertex attribute indices, the numbers you pass to glVertexAttribPointer and glEnableVertexAttribArray and so forth? You set up which input pulls from which attribute. Now, back to user-defined fragment shader outputs.

broken image
broken image

Unless you're using compatibility (in which case, your 3.30 shaders should say #version 330 compatibility at the top), you should never use this. That was removed from core OpenGL 3.1 and above. No, you don't have the predefined gl_FragColor.

broken image

Furthermore, we have a predefined gl_FragColor.