Graphics Programs Reference
The precision specified for float will be used as the default precision for all vari-
ables based on a floating-point value. Similarly, the precision specified for int will
be used as the default precision for all integer-based variables.
It is not mandatory to specify precision qualifiers for variables in vertex shaders, be-
cause they have a pre-defined default precision for int and float types. However,
in fragment shaders, although (at least) medium precision is supported for float
types, (unlike vertex shaders) it is not set as the default precision. This means that
every fragment shader must explicitly declare a default precision for float types.
ES 2.0 allows us to determine the availability of high precision for the float type,
and, if it is not available, we can fall back to medium precision by setting it as the
default precision for all float types in a fragment shader. To determine whether
high precision is supported in the fragment shader, we need to find out whether the
GL_FRAGMENT_PRECISION_HIGH preprocessor macro is defined (as shown in
Listing 3-14 ).
GL POINT BASIC Application
Shader code ( _pointVertexShaderCode , _pointFragmentShader-
Code ) inside the Renderer class ( GL POINT BASIC/src/com/apress/
android/glpointbasic/GLES20Renderer.java ) must be compiled into