The following constants can be read by the vertex shader to determine the limitations of the OpenGL ES 2.0 environment at runtime.
const mediump int gl_MaxVertexAttribs >= 8
The built-in constant gl_MaxVertexAttribs
provides the maximum number of attributes that can be used by the vertex shader. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 8.
const mediump int gl_MaxVertexUniformVectors >= 128
The built-in constant gl_MaxVertexUniformVectors
provides the maximum number of uniform vectors that can be used by the vertex shader. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 128.
const mediump int gl_MaxVaryingVectors >= 8
The built-in constant gl_MaxVaryingVectors
provides the maximum number of varying vectors that can be used by the vertex shader to hand over data to the fragment shader. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 8.
const mediump int gl_MaxVertexTextureImageUnits >= 0
The built-in constant gl_MaxVertexTextureImageUnits
provides the maximum number of texture units that can be used by the vertex shader. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 0.
Side note: This number is actually 0 on all iOS devices. This is the reason why there is no access to textures data in the vertex shader.
const mediump int gl_MaxCombinedTextureImageUnits >= 8
The built-in constant gl_MaxCombinedTextureImageUnits
provides the maximum number of texture units that are available in the vertex shader or the fragment shader respectivley. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 8.
The following constants can be read by the fragment shader to determine the limitations of the OpenGL ES 2.0 environment at runtime.
const mediump int gl_MaxTextureImageUnits >= 8
The built-in constant gl_MaxTextureImageUnits
provides the maximum number of texture units that can be used by the fragment shader. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 8.
const mediump int gl_MaxFragmentUniformVectors >= 16
The built-in constant gl_MaxFragmentUniformVectors
provides the maximum number of uniform vectors that can be used by the fragment shader. The value of this variable is dependent on the OpenGL ES 2.0 implementation but has to be at least 16.
const mediump int gl_MaxDrawBuffers = 1
The built-in constant gl_MaxDrawBuffers
provides the maximum number of the available draw buffers. The value of this variable is 1 for all OpenGL ES 2.0 implementations. This might change in future versions.