add support for viewport_size option