I've changed this around to support a null viewport if you dont want it to be constrained.