Major update to use GLWidget for the main canvas.