Separate Primary GL Context and visuals canvas

Can now create multiple GL canvases with shared context