... ES2 . glUseProgram(_program); //18 glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _modelViewProjectionMatrix.m); glUniformMatrix3fv(uniforms[UNIFORM_NORMAL_MATRIX], ... the former, it takes only a couple of lines of code to create a GLKView and specify various properties, whereas in those dark and unforgiving days before iOS5, it could take dozens of lines ... transformations ourselves. And it is not a pretty sight at times. Line 4 allocates an OpenGL context. This is used to keep track of all of our specific states, commands, and resources needed...