Add offsets support for altering viewport

Adding an option to provide offsets to how the viewport frame is calculated. As an example, this is useful when using a navbar that hides a part of the viewport.