I'm tring to port a gles 1.x program to gles 2.
The GPU uses floats. The GLSL ES shading language has limited support for integers (basically, only integer operations that can be performed using floats are supported). The minimum required range for highp int is just (-2^16, 2^16). So using fixed point values in a shader is not that useful, and no better than using floats.
Vertex data in GL_FIXED format gets converted to float by the hardware before being processed by the vertex shader.
I’ve miss-interpreted the specification
"Regardless of language binding, the enum type converts to
fixed-point without scaling, and integer types are converted to fixed-point by multiplying
As the example was for uniforms, I thought this section still belongs to the example.
I should have read the whole section more carefully.