add viewport scaling