Over 20 changes and bug fixes.
Fixed a typo, UniformSampler is not Uniform<GLuint> but Uniform<GLint>.