setNeedsDisplay not needed when executed on main queue.