Why, in java generated code, the AbstractGeometryMesh constructor is overloaded? It's because of default value for arguments? In this case, I don't like to have default-values in a protected constructor of an abstract class, those default values should be on the concrete subclasses.
I've left a warning in useProgram() indicating that the OpenGL state that is shader specific, should be examined to determine which variables need a reset.
More informative and accurate debug mesh on tiles, including grid, elevation data level, and tile level information.