implement the setViweport (not tested)