

GLSL ES only requires 8 vertex attributes and 128 vec4 uniforms as opposed to desktop GLSL which requires 16 and 256 respectively. The number of uniforms and vertex attributes required in GLSL ES are extremely limited compared to desktop GLSL.

Vertex texture lookups are an optional feature in OpenGL ES 2.0, and you need to pay special attention to the value of GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS (it will be 0 if your implementation does not support them).

You have to use the old attribute and varying variable declarations for vertex shader input/output and fragment shader input instead of in and out as defined by desktop GLSL (>= 130). corresponds to #version 110 (and GLSL compilers are supposed to assume this is the version a shader was written for if no #version is present) GLSL ES begins with #version 100 and in many respects the syntax is roughly equivalent to GLSL #version 120 on the desktop. Where the first published desktop GLSL spec. An implementation may optionally support high precision in fragment shaders, and this can be determined at compile-time by testing whether a pre-processor definition for GL_FRAGMENT_PRECISION_HIGH exists or not. Implementations are required to give you three different precision levels in vertex shaders (low / med / high) and two in fragment shaders (low / med). The primary difference would be the introduction of precision to integer and floating-point types. There are some huge differences between GLSL on a desktop environment and GLSL in OpenGL ES 2.0.
