modify source from OpenGL