pull sdl_canvas into its own cpp file