renderer: aspect ratio support. default is keep the original

TODO:
more understandable api names