add viewport support to camera