update surface methods to use rect intersection
update surface blit rect computation