function Viewport(mode)
{
	/**
	 * Camera viewport offset.
	 * 
	 * Values range from 0.0 to 1.0 in screen space when in RELATIVE mode.
	 * 
	 * @property offset
	 * @type {Vector2}
	 */
	this.offset = new Vector2(0.0, 0.0);

	/**
	 * Camera viewport size.
	 * 
	 * Values range from 0.0 to 1.0 in screen space when in RELATIVE mode.
	 * 
	 * @property size
	 * @type {Vector2}
	 */
	this.size = new Vector2(1.0, 1.0);

	/** 
	 * Viewport sizing mode.
	 * 
	 * Can be RELATIVE or ABSOLUTE.
	 *
	 * @property mode
	 * @type {number}
	 */
	this.mode = mode !== undefined ? mode : Viewport.RELATIVE;

	/** 
	 * Positioning anchor of the viewport.
	 *
	 * @property anchor
	 * @type {number}
	 */
	this.anchor = Viewport.TOP_LEFT;

	/**
	 * Width of the final output canvas.
	 *
	 * This width should match the canvas size / rendering resolution.
	 *
	 * @property width
	 * @type {number}
	 */
	this.width = 1;

	/**
	 * Height of the final output canvas.
	 *
	 * This height should match the canvas size / rendering resolution.
	 *
	 * @property height
	 * @type {number}
	 */
	this.height = 1;

	/**
	 * Calculated absolute viewport values (x, y, width, height) stored in a vector.
	 *
	 * It is calculated using the update() method that should be called after applying changes.
	 *
	 * @property viewport
	 * @type {Vector4}
	 */
	this.viewport = new Vector4(0, 0, 1, 1);
}
The viewport object is used to handle virtual visualization windows for the WebGL renderer.

It uses normalized coordinates [0 to 1] when using RELATIVE mode or pixel based coordinated for ABSOLUTE mode.

@class Viewport
@param {number} mode