glViewport only once per framebuffer size change