[enh] viewport support