manual viewport