code: def _flush_tile_queue(self):
          
          iterator = self._tile_queue
          surface_blit = self._buffer.blit
          map_get = self._animation_map.get
  
          bw, bh = self._buffer.get_size()
          bw /= 2
  
          tw, th = self.data.tile_size
          twh = tw // 2
          thh = th // 2
  
          for x, y, l, tile, gid in iterator:
              tile = map_get(gid, tile)
              x -= self._tile_view.left
              y -= self._tile_view.top
  
              # iso => cart
              iso_x = ((x - y) * twh) + bw
              iso_y = ((x + y) * thh)
              surface_blit(tile, (iso_x, iso_y))
docs: Blits (x, y, layer) tuples to buffer from iterator