refactored Opengl_Window.handle() should behave exactly like the old version, but now it is at least (somewhat) readable and ready to be generalized for more complicated projection matrices