Update viewport and optimize deep object copy