Better canvas sizing handling (canvas and webgl)