optimization: dont reset viewport if wasnt changed
optimization: dont reset viewport if wasnt changed

%set-current-viewport now returns a bool to say it changed the
current-viewport. This is used by with-viewport to know whether to
un-set the viewport at the end of the scope.

This pattern is nice we should use it for fbos too

cbaggers/cepl