raw opengl stuff, program&shader abstraction