Inputs and outputs

Besides the usual inputs and outputs (uniforms and vertex attributes), there are new elements that need to be considered.

Primitives, our main input and output element, are complex, and because of that we have to be careful and specify very well what we are doing at each time. The primitive type specified in the geometry shader must match exactly with the primitive that we are drawing (using a GL call like glDrawArrays, for instance). This means that we cannot happily write a general purpose geometry shader for everything. Also, we have to specify the primitive type and the number of vertices that will be emitted (created) statically in the shader.

For these purposes, we have the layout keyword. With it, we could define an input ...

Get GLSL Essentials now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.