GLSLShaderObjectsState vs. VertexProgramState/FragmentProgramState

Would someone please explain the differences between GLSLShaderObjectsState and VertexProgramState/FragmentProgramState?

I'm more used to seeing something like GLSLShaderObjectsState.

They both extend RenderState and provide methods for loading shader source.  But, the setUniform/setAttribute methods are more familiar.

AFAIK, there's only one jmetest example that uses GLSLShaderObjectsState.

Thanks in advance,

GLSL vs ARB shaders

Thanks … got it.