Fix Surface::draw not generic enough