basic shaders functional, but still using glBegin/glEnd