diff-based rendering