Basic viewport. Based of MadMarx tutorial 3.