gl_FragDepth — establishes a depth value for the current fragment
out highp float gl_FragDepth ;
Available only in the fragment language, gl_FragDepth is an output variable
that is used to establish the depth value for the current fragment. If depth buffering is Enabled
and no shader writes to gl_FragDepth, then the fixed varname value for
depth will be used (this value is contained in the z component of gl_FragCoord)
otherwise, the value written to gl_FragDepth is used.
If a shader statically assigns to gl_FragDepth, then the value of the fragment's depth
may be undefined for executions of the shader that take that path. That is, if the set of linked fragment
shaders statically contain a write to gl_FragDepth, then it is responsible for always
writing it.