Do not create a surface for each frame, but only once. Also fixes memory leak.