opengl et canvas implementation